【動画あり】Vimのコマンドを一覧にまとめてみた
投稿日:2022年5月28日 更新日:

テキストエディターVimのコマンドを表にまとめてみました。
アニメーション動画もつけましたので、どんな動きをするのか参考になるかと思います。
表の上にマウスを載せてみてください。
超初心者向けの操作方法と最低限のコマンドは下記記事にまとめました。
>> 最低限の基本的なvim(vi)の使い方【初心者向け】
最低限操作できるようになったら、次に覚えるべき個人的に便利なコマンドは下記記事にまとめています。
>> Vimで便利な小技(よく使うコマンド集)
一覧表の表記事項について
表の内容を簡単に説明をしておきます。
コマンド・操作
コマンド欄に載っているコマンドをVim上で入力することで、操作欄の動作をします。
コマンドの表記については下記記事で取り上げています。
>> Vimのコマンドの表記とコマンドの基本構造(オペレーターとモーション)
モード
コマンドがVimのどのモードで使用できるかを示しています。
ここでは下記のアイコンによって、Vimにある4つのモードを表記しています。
| アイコン | Vimのモード |
|---|---|
| ノーマルモード | |
| コマンドモード(コマンドラインモード) | |
| 挿入モード(インサートモード) | |
| ビジュアルモード |
スラッシュ記号(/)で2つのモードが区切られている場合は、
そのコマンドを使う前後でモードが切り替わることを意味しています。
たとえば /
は、
ノーマルモードでコマンド入力し始め、途中でコマンドモードを経由することを意味しています
(:でコマンドモードになり<Enter>でノーマルモードに戻ります)。
ちなみに、コマンドラインモードのコマンドはExコマンドとも言います。
カウント付与
Vimのコマンドの最初に数字を入力することで、コマンドを繰り返し動作させることができます。
ただし、コマンドモードのコマンドでは最後(<Enter>の直前)に入力します。
この数字のことをカウントと呼び、コマンドにカウントを付け足すことができるかどうかを示しています。
丸マーク ○ の隣に文がある場合は、
カウントを付与することでその文にある指定ができます。
カーソル移動

カーソル位置を動かすためのコマンドです。
ほとんどがモーションとして機能するので、オペレーター(テキスト編集系コマンドの主要文字)と組み合わせることで、
テキスト編集の範囲を指定したコマンドになります。
詳しくは下記記事をどうぞ。
>> Vimのコマンドの表記とコマンドの基本構造(オペレーターとモーション)
行番号を指定して移動する際には、エディター上に行番号が表示されている方が便利です。
行番号を表示させる方法は下の記事に書きました。
>> vimの行番号の表示設定と移動方法
| 分類 | コマンド | 操作 | モード | カウント 付与 |
|---|---|---|---|---|
| 1文字移動 | j | 下に移動 | ○ | |
k | 上に移動 | ○ | ||
h | 左に移動 | ○ | ||
l | 右に移動 | ○ | ||
| 行内移動 | 0 | 行頭に移動 | × | |
^ | 行頭のテキストに移動 | × | ||
$ | 行末に移動 | × | ||
| fb | 行内の前方の文字bに移動 | ○ | ||
| Fc | 行内の後方の文字cに移動 | ○ | ||
; | f, Fコマンドの移動を繰り返す | ○ | ||
, | f, Fコマンドの逆方向に移動する | ○ | ||
| 行間移動 | gg | ページ先頭に移動 | × | |
G | ページ最後に移動 | × | ||
H | ウィンドウ内の最上行に移動 | × | ||
M | ウィンドウ内の中央行に移動 | × | ||
L | ウィンドウ内の最下行に移動 | × | ||
| 10gg, 10G | 10行に移動 | ○ 移動行先をずらす | ||
| :11 | 11行目に移動 | × | ||
| ブロック移動 | % | 対応する括弧に移動 | × | |
w | 単語単位で前方移動する | ○ | ||
b | 単語単位で後方する | ○ | ||
e | 後の単語の末尾に移動 | ○ | ||
ge | 前の単語の末尾に移動 | ○ | ||
( | 次の文(センテンス)へ移動 | ○ | ||
) | 前の文(センテンス)へ移動 | ○ | ||
{ | 次の段落(パラグラフ)へ移動 | ○ | ||
} | 前の段落(パラグラフ)へ移動 | ○ | ||
| 検索 | /hoge<Enter> | テキストhogeを検索して前方のマッチ位置へ移動 | ○ | |
| ?hoge<Enter> | テキストhogeを検索して後方のマッチ位置へ移動 | ○ | ||
* | カーソル上の単語を検索して前方のマッチ位置へ移動 | ○ | ||
# | カーソル上の単語を検索して後方のマッチ位置へ移動 | ○ | ||
n | 検索で次にマッチする位置に移動(順方向) | ○ | ||
N | 検索で次にマッチする位置に移動(逆方向) | ○ |
テキスト編集

