読者です 読者をやめる 読者になる 読者になる

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

emacsclientを使ってEmacsの起動を速くする

Emacs

目次

emacsclient

Emacsをカスタマイズして使うパッケージを増やしていくと、どんどん起動に時間がかかるようになる。emacsclientを使うことでEmacsを一度起ち上げたら、起動しっぱなしにできる

参考サイト

出、出〜〜〜〜wwww emacsをふたつ以上実行奴〜〜〜〜www(emacsclient編) - Shogo's Blog

基本的な使い方

まずデーモンモードでEmacsを起動する

$ emacs --daemon

これでEmacsが裏で動いてくれている。開きたいファイルemacsclientコマンドで開くと、すでに起動しているEmacsでバッファを開く

$ emacsclient xxx.txt

終了方法

Emacsを再起動したいときなど、デーモンを一旦終了させるには
emacsclient -e '(kill-emacs)'
というコマンドがある。aliasしておく

alias ekill='emacsclient -e "(kill-emacs)"'

もっと楽に

emacsclient-aオプションでデーモンが起動していないときのエディタを指定できる。何も指定しないとデーモンを起動する。これを利用して下記のようにaliasしておけば、emacsと打つだけで、

  • デーモンが起動していないときはデーモンを起動
  • すでに起動していればデーモンでバッファを開く

という動作をしてくれる。(-nw は端末上でemacsを開くためのオプション)

alias e='emacsclient -nw -a ""'
alias emacs='emacsclient -nw -a ""'

emacsと打つのが面倒なので、eでもemacsでもemacsclientを実行するようにしてある。

------ 2015/11/16 追記-------

GUIの場合

UbuntuなどでGUIEmacsを使うときは、emacs --daemonは使わない。GUIの立ち上げ時の挙動が微妙に違う。GUIの場合は素直に一度立ち上げてから、M-x server-startでサーバーを起動させておく。もしくは設定ファイルに自動的にサーバーが起動する設定を書いておく。そして起動しっぱなしにしておく。
よってemacsclientの-aオプションはあえて使わない。

alias ekill='emacsclient -e "(kill-emacs)"'
alias e='emacsclient -n'