【Vim】Vim 初心者の操作一覧集

Vim 使えるとかっこいいなと思い操作方法の練習をはじめました。
覚えたことはどんどんと追記してい行こうと思います。
これから Vim コマンド覚えようとしている方の参考になればいいなと思っています。

## [Vim のモード](#1-Vim のモード)

| モード | できること |
| ------- | ------- |
| ノーマルモード | カーソル移動、コピー、貼り付け、削除 |
| 入力モード | 入力、貼り付け、削除 |
| ビジュアルモード | 範囲選択、コピー、削除、整形など |
| コマンドモード | ファイルの保存、終了 |


## [Vim の操作](#2-Vim の操作)


### [モード切り替え](#2-1-モード切り替え)

| コマンド | 説明                                               |
|:--------:| -------------------------------------------------- |
|    i     | カーソル位置から入力モードに切り替え（inside）     |
|    a     | カーソル位置の右から入力モードに切り替え（around） |
|    s     | カーソル一文字を削除して入力モードに切り替え       |
|    o     | 下に空行を挿入して入力モードに切り替え             |
|    I     | 行頭から入力モードに切り替え（inside）             |
|    A     | 行末から入力モードに切り替え（around）             | 
|    S     | 行全体を削除してして入力モードに切り替え           |
|    R     | 置き換え（上書きモード）                           |
|    O     | 上に空行を挿入して入力モードに切り替え             |


### [カーソル移動](#2-2-カーソル移動)

|   コマンド    | 説明                                                           |
|:-------------:| -------------------------------------------------------------- |
|       h       | 左に移動                                                       |
|       j       | 下に移動                                                       |
|       k       | 上に移動                                                       |
|       l       | 左に移動                                                       |
|      gj       | 折り返し行で下に移動                                           |
|      gk       | 折り返し行で上に移動                                           |
|       w       | 次の単語の先頭へ（word）                                       |
|       e       | 単語の最後の文字へ（end）                                      |
|       b       | 前の単語の先頭へ（back）                                       |
|       W       | , や . や ; 等の単語を飛ばして次の単語の先頭へ（word）         |
|       E       | , や . や ; 等の単語を飛ばして次の単語の最後の文字へ（end）    |
|       B       | , や . や ; 等の単語を飛ばして前の単語の先頭へ（back）         |
|       {       | 段落単位で後ろに進む                                           | 
|       }       | 段落単位で前に進む                                             |
|      gg       | ページの先頭に移動                                             |
|       G       | ページの末端に移動                                             |
|     数字G     | 数字の行に移動                                                 |
| ^ or 0 (zero) | 行の先頭へ（正規表現と同じ）                                   |
|       $       | 行の末尾へ（正規表現と同じ）                                   |
|       %       | 対応する括弧等に移動                                           |
|   Ctrl + u    | 約半画面下に移動する（up）                                     |
|   Ctrl + d    | 約半画面下に移動する（down）                                   |
|   Ctrl + e    | 画面を1行分下へスクロールする                                  |
|   Ctrl + y    | 画面を1行分上へスクロールする                                  |
|       H       | 現在のウインドウの1番上にカーソルを移動する                    |
|       M       | 現在のウインドウの真ん中にカーソルを移動する                   |
|       L       | 現在のウインドウの1番下にカーソルを移動する                  |
|      zt       | 現在のカーソル位置の行を画面の一番上になるようにする（top）    |
|      zz       | 現在のカーソル位置の行を画面の中央になるようにする             |
|      zb       | 現在のカーソル位置の行を画面の一番下になるようにする（bottom） |
|     /文字     | 文字を検索する                                                 |
|     ?文字     | 文字を逆方向に検索する                                         |
|       n       | 次の検索候補に移動する                                         |
|       N       | 検索候補を前に移動する                                         |
|     f文字     | カーソル位置の行の文字を検索して移動                           |
|     F文字     | カーソル位置の行の文字を検索して移動（逆向き）                 |
|       ;       | 次にヒットする文字へ移動                                       |
|       ,       | 前にヒットする文字へ移動                                       |
|       *       | カーソル位置の単語を検索                                       |
|   Ctrl + g    | ファイル中の現在の場所を知る                                   |


