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

スポンサーリンク
728×90 ビッグバナー

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

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

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 25をソースからビルドしたが、ビルド済みのパッケージが公開されているのでそれを使わせて貰いインストールしたので備忘...

参考
1. emacs –daemon をsshログイン時に自動で起動したい。
2. [Bash]標準出力・標準エラー出力の全て(1>&2とか)まとめ

スポンサーリンク
レシポンシブ広告
レシポンシブ広告

シェアする

フォローする