LoginSignup
22
27

More than 5 years have passed since last update.

Vimのキーマップに適したキー

Posted at

はじめに

この記事は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,Dc$,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>

さいごに

とりあえずノーマルモードの思いつくキーを書いてみました
間違いやその他おすすめのキーなどあればコメントお願いします

22
27
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
27