私はWindows上でCygwinとEmacsをガリガリ使っているひとですが、悩みは
起動が遅いことヽ(`Д´)ノ
である。cygwinの起動は10秒くらい、emacsも5秒くらいかかり、イライラする。
そこで、そんなストレス社会を薬物に頼らずに乗り切るために、起動高速化のための方法を調べてみたので、まとめてメモしておく。
Cygwin起動高速化の方法(/etc/bash_completion)
私はCygtermでCygwinを起動している。起動時にcygwinはいろいろな設定をしているのだが、特に時間がかかる原因が
/etc/bash_completion
の読み込みらしい。なので、この/etc/bash_completionを読み込まないように設定する。行頭にreturnを挿入することで解決。
以下の記事が参考になった。
Cygwin 1.7 の起動が遅い@ Windows 7 x64 | Mazn.net
# この項は今後も調べたら追加するかも。。
Emacs起動高速化の方法(emacsclient)
次に、emacsの起動。
Emacsは起動時にいろいろな設定ファイルを開くので、時間がかかるのは仕方がないEmacsは一度立ち上げたらめったに落とすものではないのだ。それが正しい使い方なのである。
しかし、簡単な設定ファイルを開こうとする度に5秒待たされたのでは溜まったものではない。そんなときに役に立つのが、EmacsServerとEmacsClientだ。
EmacsServerを立ちあげると、以後にemacsで編集をするときは、emacsClientからServerに通信してすでに開いているEmacs上で編集することがデキる。つまり、emacsを起動しなくても編集できる。
EmacsServerの立ちあげ
Emacsサーバを立ち上げるためには、Emacs上で
“M-x server-start”
と打ち込む。これだと、いちいちコマンドを打ち込まないといけないので、起動設定ファイルに以下を入力することで、起動時に自動でサーバを起動できる。
自分の場合は、$HOME/.emacs.d/init.el)に以下の設定を追加した。.emacsでもよい。自分の設定に合わせて。
; server start for emacs-client
(require 'server)
(unless (server-running-p)
(server-start))
または、デーモンを起動しておけば、ウィンドウを閉じていてもバックグラウンドでサーバが立ち上がる。コマンドラインから以下のコマンドを叩く。
$ emacs -daemon
また、emacs daemonの終了は以下の通り
$ emacsclient -e ‘(kill-emacs)’
再起動も含め、シェルにしておくとよい。
EmacsClientで編集する
いつもは、emacsでファイルを編集しようとしていたものを、emacsclient.exeで編集する。
$ emacsclient .bashrc
Waiting for Emacs
これでサーバ上でファイルが編集できる。もっと便利にするためには、aliasを切るとよい。これもcygwin起動ファイルに以下を追加。(自分の場合は.bashrc)
alias emacs=“emacsclient.exe -nw”
デフォルトでemacsclientを使うように指定する。"-nw"オプションをつけることで、今開いているターミナル上でファイルが編集できる。閉じるときは"Ctrl + x + #“で。
参考:emacsclientを使おう - Life is very short
これで、ストレスにつぶれてこの世を呪うことなく生きることができる。