Windows で Emacs + tramp

 Emacs がないと生きていけません。はい。Emacs がないと作業効率が半減してしまいます。Tramp があるとさらに便利。Tramp は ssh を使ってリモートマシンのファイルにシームレスにアクセスできる最強プログラムだ。

日本語が入力可能な Emacs

 WindowsEmacs を使う場合、いくつかの選択肢がある。Windows 付属の MS-IME で日本語を入力する場合、選択肢はつぎの2つくらいだろうか:

とうわけで、今回は後者の楽チンモードでいくことにする。

Plink

 Windows で tramp を使うとき、sshplink で代替する。Cygwin 付属の ssh では tramp がうまく動作しないからだ。Plink は、PuTTY をインストールすると Program Files (x86)/PuTTY/plink.exe として入る。
 ちなみに、本家 PuTTY は日本語が通るので、あえて PuTTYjp をインストールする必要はない。

Emacs の設定

 Emacs の設定はすべて ~/.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 "^[ $]+")

とくに変わったところはない。

まとめ

以上で Windows でも快適な Emacs Life を送ることができる。
そんじゃーねー。