【Ubuntu 18.04/16.04 LTS Server】Emacsをログイン時に常駐させ、emacsclientでEmacs起動を高速化

スポンサーリンク

Emacsはお世辞にも起動時間は早いとは言えない。特に、init-loaderを使って初期設定ファイルを機能分割してファイル数が増えてきたりすると見通しは良くなる一方で、起動時間は遅くなる。

そこでEmacsのdaemon機能を利用して改善する。Emacsをログイン時に常駐させる。Emacsを呼び出すにはemacsclientコマンドを利用。

追記(2018/6/3)

Ubuntu 18.04 LTS Serverでも動作する事を確認。

【Ubuntu 20.04/18.04 LTS Server】Emacsを使う
Ubuntu 18.04 LTS Server では、Emacsは標準のaptパッケージからインストールできるようになった。 2020/07/12追記 「Ubuntu 20.04 LTS Server」でも同様に利用できる事を確認した。 E...

Emacs起動用エイリアスの設定

~/.bashrcに下記を追加。

if emacsclient -e "t" > /dev/null 2>&1 ; then
    echo 'Emacs daemon is already running.'
else
    echo 'Starting Emacs daemon.'
    emacs --daemon
fi

export EDITOR='emacsclient -a "" -t'
alias e=${EDITOR}
alias ekill='emacsclient -e "(kill-emacs)"'

これでログイン時にEmacsを常駐させる。既に常駐している時は常駐はしない。
Emacsの起動はeコマンドのみで利用できる。又、初期設定ファイルを修正した場合など、ekillコマンドで常駐を解放できる。

補足

  • emacsclientコマンドの-a ""オプションで、Emacsが常駐していない場合に自動的にemacs --daemonコマンドを呼び出して常駐する。
    初回ログイン時のみ初期設定ファイルを読み込み実行するので多少時間はかかるが、以後の起動は速い。なお、Ubuntuパソコンを再起動しなければ、ログオフしても常駐は残っている。
  • EDITORの環境変数にセットしておくことで、sudo -eコマンドなどのエディター呼び出しにEmacsが使われる。
  • 常駐時の起動メッセージが鬱陶しい場合は、下記のようにメッセージを表示しないよう記述
    emacs --daemon > /dev/null

所感

これでEmacsが瞬時に起動する。ほんと快適!!

関連記事

【Emacs】init-loaderで初期設定ファイルを整理
Emacsの初期設定ファイルに設定記述する事で便利にしていく事ができるが、いろいろ書いていくと、長くなり見通しが悪くなってくる。 そこで「init-loader」パッケージを導入する事で、設定を分割して記述する。 インストール M-x pa...
【Ubuntu 16.04 LTS Server】Emacs 25をaptパッケージからインストールして使う
前の記事では、Emacs 25をソースからビルドしたが、ビルド済みのパッケージが公開されているのでそれを使わせて貰いインストールしたので備忘録を残す。 Emacs25をインストール Emacs25パッケージをインストール。 $ sudo a...

参考

  1. [Bash]標準出力・標準エラー出力の全て(1>&2とか)まとめ

コメント

タイトルとURLをコピーしました