はじめに
この記事は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
として使用できる
nnoremap x "_x
vnoremap x "_x
nnoremap X "_X
vnoremap X "_X
s
,S
でカーソル文字を削除する際レジスタを汚さない設定
ビジュアルモードで選択すればヤンクしないc
として使用できる
nnoremap s "_s
vnoremap s "_s
nnoremap S "_S
vnoremap S "_S
<C-p>
,<C-n>
でコマンドラインモードで入力したパターンに一致する履歴を補完する
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
さいごに
とりあえずノーマルモードの思いつくキーを書いてみました
間違いやその他おすすめのキーなどあればコメントお願いします