最低限のviエディタの使い方まとめです。

Windowsの慣れた操作との対応表を作りました。良ければこちらもご覧ください↓↓

編集モードとコマンドモードがある

viエディタにはテキストを編集できる編集モードと、コマンドを実行するコマンドモードがあります。

編集モードの状態では保存やエディタの終了ができません。例えば、ファイルを開いて編集→エディタを閉じる操作の場合は、

  1. コンソールからファイルを開く
  2. 編集モードに移行
  3. テキストの編集
  4. コマンドモードに移行
  5. 終了コマンド

でようやく編集が完了します。独特のコマンドや操作感なので、頑張って慣れましょう。

コマンドモード→編集モードに切り替え

Aキーを押す。左下に-- INSERT --と表示されます。

編集モード→コマンドモードに切り替え

Escキーを押す。 左下の-- INSERT --という表示 が消えます。コマンドを入力できる状態になりました。入力した文字は左下に表示されます。

コマンドの基本

コマンドには2つの種類があります。

  1. コマンドを入力した瞬間に実行されるもの
    選択・コピー・ペーストなど、コマンド自体が短く(数文字)使用頻度が高いコマンドです。
  2. コマンドを入力してエンターキーを押して実行されるもの
    削除(文字単位/単語単位/行単位)や終了(変更を保存/破棄)など、オプションが付随します。コマンドの先頭には:(コロン)が付きます。

いずれもコマンドモードに移行して、初めて入力可能になります。

終了・保存

何もしないでエディタを終了(編集なし)

:q (コロン + q)
観覧だけしてviエディタを終了します。編集していた場合、閉じることができないので2.のコマンドを使用します。

保存せずにエディタを終了(編集してしまった場合)

:q!(コロン + q + !) 
保存せずに終了します。 観覧だけのつもりが、ファイルを編集してしまった場合 など。

保存

:w(コロン + w)
ファイルを保存します。Windowsで言うところのctrl+sですね。

上書き保存して終了

:qw(コロン + q + w)
ファイルを上書きした後にviエディタを終了します。:q:wの組み合わせです。

削除

コマンドモードで削除を実行しますが、:(コロン)の入力は不要です。編集モードからは、Escキーを押してコマンドモードに移行してから入力します。

1.一行削除

dd(d + d)
改行を含め、1行丸ごと削除されます。二つ目のdを押したタイミングで削除が実行されます。

2.行末まで削除

😀 (コロン +shift + d)
行の末尾まで削除します。:ddと異なり、改行を削除しません。

3.指定した行数削除

例えば、10行のテキストがあるとします。

1▯
2
3
4
5
6
7
8
9
10
~

このテキストファイルの1~5行目を削除したい場合は、カーソルを1行目に置いて次のように入力します。

5dd(5 + d + d)

6
7
8
9
10
~

カーソルの位置から 5行が削除されました。 ちなみに、10行しかないファイルで100行削除するコマンド(100dd)を入力しても、エラーにはならず10行すべて削除してくれます。

4.全削除

:%d(コロン + % + d)
一発で全削除可能なコマンドです。警告は出ません。