NTEmacs23.4(Emacs for gnupack)を使う

[しゃべり担当] Emacs23.4を日本語Windowsで使う場合、公式サイト http://www.gnu.org/software/emacs/WindowsバイナリはIMEの扱いがよくない。
以下の画像は公式Emacs23.2で試したときのだが、カーソルが飛んだりする。


IMEの扱いを修正したEmacs23.4 は http://sourceforge.jp/projects/gnupack/ の「emacs for gnupack」から取得できる。

[合いの手担当] Windows版のEmacsNTEmacs と呼ばれていたけど、これは emacs for gnupackと呼ぶのか。


[しゃべり担当] どちらにせよ本物のEmacsだよ。
今回は、Emacs単体ではなく、EmacsのほかにCygwinも追加したgnupackというのをダウンロードする。


[合いの手担当] Cygwinなんて使うのかい? Emacs単体なら 34 MB(インストール後は 132 MB)だけど、gnupackだと 104 MB(インストール後は 385 MB)になってるじゃないか。


[しゃべり担当] Cygwinそのものはそんなに使わないけど、Emacsgrep機能を使いたいときCygwinに入っているgrep.exeとかfind.exeが必要になるんだ。
gnupackをインストールすれば、それらも使えるってわけ。


ほかにも

  • migemoも入っている。(emacs for gnupack単体だと入っていない。手動で入れるのは てまがかかる)
  • 最初からEmacs設定済み。インストールするだけで使える。(emacs for gnupack単体だと設定が用意されていない)
  • ポータブル対応。USBメモリにインストールして、いろんなPCに差し込むだけで使える。
  • Cygwinそのものも、Linux知ってる人にはいろいろ便利。参考: http://d.hatena.ne.jp/takuya_1st/20111121/1321865738

[合いの手担当] なるほど。いろいろ利点があるんだね。

ダウンロード

[しゃべり担当] gnupackには basic と devel の2つがある。違いは http://gnupack.sourceforge.jp/docs/latest/UsersGuide_introduction.html にあるように開発環境の mingw を含むか含まないかだ。


[合いの手担当] 開発環境があると何ができるのさ?


[しゃべり担当] C言語で書かれたWindowsアプリをビルドできるぞ。emacs for gnupack自体もソースコードからビルドできると思う。やったことはないけど


[合いの手担当] C言語のビルド‥‥しない場合は basic でいいんだね。

インストール

[しゃべり担当] このexeファイルを実行するか、7zipアーカイバで展開すればインストール完了。今回は
Z:\app\gnupack_devel-8.00
に展開した。


展開したあと、
Z:\app\gnupack_devel-8.00\emacs.exe
のショートカットアイコンをデスクトップにでも作っておき、それをダブルクリックすれば Emacs が起動する。


最初から設定されていて、このまま使うこともできる。

しかし私は LinuxEmacsとなるべく同じ操作で使うために、自分でカスタマイズした別の設定を使うことにする。

Emacsの設定

設定は

  • (gnupackインストール先)\config.ini
      (今回は Z:\app\gnupack_devel-8.00\config.ini )
  • (HOME)\.emacs.d\init.el

の2ファイルで指定する。

(インストール先)\config.ini

(インストール先)\config.ini では

  • HOMEディレクト
  • Emacsの表示フォント(標準ではMigu 1M)
  • Emacsウィンドウの横幅(標準では横91文字)と高さ(標準では縦31行)

などを変えることができる。


今回、Emacsウィンドウの横幅と高さ を変更する。
Emacsのウィンドウ(Emacs用語ではframe)の横幅:120文字、高さは34行、起動時のウィンドウの左上座標は(x:0, y:0) とした。フォントサイズも少し大きめにする。


修正箇所はこんな感じ。

$ diff -u1 config.ini.orig config.ini
--- config.ini.orig     2011-07-20 22:59:44.000000000 +0900
+++ config.ini  2011-09-19 18:05:02.000000000 +0900
@@ -60,5 +60,5 @@
     background     = black
-    geometry       = 91x31+70+28
+    geometry       = 120x34+0+0
     fontName       = %_font_%
-    fontSize       = 12
+    fontSize       = 14

(HOME)\.emacs.d\init.el

(HOME)\.emacs.d\init.el  (今回は z:\home\.emacs.d\init.el)
ではそれ以外のEmacs設定を指定する。


私は以下を同じ設定ファイルで使用するので、

まず
(HOME)\.emacs.d\init.el
で環境によって分岐する。

    • Windows環境でEmacs23の場合は (HOME)\.emacs.d\ntemacs23.elを読み込む。
    • Windows環境以外で、Emacs23の場合は (HOME)\.emacs.d\emacs23.elを読み込む。
    • Emacs22の場合は (HOME)\.emacs.d\emacs22.elを読み込む。


で、ntemacs23.elの中では emacs23.elを読み込むという若干複雑なことをしている。
まずLinuxのEmacs23を emacs23.elで設定して、それでだいたいの設定は済むんだけど、Windows版のみで必要な指定が少しあるから、それを ntemacs23.elで再指定する、ということをしているんだ。


設定ファイルを書くときは、gnupackに含まれる
(gnupackインストール先)\home\.emacs.d\init.el
を大いに参考にした。

私の設定は、この設定を少し手直しした程度だ。


私の設定で起動するとこんな感じ。