N
nob@lit-forge
Vim キーバインド 早見表
モード別(Normal / Insert / Visual / Command)に Vim のキーバインドをまとめた早見表。カーソル移動・編集・置換・検索・マクロ・レジスタ・マーク・ウィンドウ操作を一枚に凝縮。neovim / :help の主要どころも押さえた実用版。
#Vim#neovim#エディタ#キーバインド
モードの基本
- Normal: カーソル移動・コマンド入力の基本モード(Esc で戻る)
- Insert: テキスト入力(
i/a/o等で遷移) - Visual: 選択モード(
v文字 /V行 /Ctrl-v矩形) - Command:
:で起動、:w,:q,:%s/a/b/gなどを実行
カーソル移動
h j k l # 左 下 上 右
w / b # 次 / 前の単語
e / ge # 単語の末尾 / 前の単語の末尾
0 / ^ / $ # 行頭 / 最初の非空白 / 行末
gg / G # ファイル先頭 / 末尾
{N}G # N 行目へ(例: 42G → 42 行目)
Ctrl-d / Ctrl-u # 半画面下 / 上スクロール
Ctrl-f / Ctrl-b # 1 画面下 / 上スクロール
H / M / L # 画面の上 / 中央 / 下
% # 対応する ( [ { にジャンプ
f{char} / F{char} # 行内で char を前方 / 後方検索
t{char} / T{char} # char の直前(exclusive)
* # カーソル下の単語を前方検索(# は後方)
'' # 直前の位置に戻る
gd # ローカル定義にジャンプ編集コマンド
i / I # カーソル前 / 行頭で insert
a / A # カーソル後 / 行末で insert
o / O # 下 / 上に新規行で insert
x / X # 1 文字削除(後 / 前)
dd # 1 行削除
d{motion} # motion 分を削除(dw, d$, dG 等)
cc # 行を消して insert
c{motion} # motion 分を消して insert
y{motion} # motion 分をヤンク(コピー)
yy # 1 行ヤンク
p / P # 後 / 前にペースト
r{char} # 1 文字置換
R # 置換モード(上書き連続)
~ # カーソル下の大文字小文字切替
u / Ctrl-r # undo / redo
. # 直前の変更を繰り返しVisual 選択
v # 文字選択 V # 行選択 Ctrl-v # 矩形選択 gv # 直前の選択範囲を再選択 o # 選択の反対端にジャンプ d / y / c # 削除 / ヤンク / 変更 > # インデント < # アウトデント = # 自動インデント u / U # 選択範囲を小 / 大文字化
検索と置換
/pattern # 前方検索(Enter で実行) ?pattern # 後方検索 n / N # 次 / 前のマッチ :noh # ハイライト解除 :%s/foo/bar/g # 全置換 :%s/foo/bar/gc # 確認しながら置換 :'<,'>s/foo/bar/g # 選択範囲のみ置換(Visual から) :g/pattern/d # pattern を含む行を全削除 :v/pattern/d # pattern を含まない行を削除
レジスタ・マーク
"{reg}y # レジスタ reg にヤンク
"{reg}p # レジスタ reg からペースト
"+y / "+p # システムクリップボード(+)
"*y / "*p # X11 プライマリ(*)
:reg # レジスタ内容一覧
m{a-z} # マークをセット(小文字はバッファ内、大文字はグローバル)
'{a-z} # マーク行へ
`{a-z} # マーク位置へ
:marks # マーク一覧ウィンドウ・タブ・バッファ
:sp file # 水平分割 :vsp file # 垂直分割 Ctrl-w w # 次ウィンドウへ Ctrl-w h/j/k/l # 方向ウィンドウへ Ctrl-w = # サイズを揃える Ctrl-w o # 今のウィンドウ以外を閉じる :tabnew # 新規タブ gt / gT # 次 / 前のタブ :bn / :bp # 次 / 前のバッファ :ls # バッファ一覧 :bd # バッファを閉じる
マクロ・折りたたみ
q{a-z} # 記録開始(レジスタ a に)
q # 記録終了
@{a-z} # マクロ再生
@@ # 直前のマクロを再生
{N}@a # N 回再生(例: 10@a)
zf{motion} # 折りたたみ作成
zo / zc # 開く / 閉じる
zR / zM # 全展開 / 全折りたたみよく使う小ワザ
- ci" / ci( / cit: ダブルクォート / 括弧 / タグの中身を change(HTML・JSON 編集の定番)
- da{ / di{: 波括弧を含めて / 含まずに操作(block 編集)
- >i{ / <i{: ブロック内をまとめてインデント / アウトデント
- Ctrl-a / Ctrl-x: カーソル下の数値をインクリメント / デクリメント
- :sort / :sort u: 行をソート / 重複除去つきソート
- :%retab: タブとスペースを変換(
set expandtabと併用) - “+y で OS クリップボード:
set clipboard=unnamedplusするとy単体でも OK
参考: .vimrc 最小構成例
" 基本 set number " 行番号 set relativenumber " 相対行番号(カーソル移動が楽) set cursorline " カーソル行をハイライト set expandtab tabstop=2 shiftwidth=2 " スペース派 2 字 set ignorecase smartcase " 検索は大文字小文字ゆるく set hlsearch incsearch " ハイライト & インクリメンタル検索 set clipboard=unnamedplus " OS クリップボード set mouse=a " マウス許可 " キーマップ let mapleader=" " nnoremap <leader>w :w<CR> nnoremap <leader>q :q<CR> nnoremap <leader>/ :noh<CR>