Windows で Emacs + tramp
Emacs がないと生きていけません。はい。Emacs がないと作業効率が半減してしまいます。Tramp があるとさらに便利。Tramp は ssh を使ってリモートマシンのファイルにシームレスにアクセスできる最強プログラムだ。
日本語が入力可能な Emacs
Windows で Emacs を使う場合、いくつかの選択肢がある。Windows 付属の MS-IME で日本語を入力する場合、選択肢はつぎの2つくらいだろうか:
- 本家 Emacs + NTEmacs_JP の IME パッチ
- gnupack の NTEmacs
- すでにビルドしてあるので楽です。ボクは横着なので、今回はこれを使う。
とうわけで、今回は後者の楽チンモードでいくことにする。
Plink
Windows で tramp を使うとき、ssh を plink で代替する。Cygwin 付属の ssh では tramp がうまく動作しないからだ。Plink は、PuTTY をインストールすると Program Files (x86)/PuTTY/plink.exe として入る。
ちなみに、本家 PuTTY は日本語が通るので、あえて PuTTYjp をインストールする必要はない。
Emacs の設定
日本語関係
日本語入力に関する設定はこちらを参考にした。
(prefer-coding-system 'utf-8-unix) ; 日本語入力のための設定 (set-default-font "MS ゴシック-10.5") (setq default-input-method "W32-IME") ;標準IMEの設定 (w32-ime-initialize) ;IMEの初期化 (set-cursor-color "red") ;IME OFF時の初期カーソルカラー (setq w32-ime-buffer-switch-p nil) ;バッファ切り替え時にIME状態を引き継ぐ ;IME ON/OFF時のカーソルカラー (add-hook 'input-method-activate-hook (lambda() (set-cursor-color "green"))) (add-hook 'input-method-inactivate-hook (lambda() (set-cursor-color "red")))
Plinkへのパスを設定
plink.exe にパスを通す。普通は
(setq exec-path (cons "c:/Program Files (x86)/PuTTY" exec-path))
としたいところだが、この方法では PATH は通るのだが、なぜか tramp から呼べない。
次のようにするとうまくいく*1。
(setenv "PATH" (concat "C:\\Program Files (x86)\\PuTTY" ";" "C:\\cygwin\\usr\\local\\bin" ";" "C:\\cygwin\\usr\\bin" ";" "C:\\cygwin\\bin" ";" (getenv "PATH")))
環境変数 PATH に直接設定するのだ。ググッてみるとみなさんこれに苦労している様子。この方法が一番簡便な方法だと思う。
Tramp の設定
tramp の設定は次のようにする:
(require 'tramp) (setq tramp-default-method "plink") (setq tramp-shell-prompt-pattern "^[ $]+")
とくに変わったところはない。