nmap
や imap
コマンドなどで特殊なキー(F1 キーや BackSpace キーなど)を使用したマッピング定義を行いたいときに、どのような名前で記述すべきかの一覧は、下記のヘルプページで参照することができます。
:help keycodes
例えば、特殊キーを表すために次のような表記が使えることがわかります。
<BS>
: Back Space キー<Bslash>
: Back Slash キー<CR>
: Enter キー(<Enter>
でもOKだけど <CR>
がよく使われている)<Esc>
: Esc キー<Space>
: スペースキー<Tab>
: Tab キー<Del>
: Delete キー<Up>
/<Down>
/<Left>
/<Right>
: 上下左右カーソルキー<F1>
-<F12>
: ファンクションキー(F1からF12)<Help>
: Help キー<Insert>
: Insert キー<Home>
: Home キー<End>
: End キー<PageUp>
: Page Up キー<PageDown>
: Page Down キーShiftキー、Controlキー、Alt(Meta)キー、Commandキー(macOSのみ)といったキーとの同時押しを表現するには、次のように記述します。
<S-Up>
: Shift + カーソルキー上<C-F10>
: Control + F10<M-Space>
: Alt(Meta) + Space<D-Right>
: Command(macOS) + カーソルキー右<C-S-F1>
: Control + Shift + F1:inoremap <C-S-F1> Hello
:nnoremap <Space> <PageDown>
nmap
の代わりに nnoremap
を使用しているのは、PageDown のデフォルトの振る舞いを割り当てるためです。
nmap
を使用すると、PageDown にすでに別の機能が割り当てられている場合に、Space の機能にもその機能が割り当てられてしまいます。
ここまででお分かりの通り、<
と >
は特殊キーの名前を囲むために使用されるため、<
という文字そのものを表すためには、<lt>
という特殊な書き方をしなければいけません。
:inoremap <C-D><C-D> <lt>Hello>
インサートモードやコマンドラインで、CTRL-K に続けて特殊キーを入力すると、カーソル位置にそのキー名を挿入することができます。 例えば、CTRL-KCTRL-SHIFT-↓ と入力すると下記のように挿入されます。
<C-S-Down>
この表記が、nmap
や nnoremap
コマンドで使用できるキー名となります。
この機能を使えばキー名を覚える必要がないように思えますが、Esc キーなどはうまく表示できかったりする(ノーマルモードに戻ってしまう)ので、やはり基本は :help keycodes
の一覧で確認するのがよいでしょう。