はじめに
この記事はderisさんの「vimでキーマッピングする際に考えたほうがいいこと」やKoRoNさんの「スパルタンVim 5.0」等の影響を強く受けています
素晴らしい記事なので是非一読をおすすめします
関連のヘルプの引き方
この記事は大体ここに書いてある事をまとめただけ
全コマンド一覧:help index.txt
マッピングについて:help map.txt
キーの名前の対応表:help key-notation
マップコマンドとモードの対応表:help map-overview
ノーマルモード
機能が被っているキー
片方をマッピングして潰しても問題ないキー
key | 備考 |
---|---|
<BS> | h と同じ<C-H> とは別にマップ可能 |
<C-H> | h と同じ<BS> とは別にマップ可能 |
<C-J> | j と同じ |
<C-N> | j と同じ |
<C-P> | k と同じ |
<Space> | l と同じ |
+ | <CR> と同じ |
代用可能なキー
2キー以内で代用可能、{count}の操作も変わらないキー
key | 代用キー | 備考 |
---|---|---|
C | c$ | $ 押しづらい マッピングは非推奨 |
D | d$ | $ 押しづらい マッピングは非推奨 |
S | cc | |
X | dh | |
Y | yy | |
s | cl | |
x | dl |
他にも <CR>
は j^
、 -
はk^
で代用可能
ただしオペレータと組み合わせた場合に動作が変わってしまう
未使用キー
key | 備考 |
---|---|
<C-@> | |
<C-K> | |
<ESC> | |
<C-_> | 押すキーは<C--> (?) |
\ | デフォルトの<Leader> |
機能が似ているキー
key | 似ているキー |
---|---|
' | ` |
` | ' |
0 | ^ |
_ | <CR> |
プレフィックス系
組み合わせが空いているキーがある
key | 備考 |
---|---|
<C-W> | ウィンドウコマンド |
<C-\> | ほぼ未使用 |
' | カーソルの移動 |
Z | |
[ | |
] | |
` | カーソル移動 |
g | |
m | マーク |
q | マクロ |
z |
同一キー
マッピングすると同一のキーとして扱われるので注意が必要なキー
key | key |
---|---|
<Tab> | <C-I> |
<CL> | <C-M> |
<ESC> | <C-[> |
個人的おすすめ設定
Y
でカーソル位置から行末までヤンクする
C
,D
はc$
,d$
と等しいのに対してY
はなぜかyy
となっている
nnoremap Y y$
x
,X
でカーソル文字を削除する際レジスタを汚さない
ビジュアルモードで選択すればヤンクしないd
として使用できる
nnoremapx"_xvnoremapx"_xnnoremap X "_Xvnoremap X "_X
s
,S
でカーソル文字を削除する際レジスタを汚さない設定
ビジュアルモードで選択すればヤンクしないc
として使用できる
nnoremap s "_svnoremap s "_snnoremap S "_Svnoremap S "_S
<C-p>
,<C-n>
でコマンドラインモードで入力したパターンに一致する履歴を補完する
cnoremap <C-p><Up>
cnoremap <C-n><Down>
さいごに
とりあえずノーマルモードの思いつくキーを書いてみました
間違いやその他おすすめのキーなどあればコメントお願いします