初心者が助かる実践的vim操作コマンド <移動-編集-保存>

# 概要
初心者向けに実践的なvim操作を解説します。

# 対象
- vim操作に慣れておらず、ターミナル内の操作に不安がある。
- 説明ではなく実際に何を入力して何を押せば良いのか知りたい。

# 実践内容とvim操作
1. 移動：```cd ファイルが置いてあるディレクトリ```
1. ファイル確認：```cat ファイル名```
1. ファイル開く：```vim ファイル名```
1. ファイル編集開始：```i```
1. ファイル編集終了：```esc```
1. ファイル保存：```:w```
1. ファイル閉じる：```:q```


## 1. 移動：```cd ファイルが置いてあるディレクトリ```
まずは ```cd``` で編集したいファイルの直下へ移動しましょう。
初心者でも ```cd``` は良く使うため、使える人が多いと思います。

```
MacBook-Air/home: cd directory
```

```
MacBook-Air/home/directory:
```

## 2. ファイル確認：```cat ファイル名```
「初心者は不安よな。CATで確認します。」

```cat``` はファイル名を指定すると中身がババッと表示されます。

```
MacBook-Air/home/directory: cat hoge.rb
```

```
MacBook-Air/home/directory: cat hoge.rb
class hoge
  def move
    @fuanyona = fuanyona
  end
end
```

「自分は正しいファイルを操作しようとしているか。」
「不安感が強いので99%合ってるけど中身確認したい。」

と思ったときに唱えてあげてください。

## 3.ファイル開く：```vim ファイル名```
ファイル編集の前にファイルを開く過程があります。

```
MacBook-Air/home/directory: vim hoge.rb
```

```
MacBook-Air/home/directory: vim hoge.rb

class hoge
  def move
    @fuanyona = fuanyona
  end
end                                         
~                                                                       
~                                                                       
~                                                                       
~                                                                        
"hoge.rb" 10L, 100B
```
のような画面になります。

ファイルの中に入った状態で、普段編集しているVS Codeなどのエディタと同じです。

違う点は、vim操作の場合は編集のために追加操作が必要です。

またここからすぐに出たくなった場合は```:q```で出れます。

```q```の前に```:```を入力する必要があるので、忘れずに```:q```と打ちましょう。


## 4.ファイル編集開始：```i```

ファイルを開いたあとに ```i```を押すと 下の方に <font color="Red">```-- INSERT --```</font>が出てきます。

```
MacBook-Air/home/directory: vim hoge.rb

class hoge
  def move
    @fuanyona = fuanyona
  end
end                                         
~                                                                       
~                                                                       
~                                                                       
~                                                                        
-- INSERT --
```
<font color="Red">```-- INSERT --```</font> が出ると編集できます。

操作性は柔軟ではないのでカーソルの運びに慣れないかもしれません。

編集したい箇所を編集してください。
```
class hoge
  def move
    @ugokimasu = ugokimasu
  end
end                                                                  
~                                                                       
~                                                                       
~                                                                       
~                                                                       
-- INSERT --
```

```diff
-@fuanyona = fuanyona
+@ugokimasu = ugokimasu
```
のように中身を変えました。


## 5. ファイル編集終了：```esc```
```i```のあとは ```esc```、```i```のあとは ```esc```、```i```のあとは ```esc```。

覚えるまで唱えて印象付けましょう。

<font color="Red">```-- INSERT --```</font> が消えるとOKです。

```
class hoge
  def move
    @ugokimasu = ugokimasu
  end
end                                         
~                                                                       
~                                                                       
~                                                                       
~                                                                        

```

## 6. ファイル保存：```:w```

```
class hoge
  def move
    @ugokimasu = ugokimasu
  end
end                                         
~                                                                       
~                                                                       
~                                                                       
~                                                                        
:w
```

で ```Enter```

```
class hoge
  def move
    @ugokimasu = ugokimasu
  end
end                                         
~                                                                       
~                                                                       
~                                                                       
~                                                                        
"hoge.rb" 10L, 100B written
```

```written``` があればOKです。

## 7. ファイル閉じる：```:q```

```
class hoge
  def move
    @ugokimasu = ugokimasu
  end
end                                         
~                                                                       
~                                                                       
~                                                                       
~                                                                        
:q
```
で ```Enter```

```
MacBook-Air/home/directory: 
```

これで元の世界に戻ってきます。

最後に再```cat```して編集内容が反映されてるか確認。

```
MacBook-Air/home/directory: cat hoge.rb
```

```
MacBook-Air/home/directory: cat hoge.rb
class hoge
  def move
    @ugokimasu = ugokimasu
  end
end                                         
~                                                                       
~                                                                       
~                                                                       
~                                                                        
"hoge.rb" 10L, 100B
```

# 一言
不安な時は、```cat```で安心すればいい。