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

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

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

保存、終了処理

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

Undo, Redo

u undo(直前の動作の取り消し)
Ctrl + r redo(取り消した動作を戻す)

移動系

基本移動

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

ページ移動

Ctrl + u 画面の半分上に移動
Ctrl + d 画面の半分下に移動
Ctrl + b 1画面分上に移動
Ctrl + f 1画面分下に移動
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行分の操作

yy 1行ヤンク(クリップボードにコピー)
dd 1行削除
cc 1行削除の後、挿入モードへ移行

行末までの操作

なぜか、”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 デクリメント(数値を一つ下げる)

インデント

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

直前の動作の繰り返し

. 直前の動作の繰り返し