Vimで独自キーマッピングに使える未割り当てキー一覧
便利な機能を独自のキーに割り当てようとして、気づかず既存の標準機能を潰してしまったことがあります。Vimはほとんどのキーに何らかの機能が割り振られているため、空いているキーを知らずに適当なキーへマッピングするのは危険です。
ノーマルモードの未割り当てキー
- Ctrl-k
- Ctrl-\
- Ctrl-_
特別な設定をしていない標準状態で、これらは何にも割り当てられていません。安心して独自のマッピングに使えます。
インサートモードの未割り当てキー
- Ctrl-b
- Ctrl-f
- Ctrl-l
- Ctrl-s
- Ctrl-Shift-b
- Ctrl-Shift-s
- Ctrl-Shift-z
- Ctrl-Shift-4
- Ctrl-Shift-8
- Ctrl-Shift-/
- Ctrl-Shift-\
インサートモードは、ノーマルモードよりも未割り当てのキーが多くなっています。凝った修飾キーの組み合わせが多いのは、単純なCtrl+アルファベットの大半がすでに何かに使われているためです。
未割り当てではないが実質使ってよいキー
同じ機能に複数のキーが割り当てられている「冗長なキー」も、実質的にはマッピングの対象にできます。代表的なものを挙げます。
| モード | 候補キー | 同機能のキー |
|---|---|---|
| ノーマル | Ctrl-i | Tab |
| ノーマル | Ctrl-n | j(補完メニュー外) |
| ノーマル | Ctrl-p | k(補完メニュー外) |
| ノーマル | Del | x |
| ノーマル | Home / End | 0 / $ |
| ノーマル | 矢印キー | hjkl |
矢印キーはhjklで完全に代替できるので、思い切って矢印キーそのものを再マッピングしてしまう人もいます。ただし他人と同じ環境を共有する場合は混乱の元になるので、個人用の設定に限定したほうが無難です。
gとの組み合わせも狙い目
ノーマルモードではgキーに続けて別のキーを組み合わせる拡張コマンド群があります。この中には未使用の組み合わせも残っており、gb・gc・gj・gk・gs・gt・gy・gzあたりは変更しても既存機能への影響が少ない候補になります。ただし将来のVimアップデートで意味が割り当てられる可能性もあるため、絶対に安全とは言い切れない点は留意してください。
マッピング前に必ず確認する
:verbose map {キー}
この一覧を鵜呑みにせず、実際にマッピングする前は:verbose mapで本当に空いているか確認する習慣をつけると安心です。プラグインによって独自にキーが使われていることもあるため、環境によって空き状況は変わります。
:verbose mapで確認します。
お気に入りのプラグイン機能をよく考えずにキーへ割り当てたら、標準の折りたたみコマンドを潰していたことに後から気づきました。それ以来、新しいマッピングを追加する前には必ず:verbose mapで確認するようになり、同じ失敗を繰り返さなくなりました。
まとめ
未割り当てキーと冗長キーを把握しておけば、既存機能を壊さずに独自マッピングを増やせます。最終確認は必ず:verbose mapで行うと安心です。