Sablime Text 3をちょくちょく使っています。
Sublime Textで日本語入力を中にTabで予測変換を行おうとすると、今まで入力していた文字列が消える・・
そのような経験をされた方って結構いらっしゃると思います。
非常に鬱陶しいのでそのような挙動をしないように設定を追加したのでメモ。
デフォルトのキーバインド設定ファイルを呼び出す
下図のようにデフォルトのキーバインド設定メニューを呼び出してください。
【Key Bindings - Default】を選択します。
そうするとキーバインドの設定ファイルが呼び出されます。
ここで、Command + s を実行してみましょう。
下図のようなエラーが出ると思います。
このファイルがいじれないことには設定の変更のしようがないので準備を行います。
ディレクトリを作り、設定ファイルを保存する
ターミナルを開き、下記のコマンドを実行してください。
$ mkdir -p ~/Library/Application Support/Sublime Text 3/Packages/Default
これで設定ファイルが置かれるディレクトリを作ることができました。
Sublime Textに戻って、再度 Command + s を実行してみましょう。
今度はファイルが保存されました。
ある部分をコメントアウトすれば忌々しいTabの挙動から開放されますが、この状態で適当に文字キーを叩いてみてください。
入力を受け付けていないと思います。
ファイルを作り終えた後、一旦ファイルを閉じないと文字を入力できないようです。
設定ファイルを編集する
再度設定ファイルを開いて、100 - 107行名のこの部分を
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "t", "exact": true} },
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "t", "exact": false},
"context":
[
{ "key": "setting.tab_completion", "operator": "equal", "operand": true },
{ "key": "preceding_text", "operator": "regex_match", "operand": ".*[^0-9]$", "match_all": true },
]
},
下記のようにコメントアウトします。
// { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "t", "exact": true} },
// { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "t", "exact": false},
// "context":
// [
// { "key": "setting.tab_completion", "operator": "equal", "operand": true },
// { "key": "preceding_text", "operator": "regex_match", "operand": ".*[^0-9]$", "match_all": true },
// ]
// },
そしてファイルを保存するとTab保管が有効になります。