テキストを編集するコマンドです。
分類列に書いてある1文字のアルファベットはオペレーターで、
その後にモーションを接続することで作用範囲を指定します。
たとえばdiwコマンドのiw部分は、単語ブロックを意味しており、
「削除(オペレーター: d)を単語ブロック(モーション:w)に作用する」
コマンドがdiwであるということです。
ただし、オペレーターを2文字続けるコマンドや、大文字のコマンドは特殊な構造でモーションを必要としないコマンドです。
オペレーターとモーションについては下記に記述しています。
>> Vimのコマンドの表記とコマンドの基本構造(オペレーターとモーション)
コピー&ペースト(ヤンク&プット)をエディター外との間で行う方法については、下記記事にまとめています。
>> Vim (Vi)でコピー&ペーストするコマンドまとめとエディタ外部間で行う方法
数種類ある置換コマンドのまとめ、コマンドモードの置換コマンド :%s/AAA/BBB/g<Enter> のフラグや正規表現を使った置換方法の説明は下記記事に書きました。
>> Vimでサクッと置換する方法と置換コマンドの構成
改行の挿入・削除方法と改行コードの文字化け ^M の修正方法を知りたい方は下記をどうぞ。
>> Vimの改行コマンドと改行コードの操作
| 分類 | コマンド | 操作 | モード | カウント 付与 | |
|---|---|---|---|---|---|
| 削除 | d | dd | カーソル行を削除 | ○ | |
D | カーソルから行末まで削除 | ○ | |||
diw | カーソル上の単語を削除 | ○ | |||
di" | ダブルコーテーション内部を削除 | × | |||
| :12d<Enter> | 12行目を削除 | ○ 行数指定 | |||
| x | x | 1文字削除(カーソル右移動) | ○ | ||
X | 1文字削除(カーソル左移動) | ○ | |||
| 置換 | c | cc | カーソル行を削除して挿入モードへ | ○ | |
C | カーソルから行末までを削除して挿入モードへ | ○ | |||
ciw | カーソル上の単語を削除して挿入モードへ | ○ | |||
ci" | ダブルコーテーション内部を削除して挿入モードへ | × | |||
| s | s | 1文字削除して挿入モードへ | ○ | ||
S | カーソル行を削除して挿入モードへ | ○ | |||
| :%s/AAA/BBB/g<Enter> | 文字列AAAをBBBに置換 | × | |||
| r | r | 1文字置換 | ○ | ||
R | <Esc>を押すまで置換(置換モード) | ○ | |||
| ヤンク コピー | y | yy | カーソル行をコピー | ○ | |
yiw | カーソル上の単語をコピー | ○ | |||
yi" | ダブルコーテーション内部をコピー | × | |||
| :13y<Enter> | 13行目をコピー(ヤンク) | ○ 行数指定 | |||
| プット・ペースト | p | p | カーソルの次(下)に貼り付け | ○ | |
P | カーソルの前(上)に貼り付け | ○ | |||
| インデント | > | >> | カーソル行のインデントを追加 | ○ | |
| < | << | カーソル行のインデントを削除 | ○ | ||
| = | == | カーソル行のインデントを自動調整 | ○ | ||
| 操作の繰り返し | u | コマンドの操作を元に戻す(アンドゥ) | ○ | ||
CTRL-r | 元に戻すのを取り消す(リドゥ) | ○ | |||
. | 直前のコマンドを繰り返す | ○ | |||
| 大文字・小文字変換 | ~ | 大文字・小文字を入れ替える | ○ | ||
g~~ | 1行の大文字・小文字を入れ替える | × | |||
gUU | 1行を大文字にする | × | |||
guu | 1行を小文字にする | × | |||
| その他 | CTRL-a | 数値を+1 | ○ | ||
CTRL-x | 数値を-1 | ○ | |||
:sort<Enter> | ファイル全体の行をソート(並び替え) | × |
モード

