0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Emacs で crontab を編集する (emacsclient)

Posted at

サーバ管理のときの編集は viを使うというイメージもありましたが、
Emacs派の人はやはり、サーバ管理でも Emacsを使いたいですよね。

Emacsは最初に1度起動しておいて、シェルもその中で実行してしまう使い方をしていると思います。

管理コマンドの中には、エディタを起動して設定を書き換えるようなタイプのコマンドがあります。

環境変数 EDITOR で指定されたエディタが起動されてきます。
通常は、viになっていることが多いと思います。

たとえば cronの設定のときの crontab -e です。

Emacsのシェルで作業をしているときに、これをやると、、、

# crontab -e

イテテ状態になります。
(わたしは tcsh 使いなので、以下、bashの人は適当に読みかえてください)

では、EDITOR を emacsにすればいいかというと、、、

.cshrc
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のサーバ機能を有効にしておきます。

.emacs
(require 'server)
(unless (server-running-p)
  (server-start)
  )
.cshrc
setenv EDITOR emacsclient

Emacs のシェルから

# crontab -e

を実行したら、今使っている Emacsに crontab 編集用のバッファが開きます。

編集が終わったら
C-x k
でバッファを閉じればOKです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?