Vim使い方ガイド〜初心者向け〜

# はじめに

こんにちはraiです。

今回は、vimの基本操作を学習したので
初心者の方向けにわかりやすくまとめました。

# vimとは

パソコンだけで文字を書くための「メモ帳」みたいな高機能なテキストエディタです。
普通のメモ帳とは違い、マウスを使わずにいろんな便利機能をコマンドを使って文字を素早く編集ができます。

# 絶対に抑えておきたい基本コマンド

### vimの起動と終了
### 起動
起動にはLinuxの基本コマンドを理解する必要があります。

<table>
  <thead>
    <tr>
      <th>コマンド</th> <th>動作</th>
    </tr>
  </thead>
  <tr>
    <td> cd　ディレクトリ名 </td> <td> 対象ディレクトリに移動</td>
  </tr>
  <tr>
    <td> ls </td> <td>PC内のディクレトリを表示する</td>
  </tr>
</table>


### 起動手順
**1\.  ターミナル起動します。**
**2\.  lsでpc内のディレクトリを表示します。**
**3\.  編集、もしくは新規追加したいディレクトリを探します。**
**4\. 「cdディレクトリ」でディレクトリに移動します。**
**5\. 「ls」で移動を確認します。**
**6\. 「vim 対象ファイル」で編集。※ファイルがない場合は、新規作成されます。**

### 終了


<table>
  <thead>
    <tr>
      <th>コマンド</th> <th>動作</th>
    </tr>
  </thead>
  <tr>
    <td> :q! </td> <td>変更を破棄して終了</td>
  </tr>
  <tr>
    <td> :wq </td> <td>変更を保存して終了</td>
  </tr>
  <tr>
    <td> :q! </td> <td>変更を破棄して終了</td>
  </tr>
  <tr>
    <td> :q </td> <td>変更を保存</td>
  </tr>
</table>


### vimのモード
vimにはいくつかのモードがある。

<table>
  <thead>
    <tr>
      <th>名前</th> <th>意味</th> <th>主な機能</th> <th>起動の仕方</th>
    </tr>
  </thead>
  <tr>
    <td> NormalMode </td> <td> コマンド入力モード </td> <td> カーソル移動。他のモードへの移行。テキストのコピー、カット、ペースト。 </td> <td> Esc </td>
  </tr>
  <tr>
    <td> InsertMode </td> <td> 文字入力モード </td> <td> テキストの入力、編集 </td> <td> a/i/A/l/ciw </td>
  </tr>
  <tr>
    <td> VisualMode </td> <td> 文字選択モード </td> <td> テキストの選択 </td> <td> v </td>
  </tr>
</table>

### カーソルの移動
<table>
  <thead>
    <tr>
      <th>名前</th> <th>説明</th>
    </tr>
  </thead>
  <tr>
    <td> h </td> <td> 左に移動 </td>
  </tr>
  <tr>
    <td> l </td> <td> 右に移動 </td>
  </tr>
  <tr>
    <td> j </td> <td> 下に移動 </td>
  </tr> 
  <tr>
    <td> k </td> <td> 上に移動 </td>
  </tr>
</table>


# ステップ1:まずはここから

<table>
  <thead>
    <tr>
      <th>名前</th> <th>説明</th>
    </tr>
  </thead>
  <tr>
    <td> 基本コマンド </td> <td>  </td>
  </tr>
  <tr>
    <td> x </td> <td> 1文字削除 </td>
  </tr>
  <tr>
    <td> dd </td> <td> 行全体を削除 </td>
  </tr>
  <tr>
    <td> yy </td> <td> 1列コピー </td>
  </tr>
  <tr>
    <td> p </td> <td> ペースト </td>
  </tr>
  <tr>
    <td> u </td> <td> 操作を1つ戻す </td>
  </tr>
  <tr>
    <td> カーソル移動 </td> <td>  </td>
  </tr>
  <tr>
    <td> gg </td> <td> ページの一番上 </td>
  </tr>
  <tr>
    <td> G </td> <td> ページの一番下 </td>
  </tr>
  <tr>
    <td> H </td> <td> 表示画面の一番上 </td>
  </tr>
  <tr>
    <td> M </td> <td> 表示画面の真ん中 </td>
  </tr>
  <tr>
    <td> L </td> <td> 表示画面の一番下 </td>
  </tr>
  <tr>
    <td> ページ内検索 </td> <td>  </td>
  </tr>
  <tr>
    <td> /hoge  </td> <td> [/]の後の文字列を検索する </td>
  </tr>
  <tr>
    <td> n </td> <td> [/]で検索した文字列の次の検索候補に飛ぶ </td>
  </tr>
  <tr>
    <td> N </td> <td> [/]で検索した文字列の前の検索候補に飛ぶ </td>
  </tr>
</table>

# ステップ2:レベルアップ
<table>
  <thead>
    <tr>
      <th> コマンド </th> <th> 説明 </th>
    </tr>
  </thead>
  <tr>
    <td> 文字入力応用 </td> <td>  </td>
  </tr>
  <tr>
    <td> A </td> <td> カーソルのある行の最後にInsert Modeで飛ぶ </td>
  </tr>
  <tr>
    <td> I </td> <td> カーソルのある行の最後にInsert Modeで飛ぶ </td>
  </tr>
  <tr>
    <td> . </td> <td> 直前にやったことを繰り返す </td>
  </tr>
  <tr>
    <td> カーソル移動 </td> <td>  </td>
  </tr>
  <tr>
    <td> $ </td> <td> カーソルのある行の最後にNormal Modeで飛ぶ </td>
  </tr>
  <tr>
    <td> ^ </td> <td> カーソルのある行の最初にNormal Modeで飛ぶ </td>
  </tr>
  <tr>
    <td> Visual Mode </td> <td>  </td>
  </tr>
  <tr>
    <td> v </td> <td> VisualModeに入る </td>
  </tr>
  <tr>
    <td> v＋[移動キー] </td> <td> 範囲選択ができる </td>
  </tr>
  <tr>
    <td> v+(1)+y </td> <td> 選択範囲をコピー </td>
  </tr>
  <tr>
    <td> v+(1)+d </td> <td> 選択範囲を削除 </td>
  </tr>
</table>


# ステップ３:カーソル移動を極める

<table>
  <thead>
    <tr>
      <th> コマンド </th> <th> 説明 </th>
    </tr>
  </thead>
  <tr>
    <td> w </td> <td> 1単語飛ばしてカーソルを右に移動(文字外) </td>
  </tr>
  <tr>
    <td> e </td> <td> 1単語飛ばしてカーソルを右に移動(文字内) </td>
  </tr>
  <tr>
    <td> b </td> <td> 1単語飛ばしてカーソルを左に移動(文字外) </td>
  </tr>
  <tr>
    <td> 0 </td> <td> 行の先頭に移動 </td>
  </tr>
    <tr>
    <td> モーション </td> <td>  </td>
  </tr>
    <tr>
    <td> 数値 モーション　例:2w</td> <td> 2単語飛ばしてカーソルを右に移動 </td>
  </tr>
    <tr>
    <td> オペレータ　数値　例:d2w </td> <td> 2単語右まで削除 </td>
  </tr>
</table>

# 最後に

vimtutorについて。
Vimの基本を短時間で学べるチュートリアルです。Vimが使えるPCであればコンソールにて`vimtutor`コマンドから始めることができます。
短時間で基本が学べるので、ぜひトライしてみてください。