Linux版Sublime Text 3で、日本語入力切り替えを変換・無変換・半角/全角キーで出来るようにする
Linux版のSublime Text 3で日本語入力できるようにする方法(ibus-mozc + emacs-mozc + SublimeMozcInput)については、検索すると有用なページがいくつか見つかります。
- LinuxでのSublimeTextの日本語入力 - Qiita
- Ubunts環境のSublime Text3で日本語入力を可能にする - Qiita
- Linux での日本語入力設定 [Sublime Text 3 の参考書(実践編)Wiki]
- Sublimt Text 3で日本語入力を可能に〜 Ubuntu 16.04 Mint 18編
ただいずれのページも、半角/全角キーによる日本語入力切り替えはできない、との記述がありました。私はWindows環境では半角/全角キーではなく、変換・無変換でそれぞれ日本語入力オンオフを行っていたのですが、こちらも切り替えには使えないようでした。
これに対して、少々トリッキー?な方法を使うことによって、変換・無変換キーで日本語入力オンオフが出来るようになりました。半角/全角キーも同様の方法で出来るはずです。
具体的には以下の方法になります。
1. キー割り当て変更
Sublime Textでバインド可能なキーの一覧はここに記述があります。
この中から変換・無変換(または半角/全角)キーに割り当てるものを選びます。ただ普段使用するキーを割り当ててしまうと使い物にならなくなるので、使ってなさそうなものにします。私は変換キーをF13、無変換キーをF14にしました。
キー割り当てを変更する正しい方法は正直よくわからないのですが、以下のコマンド出力結果からキー割り当てに関する情報が記述されているファイルがわかります。
$ setxkbmap -print xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete+japan" }; xkb_symbols { include "pc+jp+inet(evdev)+ctrl(swapcaps)" }; xkb_geometry { include "pc(pc105)" }; };
この出力のうちxkb_symbols
の部分が割当てに関する部分で、それぞれ/usr/share/X11/xkb/symbols/
ディレクトリ内のpc
ファイル・jp
ファイル・inet
ファイルのevdev
部分・ctrl
ファイルのswapcaps
部分の設定が適用されていることになるようです。
このうち変換・無変換・半角/全角キーの設定が書いてあるのは/usr/share/X11/xkb/symbols/inet
ファイルになるので、このファイルを編集します。変換キーが押された時の割当は<HENK>
、無変換キーの方は<MUHE>
のところに記述します。半角/全角キーの場合は<HZTG>
のコメントアウトを解除して同じように記述します。
@@ -105,8 +105,8 @@ // key <HZTG> { [ Zenkaku_Hankaku ] }; key <HKTG> { [ Hiragana_Katakana ] }; - key <HENK> { [ Henkan ] }; - key <MUHE> { [ Muhenkan ] }; + key <HENK> { [ F13 ] }; + key <MUHE> { [ F14 ] }; key <KATA> { [ Katakana ] }; key <HIRA> { [ Hiragana ] }; key <RO> { [ Romaji ] };
編集後ログインしなおせば設定が反映されるはずです。
設定内容確認
キー割り当てが正しく変更されて、それがSublime Textから認識可能かどうかは以下のようにして確認できます。
- Sublime Textを起動する
- [View]-[Show Console]でコンソールを表示する
- コンソール下部のコマンド入力欄に
sublime.log_input(True)
と入力しEnterを押下する
これを実行することによって、以後Sublime Textを終了するまで、入力したキーの情報がコンソールに表示されるようになります。
この状態で変換・無変換・半角/全角キーを押してみて、割り当てたキーが表示されれば成功です。
より良いキー割り当て変更方法
私は設定ファイルを直接変更してしまいましたが、これはあまり筋の良い方法ではないようで、割当を変更したい情報だけを記述したファイルを新たに作成して、それを読み込ませるほうがより望ましいようです。
そのような方法を説明したページもいくつか見つかりました。
ただ私の環境ではこの方法ではうまく行かなかったので、直接書き換えることにしました。
2. Sublime Textのキーバインド変更
Sublime Text側で変換・無変換・半角/全角キーを押した時のキーを拾えればあとは簡単で、それらに日本語入力のオンオフ、またはトグルを割り当てるだけです。
[Preferences]-[Key Bindings]に設定を追加します。
[ {"keys": ["f13"], "command": "activate_mozc"}, {"keys": ["f14"], "command": "deactivate_mozc"} ]