とりあえずcygwinにemacs入れて使ってみた。shellとか。

Pocket

20170908 emacs shell-mode bash
20170908 emacs shell-mode bash

なぜか、cygwinのemacsでshellモードを使うと、lsもwhichもcpもmvとかも使えなかった。

どうも、PATHの環境変数の設定がshellモードでは伝達できていないらしい。

PATHをemacsに伝えるには、~/.emacs.d/shellenv.elというファイルを作る必要があるらしい。

作るのはPerlのワンライナーで、一発でできる。

以下、Perlの出力をリダイレクトして、~/.emacs.d/shellenv.elを作成する方法。PATHをemacsに伝えるEmacsLISPが出力される。ワンライナーすげ。

2017/9/13追記:

以下のEmacsLISPも必要でした。主にbashにcygwinのコマンド群のパスを伝えるのに必要です。

上のコードを、~/emacs.d/init.elに入れてください。
以下のコードより先にも先に入れる必要があります。

あとは、~/.emacs.d/shellenv.elを読み込むEmacsLISPを書くだけ。

emacsの初期設定ファイル~/.emacs.d/init.elに以下のコードを書きます。

これで、emacsのshellモードでシェルに対して環境変数PATHが伝達されます。

PATHが設定されるため、shellモードのシェルで、lsとかcpとかmvとかOKできます。GJ牧場。

以下、参考にしたサイトのURL:(ありがとうございます OSZ)

20170908

シェルと Emacsの PATHを共有する – syohex’s diary
Linuxコマンド集 – 【iconv】文字コードを変換して出力する:ITpro
Linuxコマンド集 – 【 nkf 】 文字コードを変換する:ITpro
The Org Manual
dotfiles/init.el at master · kawabata/dotfiles · GitHub