Vim チートシート
起動
| コマンド |
動作 |
| vim {path/file} |
vim を実行(指定ファイルを開く) |
終了
| キー入力 |
動作 |
| :q[uit] |
終了 |
| :q! |
終了(編集破棄) |
ファイル操作
| キー入力 |
動作 |
| :e[dit] {path/file} |
ファイルを開く(相対ファイルパスを入力。[TAB]で補完入力) |
| :e[dit] {path} |
ファイルエクスプローラを指定パスでオープン([TAB]で補完入力) |
| :e. |
ファイルエクスプローラをカレントディレクトリでオープン |
| :E[xplore] |
アクティブなバッファのディレクトリでファイルエクスプローラをオープン |
| :S[explore] |
:E の水平分割版 |
| :Vexplore |
:E の垂直分割版 |
| :find |
ファイルを検索して開く 検索先は path に予め設定しておく src配下なら :set path+=src/** |
| :sav[eas] {path/file} |
ファイル名を付けて保存 |
| :w[rite] |
ファイルの上書き保存 |
モード切替
ノーマルモード
| キー入力 |
動作 |
[ESC] [CTRL] + ] |
ノーマルモード |
インサートモード開始
| キー入力 |
動作 |
| i |
カーソル位置から |
| a |
カーソル位置の後ろから |
| I |
行頭から |
| A |
行末から |
| o |
カーソル行の下に新規行 |
| O |
カーソル行の上に新規行 |
| C |
カーソル位置から行末を削除 |
| s |
カーソル位置を1文字削除 |
| S |
カーソル行で新規行 |
置換モード開始
ビジュアルモード開始
※ トグルでノーマルモードと切り替わる
| キー入力 |
動作 |
| v |
文字指向 |
| V |
行指向 |
| [CTRL] + v |
ブロック指向 |
ビジュアルモード中
| キー入力 |
動作 |
| gv |
直前の選択範囲を再選択 |
| o |
選択範囲の始点と終点をトグルで移動 |
カーソル移動
| キー入力 |
動作 |
| h |
左 |
| j |
下 |
| k |
上 |
| l |
右 |
| w |
次の単語の先頭(区切り文字まで) |
| W |
次の単語の先頭(区切り文字を除く) |
| b |
カーソル位置が単語の途中なら、その単語の先頭(区切り文字まで) |
| B |
カーソル位置が単語の途中なら、その単語の先頭(区切り文字を除く) |
| e |
単語の末尾(区切り文字まで) |
| E |
単語の末尾(区切り文字を除く) |
| gg |
ファイルの先頭行 |
| G |
ファイルの末尾行 |
| H |
画面の先頭行 |
| M |
画面の中央行 |
| L |
画面の末尾行 |
| 0 |
行頭 |
| ^ |
行頭(非空白文字) |
| $ |
行末 |
| gm |
行の中央 |
| g_ |
行末(非空白文字) |
| % |
対の括弧 |
| :{number} |
number行 |
| '' |
ジャンプ前の位置 |
| '. |
直前に変更があった位置 |
| '^ |
直前に挿入があった位置 |
| m{a-zA-Z} |
現在位置をマーク |
| '{a-zA-Z} |
マークした位置 |
ノーマルモード中の編集
| キー入力 |
動作 |
| x |
1文字カット |
| dd |
1行カット |
| . |
直前の変更を繰り返す |
| yy |
1行コピー |
| p |
ペースト(カーソル位置の後) |
| P |
ペースト(カーソル位置の前) |
| u |
アンドゥ |
| [CTRL] + r |
リドゥ |
インサートモード中の編集
| キー入力 |
動作 |
| [CTRL] + h |
直前の1文字削除 |
| [CTRL] + w |
直前の1単語削除 |
| [CTRL] + u |
行頭まで削除 |
| [CTRL] + r, {0-9a-zA-Z} |
ペースト(レジスタから) |
| [CTRL] + r, * |
ペースト(クリップボードから) |
検索
行内1文字検索
| キー入力 |
動作 |
| f{char} |
前方検索 |
| t{char} |
前方検索(1文字前) |
| F{char} |
後方検索 |
| T{char} |
後方検索(1文字後) |
| ; |
次を検索 |
| , |
前を検索 |
ファイル内文字列検索
| キー入力 |
動作 |
| /{pattern} |
ファイル内で前方検索 |
| ?{pattern} |
ファイル内で後方検索 |
| * |
カーソル位置の単語を前方検索 |
| # |
カーソル位置の単語を後方検索 |
| n |
次を検索 |
| N |
前を検索 |
置換
文字列置換
| キー入力 |
動作 |
| :[%]s/{pattern}/{string} |
置換(%なし=前方, %あり=全て) |
1文字(上書き)
| キー入力 |
動作 |
| r{char} |
1文字上書き(置換モード) |
| gr{char} |
1文字上書き(仮想置換モード) |
インデント
準備
:set shiftwidth=4 softtabstop=4 expandtab
| キー入力 |
動作 |
| > |
インデントを下げる |
| < |
インデントを上げる |
| = |
自動インデント |
ウインドウ
| キー入力 |
動作 |
| [CTRL] + w, s |
水平分割 |
| [CTRL] + w, v |
垂直分割 |
| [CTRL] + w, c |
アクティブウインドウを閉じる |
| [CTRL] + w, o |
アクティブウインドウだけ残す |
| [CTRL] + w, T |
アクティブウインドウを新規タブに移動 |
| gt |
次のタブに切替 |
| gT |
前のタブに切替 |
参考