mingwからCygwinのEmacsに移行する

きっかけ

gnupackで配布されているEmacsを使っていたのだけど、cygwinバイナリに変更された。cygwinはすでに自分でインストールしているので、今さらgnupackへ移行が出来ない。野良ビルドされたEmacsで必要条件に合致する物が見つからなかったので、しかたなくEmacs24.4を自分でコンパイルすることにした。

必要条件

  • 32bit windows 7で動作する
  • IMEパッチが適用されている

ビルド

MSYSやMinGWをそろえていないので、cygwinバイナリでコンパイルした。IMEパッチは、rzl24ozi’s gists · GitHubで配布をされている物を使用した。

tar xvfJ emacs-24.4.tar.xz
patch -b -p0 < emacs-24.4-w32-ime.diff
./autogen.sh
./configure --with-w32 --without-dbus --without-xim --without-imagemagick --prefix=/usr CFLAGS="-march=native -O2" 
make
make install

起動方法

当初

Cygwin Terminalからemacsを起動していた。

Terminalから起動させることが苦痛になり、emacsをデーモンで常駐させて、emacsclientを使っている。

電源ON時に実行するbatファイル
C:
cd C:\cygwin\bin\
bash --login -i -c "emacs --daemon"
Emacsを起動する際

CraftLaunchで"emacsclient -nqc"を実行している。

バッファが増え続ける

daemon起動したことにより、Emacsが常駐するのでバッファが増え続けることにふと気づいた。編集が終わったファイルのバッファは基本的に解放してもらってかまわないので、tempbufをインストールして裏で解放するようにした。今は、10分程度は保持するようにしている。

(setq tempbuf-minimum-timeout 600)
(when (require 'tempbuf nil 'noerror)
  ;; ファイルを開いたら自動的にtempbufを有効にする
  (add-hook 'find-file-hooks 'turn-on-tempbuf-mode)
  )

感想

基本的にEmacsを統合環境としてでなく、テキストエディタとして使っているので、特に違和感なく使えている。一番心配した安定性についても、いまのところ問題が起きていない。