スポンサーリンク
2013年08月18日
SublimeText2を使い始めました。以前はATOKを使っていたのですが、PHPStormで不具合というか、視覚的な問題があったため、GoogleIMEに変更しました。何気に使っていたATOKの辞書引き(国語辞書とか)ができないのが痛いです 。結局併用していますが、この話はいずれ書きたいと思います。
タイトルの件ですが、GoogleIMEは、日本語を入力すると予測変換候補が表示され、Tabキーで候補選択を行います。これがSublimeText上だと、TabキーのイベントがGoogleIMEに届く前にSublimeTextに処理されていまい、入力した文字が入力変換中にもかかわらず消えてしまいます。たぶん・・・こんな処理だという予想です。
対処方法を探していたら、SublimeTextのDefault Key Bindings
を変更すれば良いという記事を見つけました。内容としては、Tabキーで処理される部分を削除するという内容でした。なるほどと思い、Default(OSX).sublime-keymap
の該当箇所L.93-99
をコメントアウトしてみました。
Sublime Text 2 > Preferences > Key Bindings - Default
ダメでした!
他にも同様の記事を見つけましたが、同じくL.93-99
をコメントアウトするとのことでした。
Default(OSX).sublime-keymap
を見ると、L.100-129
にもTabキーの処理({ "keys": ["tab"]・・・}
)があります。それらもコメントアウトしたら予測変換が選択できるようになりました。
初期設定を全部カットするのはなんか気持ち悪いと思い、他の方法を試すことにしました。
Sublime Text 日本語がtabキーで改行(消える)場合の対策 - 酒と泪とRubyとRailsと
http://morizyun.github.io/blog/markdown-sublime-text2/
単純に思いつくのは、GoogleIMEのTabキーを別のキーに割り当ててコンフリクトを避けることです。この方針で検索したところ、下の記事でKeyRemap4MacBookを利用した素敵な方法を見つけました。一点だけ注意する必要がありますが、最適解ではないでしょうか。
keyremap4macbook - Sublime TextとGoogleIMEを併用しているとき、予測変換が使えなくなる問題の応急処置 - Qiita [キータ]
http://qiita.com/kei_q/items/c9a6fbd55391d90af1f6
以下の手順で行います。
Tab
以外のKey
に割り当てる。Tab
を押された時にKey
が実行されるように設定する。
つまり、2.の条件下でTab
を押すと、KeyRemap4MacBookがKey
に変更するので、SublimeTextにTab
のイベントが伝わらず、入力中の文字が消えないということです。そして、置き換えられたKey
がGoogleIMEに伝わり、1.で設定した予測変換が動作します。
環境設定
を開きます。一般
タブにある、キー設定
> キー設定の選択
> 編集
編集
にあるエントリーを追加
で変換前入力中
を追加します。Ctrl+¥
としています。
参考記事では、変換前入力中
のみ指定していますが、私の環境では変換中
も追加しないと期待した動作になりませんでした。KeyRemap4MacBook
https://pqrs.org/macosx/keyremap4macbook/index.html.ja
private.xmlに下記を追加します。
GoogleIMEで設定したCtrl+¥
をTabに割り当てます。
sublime com.sublimetext.2 sublime_googleIME private.sublime_googleIME SUBLIME JAPANESE __KeyToKey__ KeyCode::TAB, ModifierFlag::NONE, KeyCode::JIS_YEN, ModifierFlag::CONTROL_L
<inputsource_only>JAPANESE</inputsource_only>
を初めて知りました。日本語入力がONになっている時のみ動作する、という条件のようです。
これで、GoogleIMEを日本語入力ONかつSublimeTextでのみTabキーを押した場合にCtrl+¥
が実行されるので、予測変換が選択可能になります。ただ、日本語入力をONにしたままだと、Tab
がSublimeText本来の動作にならないので、日本語の入力終わったらOFFにするのを忘れないように。
GoogleIMEとばかり書いていますが、予測変換があるのはATOKも同じです。
メニュー > キー・ローマ字カスタマイズ
でキー設定
を開きます。
表示:機能
機能:推測変換の入力中:tab
を選択して、左下のプラス(+)をクリック。
キーを追加
が表示されるので、直接入力または一覧から選択でお好みのショートカットを設定します。
SublimeTextの話だったのですが、KeyRemap4MacBookが便利という内容になりました。