サーバ管理のときの編集は viを使うというイメージもありましたが、
Emacs派の人はやはり、サーバ管理でも Emacsを使いたいですよね。
Emacsは最初に1度起動しておいて、シェルもその中で実行してしまう使い方をしていると思います。
管理コマンドの中には、エディタを起動して設定を書き換えるようなタイプのコマンドがあります。
環境変数 EDITOR で指定されたエディタが起動されてきます。
通常は、viになっていることが多いと思います。
たとえば cronの設定のときの crontab -e です。
Emacsのシェルで作業をしているときに、これをやると、、、
# crontab -e
イテテ状態になります。
(わたしは tcsh 使いなので、以下、bashの人は適当に読みかえてください)
では、EDITOR を emacsにすればいいかというと、、、
setenv EDITOR emacs
これだと Emacsの中で Emacsが起動してしまうので、
一旦 Emacsをサスペンドしてからでないとうまくいきません。
Emacsで
C-x C-z # Emacsがサスペンドされる
# crontab -e # もうひとつ Emacsが起動される
編集後 C-x C-c # Emacsを終了
# fg # 最初の Emacsに戻る
これだと、Emacsのシェルで作業しているメリットがあまりないです。
ではどうするかというと、Emacsclient を使います。
そのために、あらかじめ Emacsのサーバ機能を有効にしておきます。
(require 'server)
(unless (server-running-p)
(server-start)
)
setenv EDITOR emacsclient
Emacs のシェルから
# crontab -e
を実行したら、今使っている Emacsに crontab 編集用のバッファが開きます。
編集が終わったら
C-x k
でバッファを閉じればOKです。