メンテのとまっているMeadowからEmacs for Windowsに移行してみた。
インストール
Emacs for Windows公式サイトからダウンロードすると日本語IMEを直接認識してくれないので、パッチの当たっているgnupackのものを使う。非公式アップデートが12.03まで出ているので、そちらを利用することに。
基本設定
起動の設定
素直に使うなら、gnupackの中のランチャから起動してCygwinワールドで使うのだろうけど、単純にMeadowの置き換えをしたかっただけなので、Windowsアプリとして起動したい。
-
app\emacs\emacs\bin\runemacs.exe を実行して起動する。
-
環境変数HOMEを登録する。
これでひととおり使えるようになった。ランチャ経由で起動するより、さくっと立ち上がって気持ちがいい。今のところCygwinな世界に移住する気はないけど、Cygwinのキモチ悪さを少し減らせる設定方法があるらしい。
- Cygwinのいくらかマシな使い方 – 普段はWindowsを使っているのよ
.emacs.d/init.el流用のための設定
-
gnupackに入っているhome\.emacs.d\init.elを流用する場合には、ファイルの先頭に次の行を追加してgetenvでパスが取れるようにする。
(setenv "INST_DIR" "C:\\installdir\\gnupack") (setenv "CYGWIN_DIR" "C:\\installdir\\gnupack\\app\\cygwin\\cygwin")
または、システム環境変数に設定しておく。
- 12.03に入っているEmacsではmenu-tree.elを読み込むとエラーになるため、読み込み部分をコメントアウトしておく。menu-tree.elはEmacs 22/23までしか対応していないのが原因らしい。
trampの設定
tramp 2.2.10のインストール
Emacsについてくるtrampは2.2.7だったので、Gnuのダウンロードエリアから最新版をダウンロード。gnupackのMinttyから操作してインストールした。configureの引数で、Emacsのlispディレクトリとinfoディレクトリを指定してやる。
# cd tramp-2.2.10 # ./configure -datadir=/c/gnupack/app/emcas/emacs/lisp/net -infodir=/c/gnupack/app/emacs/emcas/info # make clean install
init.elの設定
ユーザファイルの編集だけなら、Sambaモードが早い。設定不要で手っ取り早いという意味だけでなく、裏でコマンドが動いたりしないので実際にアクセスが早い。
でもrootでログインしてファイル編集したいこともよくある。この目的で、sshでのアクセスもできるようにしておく。PuTTYのplinkを使用して、必要な引数は設定から渡してやることにする。
(require 'tramp) ;(setq tramp-verbose 15) ;(setq tramp-debug-buffer t) (add-to-list 'tramp-methods `("local" (tramp-login-program "plink") ;; ("%h") must be a single element, see `tramp-compute-multi-hops'. (tramp-login-args (("-l" "%u") ("-P" "11211") ("-ssh") ("-t") ("-i" "c:/home/.ssh/id_rsa.ppk") ("%h") ("\"") (,(format "env 'TERM=%s' 'PROMPT_COMMAND=' 'PS1=%s'" tramp-terminal-type tramp-initial-end-of-output)) ("/bin/sh") ("\""))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-args ("-c")) (tramp-default-port 22))) (setq tramp-default-method "local") (setq vc-ignore-dir-regexp (format "\\(%s\\)\\|\\(%s\\)" vc-ignore-dir-regexp tramp-file-name-regexp))
tramp-verboseとtramp-debug-bufferはデバッグ用のオプションなので、動くようになったら不要だからコメントアウトしておく。
tramp-sh.elからplinkの定義をコピーして、次の変更を加えたものを自分用に名前をつけてデフォルト設定した。
- SSHのポート番号を変更しているので、使用しているポート番号をログイン時の引数として渡す。
- 接続先ごとにSSH鍵を使い分けているので、-iで鍵ファイルを渡す。
また、バージョン管理していないファイルを開くときVCが果てしなくリポジトリ情報を探しまわって固まるのを防ぐため、trampではVCを無効に設定しておく。(cf. TRAMP FAQ)
一応これで、何とか動いている。
php-modeの設定
packages.elでMELPAからインストールできる。
M-x list-packages
インストール可能なパッケージ一覧の中からphp-modeを探してEnter、またはマウスクリック。
init.elに次の行を追加。
(require 'php-mode)