Vimチートシート
Vim/Neovimでよく使うキー操作・コマンドを目的別にまとめた一覧です。うろ覚えのコマンドを思い出したいとき、このページをブックマークしてCtrl-Fで検索するのが一番早いです。各項目には、背景や具体例まで踏み込んだ詳細記事へのリンクを付けています。まだVimを触り始めたばかりの人は、先に最低限の使い方と標準チュートリアルから始めると分かりやすいです。
検証環境:macOS + Vim 9.1.1752。表に載せたキーとコマンドは、この環境の:helpと実際の動作で確認しています。Neovim固有のものには一覧の中でその旨を添えています。
目次(15項目)
モード切替
| キー | 動作 |
|---|---|
| i / a | 挿入モードへ(カーソル位置の前/後) |
| I / A | 行頭/行末から挿入モードへ |
| Esc / Ctrl-[ | ノーマルモードへ戻る(詳細) |
| v / V / Ctrl-v | ビジュアル/行/矩形選択モード |
| R | 置換モード |
: | コマンドラインモード |
-R / view | 読み取り専用で開く(詳細) |
カーソル移動
| キー | 動作 |
|---|---|
h j k l | 左・下・上・右(矢印キーとの比較) |
| w b e ge | 単語単位の移動(記号も区切りにする) |
| W B E gE | 単語単位の移動(空白のみ区切り、詳細) |
| f{c} F{c} t{c} T{c} | 行内の文字検索移動 |
| ; , | 直前のf/t系移動を繰り返す(詳細) |
| 0 ^ $ | 行頭・最初の非空白文字・行末(詳細) |
画面移動・ジャンプ
| キー | 動作 |
|---|---|
| gg G {n}G | ファイル先頭・末尾・n行目へ |
| Ctrl-f Ctrl-b | 1画面下/上へスクロール |
| Ctrl-d Ctrl-u | 半画面下/上へスクロール(詳細) |
| % | 対応する括弧へジャンプ |
| m{a} '{a} | マークを設定・そのマークへ移動(詳細) |
| gd gD | 変数の宣言位置へジャンプ(詳細) |
| gf | カーソル下のパスをそのまま開く(詳細) |
削除・変更・コピー
| キー | 動作 |
|---|---|
| x X | カーソル位置/前の1文字を削除 |
| dd D | 行削除/カーソルから行末まで削除 |
| dw cw | 単語削除・変更(モーション基準) |
| ciw | 単語全体を変更(カーソル位置に依存しない、cwとciwの違い / cwとdwの違い) |
| yy yw | 行・単語をヤンク(コピー) |
| p P | カーソルの後/前に貼り付け |
| s | 1文字を変更(実質cl、詳細) |
| . | 直前の変更を繰り返す(詳細) |
| u Ctrl-r | アンドゥ・リドゥ(詳細) |
| >> << | インデントを増減(詳細) |
| gU gu ~ | 大文字・小文字変換(詳細 / u/Uの二重の意味) |
検索
| キー/コマンド | 動作 |
|---|---|
/{pattern} ?{pattern} | 前方・後方検索(詳細) |
| n N | 次・前の一致へ移動 |
| * # | カーソル下の単語を前方・後方検索(詳細) |
:noh | 検索ハイライトを一時解除(詳細) |
| cgn | 直前の検索結果を変更対象にする(詳細) |
| c/ d/ y/ | 検索モーションと組み合わせて変更・削除・ヤンク(詳細) |
| Ctrl-r Ctrl-w | 検索コマンドラインでカーソル下の単語を補完(詳細) |
置換
| コマンド | 動作 |
|---|---|
:s/old/new/ | 現在行の最初の一致を置換 |
:%s/old/new/g | ファイル全体を一括置換(活用集) |
:%s/old/new/gc | 1件ずつ確認しながら置換 |
\{-} | 最短マッチの正規表現(詳細) |
:sort :sort u | 行を並べ替える/並べ替えて重複を消す(詳細) |
:uniq | 並べ替えずに、隣り合った重複だけを消す(詳細) |
ウインドウ
| キー/コマンド | 動作 |
|---|---|
:split :vsplit | 水平・垂直分割(詳細) |
| Ctrl-w + hjkl | ウインドウ間を移動(詳細) |
| Ctrl-w r/x/K/J/H/L | 入れ替え・レイアウト変更(詳細) |
| Ctrl-w +/-/</>/= | サイズ変更(詳細) |
| Ctrl-w o | 他のウインドウを全部閉じる(詳細) |
:close | ウインドウを閉じる(4つの閉じ方の違い) |
タブ・バッファ
| コマンド | 動作 |
|---|---|
:tabnew :tabnext :tabclose | タブの作成・切替・終了(詳細) |
:ls | バッファ一覧を表示(記号の読み方) |
:bnext :bprev :b{n} | バッファを切り替える |
:windo :bufdo :tabdo | 開いている全体に一括でコマンド実行(詳細) |
| - | バッファ・ウインドウ・タブの違い(詳細) |
レジスタ・マクロ
| キー/コマンド | 動作 |
|---|---|
"a + p / Ctrl-r a | 名前付きレジスタの貼り付け(ノーマル/インサート、全種類一覧) |
"0 | 直近のヤンク専用レジスタ(削除の影響を受けない) |
| "_dd | ブラックホールレジスタで他のレジスタを汚さず削除 |
| q{a} ... q / @a | マクロの記録・実行(詳細) |
ファイル操作
| コマンド | 動作 |
|---|---|
:w :q :wq :q! | 保存・終了・保存して終了・強制終了 |
:e! | 外部で変更されたファイルを再読込(詳細) |
:r {file} | 別ファイルの内容をカーソル位置に挿入(詳細) |
| Ctrl-x Ctrl-f | インサートモードでファイルパスを補完(詳細) |
:oldfiles | 最近開いたファイルの履歴を表示(詳細) |
折りたたみ
設定・ヘルプ
| コマンド | 動作 |
|---|---|
:help {topic} | ヘルプを引く(効率的な検索方法) |
:set {option} | オプションを設定(現在値の確認方法) |
:map :verbose map | キーマッピングの一覧・定義元を確認(詳細) |
| <Leader> | 独自キーマッピング用の起点キー(詳細) |
覚える順番を決める
一覧を上から順に覚えようとすると、まず続きません。編集で困っている場面から逆に引くのが実用的です。移動に時間がかかっていると感じるなら「カーソル移動」と「画面移動・ジャンプ」、消して打ち直す手数が多いと感じるなら「削除・変更・コピー」から見てください。
目安として、1日に1つか2つだけ選んで、その日の作業の中で意識して使います。使う場面が来なかったキーは、そもそも自分の作業では出番が無いということなので、覚えなくて構いません。
手元のVimで引く方法
この一覧に載っていないキーを調べたくなったら、Vimに同梱されているヘルプが最も確実です。モードごとに項目が分かれているので、接頭辞を付けて引きます。
:help i_CTRL-R " 挿入モードの Ctrl-r
:help v_o " ビジュアルモードの o
:help :s " Exコマンドの :s
:help 'shiftwidth' " オプションはクォートで囲む
キーそのものを忘れて機能だけ覚えている場合は、:helpgrep でヘルプ全体の本文を検索できます。引き方の詳しい説明はヘルプの使い方にまとめています。
手を動かして覚えるなら
一覧を眺めるだけでは指が動くようになりません。ブラウザ上で動くVim道場を用意しているので、章ごとに実際にキーを打ちながら確かめられます。インストールもログインも要りません。
手元のVimで練習したい場合は、同梱のチュートリアルから始める方法もあります。vimtutor ja と打てば日本語版が開き、壊しても構わないコピーの上で演習できます。
次に読むなら
Vim標準の演習で手を動かして定着させたいならvimtutor/:Tutor、なぜVimを選ぶのかを整理したいならなぜVimmerはVimを使い続けるのか、実際に予測しながら練習したいならオペレータ+モーション練習ドリルも参照してください。