Py淡

Python, Python, Python! In the spirit of "import antigravity"

Google日本語入力とSublime Textの相性が悪い問題が解決!

Sublime Textは開発者がオーストラリア人のJon Skinnerさんで、Gtkをベースにした独自のGUIでできているらしいのでやはり日本語に弱く、日本語IMEを使うと入力中の日本語がカーソルのある位置でインライン表示されずに画面左上あたりに表示されてしまう問題がある。

f:id:i-namekawa:20150716180052j:plain

これはIMESupportという素晴らしいプラグインのお陰でちゃんとした位置に表示されるようになるんだけども、Google日本語入力では”ひらがなモード”から”Direct inputモード”にしてアルファベットを入力しようとすると入力モードの[あ]とか[A]とかのインライン表示が常にカーソルを追いかけて来てしまう。EmEditorなど日本語対応している他のエディタだとIMEの切替時や入力モードの切替時に一度表示されておしまい。

MS-IMEならこの問題はないが、とてもおかしな変換ばかりするので使い物にならない。ATOKは好きでダウンロード販売で買ってずっと使っていたが、インストーラーのファイルがどっかに行ってしまい、再ダウンロードしようとしたら期限切れだそうで、バカバカしい。

普段はプログラミングにアルファベットを入力することの方が多いがデフォルトのIMEを英語に設定しても必ず日本語のDirect inputモードに戻ってしまうので、このインライン表示が非常にうっとおしい。

どうにかならないかとGithub上のIMESupportプラグインのコードを眺めていると割りと短い綺麗なコードでこれならハックできるかもしれないと思い色々やってみたら、二行コメントアウトするだけで見事に問題が解決出来てしまった。詳細はプールリクエストしていますが、imesupportplugin.pyの162行目あたり、上の画像のifのブロックをコメントアウトするだけです。このファイルは通常はC:\Users\ユーザー名\AppData\Roaming\Sublime Text 2\Packages\IMESupportにあるはずです。

Sublime TextのプラグインってPythonなのでとてもハードルが低かった。なんか作ってみたくなった。