Normal mode に切り替えて英語モードにする
Summary
Vim の Insert mode から Normal mode に切り替えるときに、英語モードにしたい
Karabiner-Elements, macism を利用して、
<Esc>
を送信すると同時に、英語モードに切り替えるっj
という1億人の日本人 vimmer の呪いを解放する
前提
Mac
System Settings → Keyboard → Keyboard Shortcuts → Modifier Keys
Caps Lock key: Control
- System Settings → Keyboard → Input Sources: U.S.
Karabiner-Elements
brew install --cask karabiner-elements
macism
brew tap laishulu/homebrew
brew install macism
事前準備
- macism の実行パスをメモる
which macism
/opt/homebrew/bin/macism
- macism で英語モードをメモる。英語モードにした状態で以下を実行する。
macism
com.apple.keylayout.US
実装
caps lock 単体を押すと
<Esc>
が送信されるcaps lock + hoge のキーバインドで
<C-hoge>
が送信される<Esc>
が送信されると/opt/homebrew/bin/macism
com.apple.keylayout.US
が実行されるKarabiner-Elements の Complex Modifications に Add your own rule を行う
{
"description": "Transform Caps Lock: Escape When Pressed Alone (Switch to English Mode)",
"manipulators": [
{
"from": {
"key_code": "caps_lock",
"modifiers": { "optional": ["any"] }
},
"to": [
{
"key_code": "left_control",
"lazy": true
}
],
"to_if_alone": [
{ "key_code": "escape" },
{ "shell_command": "/opt/homebrew/bin/macism com.apple.keylayout.US" }
],
"type": "basic"
}
]
}
めっちゃ便利!
vim, nvim では別の方法 im-select を利用しているのだけど、zed でも同じことを実現したかったので作ってみた。