色んなコマンドや機能をキーマッピングできるカスタマイズ性の高さが、Vimの魅力の一つです。
しかし、標準で設定されているキーマッピングも多く、迂闊にマッピングすると既存機能を潰してしまうことになりかねません。
そこでこの記事では、ユーザー独自のキーマッピングに使えるキーについてご紹介します。
[解答1] 未割り当てキー
特別に設定していなければ、下記がノーマルモードではコマンドが未割り当て、つまりキーマッピングのないキー操作になります。
| モード | キー |
|---|---|
| ノーマルモード | 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-\ |
これらは、こちらの記事でも紹介しています。
https://vim.blue/nomap-insert-mode/
あわせて読みたい


[Vim問題] ノーマルモードで割り当てのないキーマッピングはどれ?
色んなコマンドや機能をキーマッピングできるカスタマイズ性の高さが、Vimの魅力の一つです。 しかし、標準で設定されているキーマッピングも多く、迂闊にマノーマルモ...
代替えができるキー
Ctrlキーとの組み合わせ
次のキーマッピングは、同じ機能が別のキーに割り当てられていて、操作が冗長と言えます。そのため、未割り当てと同じようにマッピングに利用できます。(括弧内は同じ意味を示すキー操作)
| モード | 候補キー | 同機能のキー |
|---|---|---|
| ノーマルモード | Ctrl-i | TAB |
| Ctrl-j | j | |
| Ctrl-n | j | |
| Ctrl-p | k | |
| インサートモード | Ctrl-d | ノーマルモードの < |
| Ctrl-i | TAB | |
| Ctrl-j | ENTER | |
| Ctrl-m | ENTER | |
| Ctrl-t | ノーマルモードの > |
記号/特殊キー
特殊キーもけっこう狙いめです。覚え方はちょっと慣れるまで苦労するかも知れません。
| モード | 候補キー | 同機能のキー |
|---|---|---|
| ノーマルモード | + | ENTER |
| Ctrl-, | , | |
| Ctrl-. | . | |
| Ctrl-[ | ESC | |
| Ctrl-End | G | |
| Ctrl-Home | gg | |
| Del | x | |
| Home | 0 | |
| Insert | i | |
| F1 | :help / :h | |
| インサートモード | Ctrl-[ | ESC |
| Ctrl-{ | ESC | |
| Ctrl-, | , | |
| Ctrl-. | . | |
| Ctrl-| | Ctrl-\ | |
| Ctrl-> | > | |
| Ctrl-< | < | |
| Ctrl-/ | Ctrl-/ |
矢印キー
矢印キーはいずれも他のキーで代替えできるので、そちらを置き換えてしまうのも手です。自分以外の利用は厳しくなるとは思いますが。
| モード | 候補キー | 同機能のキー |
|---|---|---|
| ノーマルモード | ← | h |
| → | l | |
| ↑ | k | |
| ↓ | j | |
| Ctrl-← | b | |
| Ctrl-→ | w | |
| Ctrl-↓ | j | |
| Ctrl-↑ | k | |
| Shift-→ | w | |
| Shift-← | b | |
| Shift-↑ | Ctrl-b | |
| Shift-↓ | Ctrl-f | |
| インサートモード | Ctrl-← | ← |
| Ctrl-→ | → | |
| Ctrl-↑ | ↑ | |
| Ctrl-↓ | ↓ |
g との組み合わせ
ノーマルモードでは、g キーを押した後に他のキーを組み合わせられます。いくつか割り当てがありますが、下記であれば変更しても影響はなさそうです。
- gb
- gc
- gj
- gk
- gs
- gt
- gy
- gz
このVim知識の補足情報
- 利用頻度[star rate=1]
- 便利さ[star rate=3]
- 覚え易さ[star rate=1]
参考書籍
こちらの書籍が参考になります。
[temp id=3]