モードを切り替えるコマンドや、ノーマルモード以外でのみ使えるコマンドです。
ただしコマンドモードのコマンドは、多岐にわたるのでこちらに集約しておりません。
| 分類 | コマンド | 操作 | モード | カウント 付与 |
|---|---|---|---|---|
<Esc>, CTRL-[ | ノーマルモードへ | × | ||
| 挿入モード | i | カーソルの左から挿入モードへ | ○ | |
a | カーソルの右から挿入モードへ | ○ | ||
I | 行頭から挿入モードへ | ○ | ||
A | 行末から挿入モードへ | ○ | ||
o | カーソル下に新規行を作成して挿入モードへ | ○ | ||
O | カーソル上に新規行を作成して挿入モードへ | ○ | ||
CTRL-n | キーワード候補の表示、選択を下へ | × | ||
CTRL-p | キーワード候補の表示、選択を上へ | × | ||
| ビジュアルモード | v | 選択モードへ | × | |
V | 行の選択モードへ | × | ||
CTRL-v | 矩形選択モードへ | × | ||
viw | カーソル上の単語を選択 | × | ||
vi" | ダブルコーテーション内部を選択 | × | ||
gv | 前回の選択範囲を再選択 | × | ||
gn | 前回の検索パターンを選択(順方向に移動) | × | ||
gN | 前回の検索パターンを選択(逆方向に移動) | × | ||
| コマンドモード | @: | 前回のExコマンドを繰り返す | ○ |
ウィンドウ操作

ウィンドウのスクロール操作や、開いてるファイルの表示切り替え・移動等を行うコマンドです。
| 分類 | コマンド | 操作 | モード | カウント 付与 |
|---|---|---|---|---|
| スクロール | zt | カーソル位置を最上に来るようにスクロール | ○カーソル位置を変更 | |
zz, z. | カーソル位置を中央に来るようにスクロール | ○カーソル位置を変更 | ||
zb, z- | カーソル位置を最下に来るようにスクロール | ○カーソル位置を変更 | ||
CTRL-u | 半画面上にスクロール | ○ 移動量変更 | ||
CTRL-d | 半画面下にスクロール | ○ 移動量変更 | ||
CTRL-b | 1画面上にスクロール | ○ | ||
CTRL-f | 1画面下にスクロール | ○ | ||
| 画面分割 | CTRL-w v, :vs<Enter> | 左右に画面分割 | ○ 幅指定 | |
CTRL-w s, :sp<Enter> | 上下に画面分割 | ○幅指定 | ||
CTRL-w + | ウィンドウの高さを高くする | ○変更量指定 | ||
CTRL-w - | ウィンドウの高さを低くする | ○変更量指定 | ||
CTRL-w > | ウィンドウの幅を広くする | ○変更量指定 | ||
CTRL-w < | ウィンドウの幅を狭くする | ○変更量指定 | ||
CTRL-w w | カーソルを次のウィンドウへ移動 | × | ||
CTRL-w W | カーソルを前のウィンドウへ移動 | × | ||
CTRL-w h | カーソルを左のウィンドウへ移動 | ○ | ||
CTRL-w j | カーソルを下のウィンドウへ移動 | ○ | ||
CTRL-w k | カーソルを上のウィンドウへ移動 | ○ | ||
CTRL-w l | カーソルを右のウィンドウへ移動 | ○ | ||
CTRL-w r | ウィンドウ位置を入れ替える | × | ||
CTRL-w n | 新しいウィンドウを開いて新規作成 | ○幅指定 | ||
| タブ | :tabs<Enter> | タブ一覧を表示 | × | |
:tabe<Enter> | 新規タブを作成 | × | ||
:tab split<Enter> | 新規タブで現在のファイルを開く | × | ||
:tabo<Enter> | 現在のタブ以外のタブを閉じる | × | ||
gt | 次のタブに切り替え | × | ||
gT | 前のタブに切り替え | × | ||
:tabr<Enter> | 最初のタブに切り替え | × | ||
:tabl<Enter> | 最後のタブに切り替え | × | ||
| バッファー | :ls<Enter>, :buffers<Enter> | 開いているバッファー一覧を表示 | × | |
| :b3<Enter> | 3番目のバッファーに切り替える | × | ||
:bn<Enter> | 次のバッファーに切り替える | × | ||
:bp<Enter> | 前のバッファーに切り替える | × | ||
:bd<Enter> | 表示中のバッファーを閉じる | × |
搭載機能

レジス・マクロの他、マーク位置・ジャンプ位置・編集位置に移動できる、Vimに搭載されている機能のコマンドです。
Vimのコピー文字格納場所であるレジスタの種類と使い方は下記記事にまとめました。
>> Vimのレジスタの種類とコマンドの使い方・構造
| 分類 | コマンド | 操作 | モード | カウント 付与 |
|---|---|---|---|---|
| レジスタ / マクロ | :reg<Enter> | レジスタリストを表示 | × | |
| "ayy | レジスタaへテキストを格納(ヤンク) | ○ | ||
| マクロ | qa | レジスタaへのマクロの記録を開始 | × | |
q | マクロの記録を終了 | × | ||
| @a | レジスタaへ記録したマクロを実行 | ○ | ||
@@ | 直前に実行したマクロを実行 | ○ | ||
| マーク | :marks<Enter> | マークリストを表示 | × | |
:delm b<Enter> | マークbを削除 | × | ||
:delm!<Enter> | 全マークを一括削除 | × | ||
| mb | マークbへカーソル位置を記録 | × | ||
| `b | マークbに記録した位置に移動 | × | ||
| ‘b | マークbに記録した行頭に移動 | × | ||
| `. | 最後の編集位置に移動 | × | ||
| `^ | 最後の挿入位置に移動 | × | ||
| `" | 現在のファイルを最後に閉じた位置に移動 | × | ||
| `0 | 最後にVimを終了したファイルを開き、最終位置に移動 | × | ||
| “ | マーク位置に移動する前の位置に戻る | × | ||
| ジャンプ位置 | :ju<Enter> | ジャンプ位置リストを表示 | × | |
CTRL-o | 前のジャンプ位置へ移動 | ○ | ||
CTRL-i | 次のジャンプ位置へ移動 | ○ | ||
| 編集位置 | :changes<Enter> | 変更リストを表示 | × | |
g; | 前の変更位置へ移動 | ○ | ||
g, | 次の変更位置へ移動 | ○ |
その他

ファイルの操作系のコマンドや、エディターの設定等を変えられるコマンドなど、上記の分類以外のコマンドです。
| 分類 | コマンド | 操作 | モード | カウント 付与 |
|---|---|---|---|---|
:q<Enter> | Vimの終了 | × | ||
:q!<Enter> | Vimの終了(強制) | × | ||
:w<Enter> | ファイルの上書保存 | × | ||
| :w output.txt<Enter> | ファイルの別名保存(ファイル名: output.txt) | × | ||
:wa<Enter> | 変更されたすべてのファイルの上書保存 | × | ||
:e!<Enter> | 現在のファイルを(強制的に)再読み込み | × | ||
| :e input.txt<Enter> | ファイルを開く(ファイル名: input.txt) | × | ||
:E<Enter> | カレントファイルのディレクトリを開く | × | ||
:noh<Enter> | 検索ハイライトを非表示 | × | ||
| :vim DD **<Enter> | カレントディレクトリ内でDDを含むファイルを検索(vimgrep、ファイル横断検索) | × | ||
:cn<Enter> | vimgrepでヒットした次のファイル・位置に移動 | ○ | ||
:cN<Enter> | vimgrepでヒットした前のファイル・位置に移動 | ○ | ||
CTRL-g | ファイル名、ファイルの状態、位置を表示 | × |