vimクイックリファレンス

# vim quick reference

自分用の覚書に作りました

| normal mode   | 意味 |
|:--------------|:------|
| Esc           | exit  |
| C-[           | exit  |
| .             | 直前の変更を再実行  |
| u             | もとに戻す(undo) |
| C-r           | やり直す(redo) |
| C-o           | 移動前のカーソル位置に戻る |
| C-i           | 移動後のカーソル位置に進む |
| x             | 現カーソル位置の文字を削除 |
| Sft-x         | 現カーソル位置の前（左）1文字を削除 |

| クリップボード | 意味 |
|:--------------|:------|
| "*yy{motion} | クリップボードへコピー |
| "*p          | クリップボードからペースト |
| C-Ins        | クリップボードへコピー:visual mode |
| Sft-Ins      | クリップボードからペースト:visual mode |

| visual mode  | 意味 |
|:-------------|:------|
| v            | visual mode |
| C-v          | visual mode block |
| Sft-v        | visual mode line |
| I            | 先頭に挿入 |
| A	           | 末尾に挿入 |
| Esc          | end visual mode |

| カーソル移動 | 意味 |
|:-------------|:------|
| w            | 次の単語へ移動 |
| b            | 前の単語へ移動 |
| e            | 次の単語の末尾に移動 |
| W            | 次の単語（記号含む）へ移動 |
| B            | 前の単語（記号含む）へ移動 |
| E            | 次の単語（記号含む）の末尾へ移動 |
| 0            | 行頭へ移動 |
| ^            | 行の初めの文字へ移動 |
| $            | 行末へ移動 |
| G            | 最終行へ移動 |
| gg           | 開始行へ移動 |
| gj           | 画面上の1文字下へ移動 |
| gk           | 画面上の1文字上へ移動 |
| H            | 画面上部に移動 |
| M            | 画面中央に移動 |
| L            | 画面下部に移動 |
| f[char]      | 現カーソル行の[char]に移動（次検索） |
| F[char]      | 現カーソル行の[char]に移動（前検索） |
| %            | 対応する括弧へ移動 |
| gx           | カーソル行のURLをブラウザで表示 |
| C-g	       | ファイル名、行番号表示 |

| 画面スクロール | 意味 |
|:-------------|:------|
| C-f          | 次画面へスクロール |
| C-b          | 前画面へスクロール |
| C-d          | 半画面次へスクロール |
| C-u          | 半画面前へスクロール |
| z	           | 現在行が画面の上端になるようにスクロール |
| z.	       | 現在行が画面の中央になるようにスクロール |
| z-	       | 現在行が画面の下端になるようにスクロール |

| レジスタ | 意味 |
|:-------------|:------|
| "ay          |  選択範囲をレジスタ a に保存 |
| "byy         |  現在行をレジスタ b に保存 |
| "cd          |  選択範囲を消去しレジスタ c に保存 |
| "ddd         |  現在行を消去しレジスタ d に保存 |
| "ap          |  レジスタ a をペーストする |
| :reg         |  レジスタ一覧 |

| 補完ウィンドウでの操作 | 意味 |
|:-------------|:------|
| C-n | 次の候補 |
| C-p | 前の候補 |
| C-e | 候補を選択せず終了 |

| text mode | 同様にycでyank changeできる |
|:-------------|:------|
| dw           | 一語カット |
| dd           | 1行カット |
| db           | 後方一語カット |
| d0           | カーソルから行頭までカット |
| d^           | カーソルから行のテキストの先頭までカット |
| D            | カーソルから行末までカット |
| diw          | 区切り文字手前まで単語をカット |
| daw          | 区切り文字含め単語をカット |
| di<          | < から > までの単語をカット |
| da<          | < から > までの単語を <> 含めカット |
| df[char]     | 現カーソル位置から[char]までの単語をカット |
| dt[char]     | 現カーソル位置から[char]手前までの単語をカット |
| D            | 現カーソル位置から右を全てカット |
| p            | 現カーソル位置の次の場所にペースト |
| P            | 現カーソル位置にペースト |

| insert mode  | 意味 |
|:-------------|:------|
| i            | カーソル位置から挿入モード開始 |
| a            | カーソル位置の次の文字から挿入モード開始 |
| I            | カーソル行の冒頭から挿入モード開始 |
| A            | カーソル業の末尾から挿入モードを開始する |
| o            | 下に行追加し挿入モード開始 |
| O            | 上に行追加し挿入モード開始 |
| s            | カーソル位置の1文字を削除し挿入モード開始 |
| S            | カーソル位置の1行を削除し挿入モード開始 |
| r            | カーソル位置の1文字を上書き |
| R            | カーソル位置から上書きモード開始 |

| insert mode内 | 意味 |
|:-------------|:------|
| C-o          | インサートモード内でカーソル移動 |
| C-a          | 直前に入力したテキストを再度挿入 |
| C-@          | 同上 Escで挿入モード抜ける |
| C-w          | カーソル前にある単語を削除 |
| C-u          | カーソルより前のテキストをすべて削除 |
| C-t          | インデントの調整 |
| C-d          | インデントの調整 |
| C-r レジスタ番号"a~z  | レジスタ値を挿入 |
| C-x + C-f   | ファイル・ディレクトリ名を補完 |

| 検索 | 意味 |
|:-------------|:------|
| *            | カーソル位置の単語を検索する |
| /string      | 文字列を検索する |
| ?string      | 文字列を後方検索する |
| n            | 次の検索結果へ移動 |
| N            | 前の検索結果へ移動 |

| コマンドライン | 意味 |
|:-------------|:------|
| ZZ           | ファイルを保存して閉じる |
| :save        | ファイルを新規作成し保存する |
| :w [file]	   | ファイル名を指定して書き込み |
| :w>>[file]   | ファイルの末尾に追加 |
| :E           | ファイルを開く（ファイル一覧を表示する） |
| :e [file]    | ファイルを読み込む |
| :r [file]    | ファイルを追加する |
| :![command]  | シェルを実行 |
| !![command]  | シェルを実行して結果をカーソル位置に挿入 |
| :%s/\r//g    | 改行コードを削除する |
| :help        | ヘルプ |
| :version     | version表示 |

| 画面分割 | 意味 |
|:-------------|:------|
| :sp          | 画面を横（上下）に分割 |
| :vs          | 画面を縦（左右）に分割 |
| C-ww         | 次の分割画面に移動 |
| C-wh         | 左の分割画面に移動 |
| C-wj         | 上の分割画面に移動 |
| C-wk         | 下の分割画面に移動 |
| C-wl         | 右の分割画面に移動 |
| C-wo         | 画面分割を戻す |
| :only        | 画面分割を戻す |

| 画面分割 | 意味 |
|:-------------|:------|
| :n           | 次のファイルに移動（複数ファイル編集の場合） |
| :r file      | 既存ファイルを現在位置に読み込む |
| :e file      | 新規ファイルをバッファに読み込む |
| :split file  | ファイルを横分割したウィンドウで開く |
| :vsplit file | ファイルを縦分割したウィンドウで開く |
| :sview file  | ファイルを横分割で読み取り専用で開く |

| バッファ操作 | 意味 |
|:-------------|:------|
| :ls          | バッファ一覧表示 |
| :bn          | 次のバッファに移動 |
| :bp          | 前のバッファに移動 |
| :bf          | 先頭のバッファに移動 |
| :bl          | 末尾のバッファに移動 |

| マクロ | 意味 |
|:-------------|:------|
| qa           | マクロの記録開始 |
| q            | マクロの記録停止 |
| :reg a       | 記録したマクロ,レジスタ確認 |
| @a           | マクロの実行 |
| @@           | 直前に呼び出したマクロの実行 |

| 数値の計算 | 意味 |
|:-------------|:------|
| C-a          | 数値のインクリメント |
| C-x          | 数値のデクリメント |

| インデント | 意味 |
|:-------------|:------|
| =            | 選択行のインデント修正 |
| >>           | インデント追加 |
| <<           | インデント削除 |

[実践Vim 思考のスピードで編集しよう! | Drew Neil, 新丈径 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4048916599)