#VimのNormalモードで日本語入力が鬱陶しい
latexの文章を自分のテキストエディタで書いている時,日本語入力のままNormalモードでコマンドを打ってしまい,Vim操作にならず手間がかかることが多々あったので,InsertからNormalに切り替えるときに自動で英数入力に切り替える方法を調べた.
#KarabinerではSierra, High Sierraでの方法がわからない
キーバインドを自由に設定できるKarabinerでは,Sierra,High Sierraにおいて複数キーを複数キーにリマップすることができないらしい.自分でもやってみたがうまくいかなかった.
#Hammerspoonを利用するとできた
Hammerspoonは,macOSに関する様々な処理を自動化するツール.
https://blog.freedom-man.com/macos-sierra-keyremap/
このサイトを参考に,設定してみる.
Hammerspoonをインストールし,起動 -> Enable Accessibilityをクリック -> セキュリティとプライバシーのプライバシーでHammerspoonにチェック
このあと,configをいじる.
File -> Open configで,init.luaファイルを編集.
local function keyCode(key, modifiers)
modifiers = modifiers or {}
return function()
hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), true):post()
hs.timer.usleep(1000)
hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), false):post()
end
end
local function keyCodeSet(keys)
return function()
for i, keyEvent in ipairs(keys) do
keyEvent()
end
end
end
local function remapKey(modifiers, key, keyCode)
hs.hotkey.bind(modifiers, key, keyCode, nil, keyCode)
end
remapKey({ 'ctrl' }, ']', keyCodeSet({
keyCode('escape'),
keyCode(';', {'ctrl', 'shift'})
}))
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "R", function()
hs.reload()
end)
hs.alert.show("Config loaded")
コードの説明は下の参考にしたサイトでみていただければと思う.
このようにファイルを設定した後,File -> Reload configで,configをリロードする.
これでInsertからNormalにスムーズに切り替えができるようになった.
ちなみに,カタカナ入力をオンにしている場合はうまくいかない場合があるので,
システム環境設定 -> キーボード -> 入力ソース -> 日本語
から,カタカナ,半角カタカナのチェックを外しておくとうまく行くと思う.
めっちゃ参考にしたサイト:
https://blog.freedom-man.com/macos-sierra-keyremap/