キーバインドをEmacs (Mac) 風に変更する 設定マネージャー 設定マネージャーを実行し、xsettingsのプロパティKeyThemeNameの値にEmacsをセットします。
Vimで日本語入力で入力した後にインサートモードを抜けると日本語入力状態のままなので手動でIMEを無効にしないと操作できません。
mac OSでこの問題を解決するためにim-selectを使用して対応します。
やりたいこと
それは、どんなキーだろうとインサートモードを抜けたら日本語入力を無効にしたいんです。
「karabiner使ってESC押して抜けた時には無効にする方法」 ではなくて、私は ESC
でもCtrl+[
でもCtrl+c
でもインサートモードを抜けた時にはとにかく無効
にしたいんです。
im-selectとは
im-selectはターミナルからコマンド経由でIMEのモード変更が行えるオープンソースのソフトウェアです。
VSCodeのVim拡張のVSCode VimでもIMEの制御にこれを使用しています。
im-selectをインストールする
Homebrewに公開されているため、以下のコマンドでインストールできます。
brew install im-select
確認
ターミナルからim-select
を実行し、現在のインプットメソッドが出力されればOKです。
im-select
com.apple.keylayout.ABC
im-selectの使い方
引数なしで実行すると、現在のインプットメソッドを出力します。
引数にインプットメソッドを指定すると、そのインプットメソッドに切り替えます。
# 日本語入力 無効
com.apple.keylayout.ABC
# 日本語入力 有効
com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese
Google日本語入力などを使っているとインプットメソッドも変わるので、設定する環境で実行して確認しましょう。
Vimから実行するためにvim-im-selectを入れる
im-selectをインサートモードやコマンドラインから抜けるときに実行してくれるプラグインvim-im-selectがあるので、インストールします。
Vim Plugの場合
Plug 'brglng/vim-im-select'
このプラグインは以下の機能を持ちます。
- ノーマルモードへ戻る場合にIMEをオフ(g:im_select_default指定のもの)に変更する
- その際にIMEの状態を保持し、再度インサートモードに移行した時点で保持していたモードに変更する
個人的に2は余計で、復元されない方が好みですが執筆時点では有効・無効を設定するオプションはないようなので、リポジトリをForkして該当機能をコメントアウトして使用しています。
コメントを書く