### [コピー](#2-3-コピー)

| コマンド | 説明                                      |
|:--------:| ----------------------------------------- |
| yy or Y  | カーソル位置の行をコピー                  | 
|  数字yl  | 数字文字だけコピー                        |
|   yiw    | カーソル上の単語をコピー                  |
|   yi'    | 'で囲まれた内部をコピー（他の括弧も同様） |
|   yit    | HTML タグの内部をコピー                   |


### [ペースト](#2-4-ペースト)

| コマンド | 説明                                      |
|:--------:| ----------------------------------------- |
|    p     | カーソル位置の下の行に貼り付け            |
|    P     | カーソル位置の上の行に貼り付け            |
|  数字p   | カーソルの下に数字の行数分貼り付ける      |


### [削除](#2-5-削除)

| コマンド | 説明                                                            |
|:--------:| --------------------------------------------------------------- |
|    x     | カーソル位置の削除                                              |
|    dd    | 行削除                                                          |
|  数字dl  | 数字文字だけ削除                                                |
|   diw    | カーソル上の単語を削除                                          |
|   di'    | 'で囲まれた内部を削除（他の括弧も同様）                         |
|   dit    | HTML タグの内部を削除                                           |
|    D     | カーソル位置から行末まで削除                                    |


### [削除して入力モードに切り替え](#2-6-削除して入力モードに切り替え)

| コマンド | 説明                                                            |
|:--------:| --------------------------------------------------------------- |
|    cc    | 行削除して入力モードに切り替え                                  |
|  数字cl  | 数字文字だけ削除して入力モードに切り替え                        | 
|   ciw    | カーソル上の単語を削除して入力モードに切り替え                  |
|   ci'    | 'で囲まれた内部を削除（他の括弧も同様）して入力モードに切り替え |
|   cit    | HTML タグの内部を削除して入力モードに切り替え                   |
|    C     | カーソル位置から行末まで削除して入力モードに切り替え            |


### [その他の編集](#2-7-その他の編集)

| コマンド | 説明                                  |
|:--------:| ------------------------------------- |
|    J     | 行の連結                              |
|    u     | 取り消し（cmd + z）                   |
| Ctrl + r | 取り消しを取り消す（cmd + shift + z） |
|    =     | 選択範囲をインデント                  |
|    >>    | 現在の行をインデント（右へ）          | 
|    <<    | 現在の行をインデント（左へ）          |



### [領域選択](#2-8-領域選択)

| コマンド | 説明                       |
|:--------:| -------------------------- |
|    v     | ビジュアルモードに切り替え（文字） |
|    V     | ビジュアルモードに切り替え（行） | 
| Ctrl + v | ビジュアルモードに切り替え（矩形）   |


### [ファイルの保存 / 終了 / 開く](#2-9-ファイルの保存 / 終了 / 開く)

|   コマンド    | 説明                         |
|:-------------:| ---------------------------- |
|      :q!      | 編集した内容を保存せずに終了 |
|      :wq      | 編集した内容を保全して終了   |
| :w ファイル名 | 名前をつけて保存             | 
| :e ファイル名 | ファイルを開く               |



### [ウインドウ切り替え](#2-10-ウインドウ切り替え)

|  コマンド  | 説明                                      |
|:----------:| ----------------------------------------- |
| Ctrl + w s | ウインドウを分割（上下）                  |
| Ctrl + w v | ウインドウを分割（左右）                  |
| Ctrl + w h | 左のウインドウに移動                      |
| Ctrl + w j | 下のウインドウに移動                      |
| Ctrl + w k | 上のウインドウに移動                      |
| Ctrl + w l | 右のウインドウに移動                      |
| Ctrl + w o | ウインドウを現在のウインドウ1つだけにする | 


### [複数行に文字を追記する](#2-11-複数行に文字を追記する)

|      コマンド      | 説明 |
|:------------------:| ---- |
| Ctrl + v I 文字 | 複数行の先頭に文字を追加する     |
| Ctrl + v A 文字 | 複数行の末端に文字を追加する     |