vim ノーマルモードのコマンド一覧

vimのノーマルモードのコマンドをまとめてみました。
慣れないうちはこのページを見て、vimの基本を学びましょう。

このページでノーマルモードのコマンドが一通り習得できれば、
できればかなりコーディングの速度が上がるはずです。

保存、終了処理

ZZ上書き保存してvimを終了
:qvimを終了
:q!保存せずにvimを終了
:w上書き保存

Undo, Redo

uundo(直前の動作の取り消し)
Ctrl + rredo(取り消した動作を戻す)

移動系

基本移動

hカーソルを左に移動
jカーソルを下に移動
kカーソルを上に移動
lカーソルを右に移動

ページ移動

Ctrl + u画面の半分上に移動
Ctrl + d画面の半分下に移動
Ctrl + b1画面分上に移動
Ctrl + f1画面分下に移動
ggファイル先頭の行頭に移動
Gファイル末尾の行頭に移動
[n]G[n]行目の行頭に移動(例:50G -> 50行目の行頭に移動)

行末・行頭への移動

0行頭へ移動
^行頭へ移動(インデントが考慮される)
$行末へ移動

単語単位での移動

w次の単語の先頭に移動
b前の単語の先頭に移動
e次の単語の末尾に移動
ge前の単語の末尾に移動

1文字検索移動

f[char]現在のカーソル位置から、その行の末尾にかけて[char]文字を検索
見つかればその文字に移動
F[char]現在のカーソル位置から、その行の先頭にかけて[char]文字を検索
見つかればその文字に移動
;f,Fコマンドでの検索を順方向に繰り返す
,f,Fコマンドでの検索を逆方向に繰り返す

文字列検索

/[str]現在のカーソル位置から、ファイル末尾にかけて[str]文字列を検索
見つかればその文字列の先頭に移動
?[str]現在のカーソル位置から、ファイル先頭にかけて[str]文字列を検索
見つかればその文字列の先頭に移動
e/,?コマンドでの文字列検索を順方向に繰り返す
ge/,?コマンドでの文字列検索を逆方向に繰り返す

対応カッコへの移動

%対応するカッコへの移動

ヤンク、削除

基本コマンド(基本コマンドと以下の操作対象を組み合わせて使用する)
[基本コマンド] + [操作対象]

yヤンク(クリップボードにコピー)
d削除
c削除の後、挿入モードへ移行

操作対象

移動系コマンドから大体推測できると思いますが

wカーソル位置から単語末尾までを
bカーソル位置から単語先頭までを
iwカーソル位置に存在する1単語を
0カーソル位置から行頭までを
^カーソル位置から行頭までを(インデントが考慮される)
$カーソル位置から行末までを

例)
y$ : カーソル位置から行末までを ヤンクする
diw : カーソル位置に存在する1単語を 削除する
c0 : カーソル位置から行頭までを 削除の後、インサートモードへ移行する

1行分の操作

yy1行ヤンク(クリップボードにコピー)
dd1行削除
cc1行削除の後、挿入モードへ移行

行末までの操作

なぜか、”Y”コマンドは行末までヤンクではなく1行ヤンクとなっているので注意(”yy”と同じ)

D現在のカーソル位置から行末まで削除
C現在のカーソル位置から行末まで削除の後、挿入モードへ移行

1文字削除

x現在のカーソル位置の1文字を削除
X現在のカーソル位置の直前の1文字を削除

ペースト

p現在のカーソル位置の後にペースト
P現在のカーソル位置の前にペースト

インサートモードへの移行

基本

iカーソル位置からインサート
aカーソル位置の右側からインサート
I行頭からインサート
A行末からインサート

空行を挿入する

o現在のカーソル位置の下に空行を挿入してインサート
O現在のカーソル位置の上に空行を挿入してインサート

ヴィジュアルモードへの移行

vヴィジュアルモード
V行選択ヴィジュアルモード
Ctrl + v矩形選択ヴィジュアルモード

インクリメント、デクリメント

Ctrl + aインクリメント(数値を一つ上げる)
Ctrl + xデクリメント(数値を一つ下げる)

インデント

>>インデントを追加
<<インデントを削除

直前の動作の繰り返し

.直前の動作の繰り返し