viは、LinuxやUnix系OSで使われるテキストエディタです。
ターミナル上でファイルを開き、文字を入力したり、保存したり、終了したりできます。
この記事では、練習用ファイルを作りながら、viの基本操作を順番に解説します。
この記事で練習すること
この記事では、次の操作を練習します。
viでファイルを開く- 入力モードに切り替える
- 文字を入力する
- 保存して終了する
- 保存せずに終了する
- 文字や行を削除する
- 検索する
- 行番号を表示する
まずは、保存して終了できるようになることを目標にします。
練習用ファイルを作る
ターミナルを開きます。
練習用のフォルダを作ります。
mkdir vi-practice
作成したフォルダへ移動します。
cd vi-practice
この中で、practice.txtというファイルをviで開きます。
vi practice.txt
practice.txtがまだ存在しない場合でも、このコマンドで新しいファイルとして開けます。
画面が切り替わり、viの編集画面が表示されます。
入力モードに切り替える
viを開いた直後は、文字を入力するモードではありません。
文字を入力するには、iキーを押します。
i
iを押すと、入力モードになります。
入力モードになると、普通のテキストエディタのように文字を入力できます。
次の文章を入力してください。
viの練習です。
ファイルを作成しています。
保存して終了する方法を確認します。
入力できたら、次にノーマルモードへ戻ります。
ノーマルモードに戻る
入力が終わったら、Escキーを押します。
Esc
Escを押すと、入力モードからノーマルモードに戻ります。
viでは、保存や終了の操作はノーマルモードで行います。
入力が終わったら、まずEscを押すと覚えておくと操作しやすいです。
保存して終了する
入力した内容を保存してviを終了します。
ノーマルモードで、次のように入力します。
:wq
入力したら、Enterキーを押します。
:wq
Enter
:wqは、保存して終了するコマンドです。
wは保存、qは終了を意味します。
ターミナルの画面に戻れば、終了できています。
保存できたか確認する
ターミナルに戻ったら、catコマンドでファイルの中身を確認します。
cat practice.txt
次のように、先ほど入力した文章が表示されれば保存できています。
viの練習です。
ファイルを作成しています。
保存して終了する方法を確認します。
もう一度viでファイルを開く
次に、先ほど作ったpractice.txtをもう一度開きます。
vi practice.txt
ファイルの中身が表示されます。
すでに文字が入っているファイルを開いた状態になります。
文章を追加する
ファイルの最後に文章を追加します。
まず、キーボードの矢印キーで一番下の行へ移動します。
そのあと、oキーを押します。
o
oを押すと、現在の行の下に新しい行を作り、そのまま入力モードに入ります。
次の文章を追加してください。
文章を追加しました。
入力できたら、Escを押します。
Esc
保存して終了します。
:wq
Enterを押します。
保存後、catで確認します。
cat practice.txt
最後の行に「文章を追加しました。」が増えていればOKです。
保存せずに終了する練習
次に、保存せずに終了する操作を練習します。
もう一度practice.txtを開きます。
vi practice.txt
iを押して入力モードにします。
i
適当に次の文章を追加します。
この行は保存しません。
入力したら、Escを押します。
Esc
保存せずに終了するには、次のように入力します。
:q!
Enterを押します。
ターミナルに戻ったら、catで中身を確認します。
cat practice.txt
「この行は保存しません。」が表示されていなければ、保存せずに終了できています。
1文字削除する練習
次に、文字を削除する操作を練習します。
practice.txtを開きます。
vi practice.txt
矢印キーで削除したい文字の上にカーソルを移動します。
ノーマルモードの状態で、xを押します。
x
xを押すと、カーソル位置の1文字が削除されます。
削除できたら、保存して終了します。
:wq
Enterを押します。
1行削除する練習
1行まるごと削除するには、ddを使います。
practice.txtを開きます。
vi practice.txt
削除したい行へカーソルを移動します。
ノーマルモードで、次のキーを押します。
dd
ddを押すと、カーソルがある行が削除されます。
削除後、保存して終了します。
:wq
Enterを押します。
ファイルの中身を確認します。
cat practice.txt
指定した行が消えていればOKです。
元に戻す練習
間違えて文字や行を削除した場合は、uで元に戻せます。
practice.txtを開きます。
vi practice.txt
ノーマルモードで、ddを押して1行削除します。
dd
削除したあと、uを押します。
u
削除した行が戻ればOKです。
確認したら、保存せずに終了しても構いません。
:q!
Enterを押します。
検索する練習
ファイル内の文字を検索します。
practice.txtを開きます。
vi practice.txt
ノーマルモードで、/に続けて検索したい文字を入力します。
たとえば、「保存」という文字を探す場合は、次のように入力します。
/保存
Enterを押します。
検索した文字が見つかると、その場所へカーソルが移動します。
次の検索結果へ進む場合は、nを押します。
n
前の検索結果へ戻る場合は、Nを押します。
N
確認が終わったら、終了します。
:q
Enterを押します。
行番号を表示する練習
行番号を表示すると、何行目を編集しているか分かりやすくなります。
practice.txtを開きます。
vi practice.txt
ノーマルモードで、次のコマンドを入力します。
:set number
Enterを押します。
画面の左側に行番号が表示されればOKです。
行番号を消す場合は、次のコマンドを入力します。
:set nonumber
Enterを押します。
指定した行へ移動する練習
行番号を表示した状態で、指定した行へ移動してみます。
たとえば、2行目へ移動する場合は、次のように入力します。
:2
Enterを押します。
カーソルが2行目へ移動すればOKです。
エラー文で「何行目」と表示されたときに使える操作です。
コピーして貼り付ける練習
現在の行をコピーするには、yyを使います。
practice.txtを開きます。
vi practice.txt
コピーしたい行にカーソルを移動します。
ノーマルモードで、次のキーを押します。
yy
貼り付けたい場所へカーソルを移動します。
次のキーを押します。
p
カーソルの下にコピーした行が貼り付けられます。
保存する場合は、次のコマンドを入力します。
:wq
保存しない場合は、次のコマンドで終了します。
:q!
よく使うviコマンド一覧
練習で使ったviコマンドをまとめます。
| 操作 | コマンド |
|---|---|
| ファイルを開く | vi ファイル名 |
| 入力モードにする | i |
| 下に新しい行を作って入力する | o |
| ノーマルモードに戻る | Esc |
| 保存する | :w |
| 保存して終了する | :wq |
| 保存せずに終了する | :q! |
| 終了する | :q |
| 1文字削除する | x |
| 1行削除する | dd |
| 元に戻す | u |
| 検索する | /検索文字列 |
| 次の検索結果へ進む | n |
| 前の検索結果へ戻る | N |
| 行番号を表示する | :set number |
| 指定した行へ移動する | :行番号 |
| 1行コピーする | yy |
| 貼り付ける | p |
終了できないときの確認
viを終了できないときは、まずEscを押します。
Esc
保存して終了する場合は、次のコマンドを入力します。
:wq
保存しないで終了する場合は、次のコマンドを入力します。
:q!
最後にEnterを押します。
入力中かどうか分からなくなったら、まずEscを押してから終了コマンドを入力します。
まとめ
viは、ターミナル上でファイルを編集するためのエディタです。
練習では、次の流れを最初に覚えると扱いやすくなります。
vi practice.txtでファイルを開くiで入力モードにする- 文字を入力する
Escでノーマルモードに戻る:wqで保存して終了する
保存せずに終了する場合は、Escを押してから:q!を入力します。
最初は、入力、保存、終了だけで十分です。
慣れてきたら、x、dd、u、/検索文字列、:set numberも練習すると、設定ファイルやメモファイルの編集がしやすくなります。

