Hatena::ブログ(Diary)

しふーのブログ このページをアンテナに追加 RSSフィード Twitter

2012年04月11日

SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEオフになる設定(Google日本語入力Vimの相性は最強!)

Vimをお使いの皆さん、こんにちわ

Vimを使って日本語コメントドキュメントを書かなきゃいけな人をいつも悩ますのが、IMEモードの問題です。


(IMEオン, IMEオフ) x (挿入モード, コマンドモード, ビジュアルモード) の、この全6パターン意識しながら操作するのは非常に間違いやすいです。特に日本語を挿入モードで書いたあと、コマンドモードに抜けるとよくIMEがオンになっていて、あうぅ。。とよくなってしまう。


KaoriYaさんのMacVimやGVimを使っている方は幸せです。

set imdisable

という設定をvimrcに書く手があります。これで挿入モードから抜ける際、入る際に必ずIMEオフになります。


問題は、コンソールやiTermなどからSSHを介してサーバー上のVimを使っている場合です。この設定が効きません。そりゃ普通サーバー上にIMEはありませんので仕方ありません。なので、この問題がなかなか解消されなかったのです。

中にはこの機能のためにiTerm2の自家製ビルドを作っている方すらいます。


しかし!この由々しき問題を解決してくれたのがGoogle日本語入力です!インストールしてデフォルトIMEに設定の後、

環境設定... > 一般タブ > キー設定 > キー設定の選択

にて、一度、キーの設定を「ことえり」を選択した後、編集コンボボックスから新しいエントリーを追加して以下のように、Escapeを押すと「キャンセルIMEを無効化」というエントリーを全状態に対して6個追加すると、あら不思議

f:id:sifue:20120412011207p:image

f:id:sifue:20120413083506p:image

なんと、Escapeで挿入モードを抜けると必ずIMEオフになります。これは他のキーのリマップのソフトで設定するのと違ってEscapeキー自体の機能が失われません!

MacOSX LioniTerm2では検証済みです。Mac場合ターミナルからではダメですし、MacVimでは<ESC>を2回押す必要があります。あと、WindowsXPTeraTermでも、<ESC>を2回押さねばダメでした...残念、それでもMacVimやTeraTermにはIMEオンオフカーソルの形状を変えるオプションがあるので二回押しでも便利かもですが。


これで、SSHを介してVimを使っている方はかなり楽に日本語入力サーバー上で行うことができるようになるのではないでしょうか。


ぜひ、ことえりMS-IMEから乗り換えてGoogle日本語入力で快適なVimライフを送ってみてください!


追伸

なお、自分のvimrcは、GitHubにて公開しており、MacOSX, CentOS, FreeBSD, MiracleLinuxにて共有して使っています。日々精進中ですが、もしよかったら見てみてください。

いわもと こういちいわもと こういち 2012/07/30 20:37 Tera Termの場合、http://ttssh2.sourceforge.jp/manual/ja/usage/tips/vim.html#IMEcontrol はどうでしょうか?
Google日本語入力でも問題なく動くかは未確認ですが…

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証