Linuxでのディレクトリ移動やディレクトリの中身を確認するコマンドなど、ディレクトリの基本操作を学んだところで、今回はLinuxに標準で実装されているviコマンドについて学んでいきます。 viコマンドはLinuxの標準のエディタです。Windowsで言うところのメモ帳です。メモ帳よりもう少し多機能で使いやすいですが、モードなどの複雑な機能が少しあるので、順番に解説していきます。 また、viのさらに多機能版としてvimもあります。基本操作はどちらも変わりません。 今回説明する機能はごく一部です。あくまでファイルの編集ができるレベルの理解・かつモードなどの理解を目的とします。

viコマンドの基本(エディタ)

3年以内に更新されました。情報が古い可能性があります。
更新日 : 2019年09月06日

Linuxでのディレクトリ移動ディレクトリの中身を確認するコマンドなど、ディレクトリの基本操作を学んだところで、今回はLinuxに標準で実装されているviコマンドについて学んでいきます。

viコマンドはLinuxの標準のエディタです。Windowsで言うところのメモ帳です。メモ帳よりもう少し多機能で使いやすいですが、モードなどの複雑な機能が少しあるので、順番に解説していきます。

また、viのさらに多機能版としてvimもあります。基本操作はどちらも変わりません。

今回説明する機能はごく一部です。あくまでファイルの編集ができるレベルの理解・かつモードなどの理解を目的とします。

viエディタの起動

まずはviコマンドを実行してviエディタを起動する方法を説明します。

$vi ファイル名

これで現在いるディレクトリにあるファイル名をviエディタとして起動します。指定されたファイル名が存在しない場合にはそのファイルを作成します。

lsコマンドなどと同様に、絶対パスで指定して特定の場所のファイルを作成・開くことも可能です。

viエディタの使い方

起動ができたらviエディタがコマンドモードというモードで起動します。まずはモードについて学んでいきましょう。

viエディタのモード

viエディタの起動時、コマンドモードで起動します。viエディタのモードは2種類あります。

  • コマンドモード
    編集以外の作業を行うモードです。移動・エディタモードへの切り替え・上書き保存・終了・特殊な削除・検索・コピー・貼り付けなど、文字を打って編集する以外の作業をコマンドモードで行います。
  • エディタモード
    実際にファイルに文字を挿入していく編集モードです。もちろんコマンドモードへ移行もできます。

直接文字を打って編集する以外のことをコマンドモードで行うという理解をしておけばOKです。viエディタは、すべての作業をキーボードのホームポジションで行えるように、コマンドモードとエディタモードを上手に切り替えて使えるようになっています。

文字の移動もコマンドモードで行うのが基本となっていますが、文字の移動はエディタモードでも可能です。

viエディタの基本的な使い方

それぞれのモードでの基本的な使い方を見ていきます。

滞在モードキー内容
コマンドi現在のカーソルでエディタモードへ移行
/検索文字+Enterキー/の右に打った文字を後方検索
n次の検索
N前の検索
hカーソル移動(左)←キーでも可
jカーソル移動(下)↓キーでも可
kカーソル移動(上)↑キーでも可
lカーソル移動(右)→キーでも可
以下コロン(:)系のコマンドはEnterキーで実行
:w(上書き)保存
:qviを終了
:wq保存して終了(上2つの組合せ)
:q!強制的にviを終了
エディタescキーコマンドモードへ移行
カーソルを左へ移動
カーソルを下へ移動
カーソルを上へ移動
カーソルを右へ移動

基本的なキー操作はこれでOKです。その他コマンドは慣れたら増やして行けばいいでしょう。

コマンドモード時のカーソル移動は、キーボードのホームポジションから移動しなくてもいいように、hjklの4つのキーですべてまかなうことができます。慣れるまでは矢印キーで移動しても問題ありません。慣れなければ矢印キーだけでも気にしなくても大丈夫です。

エディタモード時でも矢印キーでカーソル移動ができます。viエディタに慣れていて上手な人は矢印キーは使いません。エディタモード時はキーを打てばそれが反映されます。

実際に使わないとわからない部分もあるかと思うので、基本を利用して使ってみましょう。

実際にviエディタを使ってみる

では実際に起動して試しながら使い方を学んでいきましょう。

まずは/tmp/に移動して、viコマンドでtest.txtを作成してみます。

$cd /tmp/
$vi test.txt

すると下の画像のようなまっさらな状態で新規ファイルが作成されます。

viエディタの起動
viエディタの起動

一番下にメッセージとしてtest.txtが新規ファイルとして作成されたと表示されています。

起動直後はコマンドモードです。まずはエディタモードに切り替えて、適当に文字を打ってみましょう。iを打ってエディタモードにします。

viのエディタモード
viのエディタモード

エディタモードに切り替わると、一番下に-- INSERT --と表示されます。iはインサートの略です。

エディタモードではキーを押下すると通常通りそのまま編集できます。5行ほど適当に文字を入力しておきましょう。

viのエディタモード編集後
viのエディタモード編集後

編集が一区切りしたところで、コマンドモードに戻ってこれを保存しておきましょう。escキーを押すと、-- INSERT --の表示が消えて、コマンドモードに移行できます。

その後、内容を保存するために:wと打ってEnterを押しましょう。これで保存処理が完了します。

viで上書き保存
viで上書き保存

このように一番下にwritten(書き込み済み)と表示されれば上書き保存ができています。

再度編集などを行う場合にはiでエディタモードに移行して適宜編集しましょう。

一通り編集も終わったら、viエディタを終了します。
:qと打ち、Enterでviエディタを終了できます。このとき、未保存の内容(編集後に:wを実行していない場合)がある場合には以下のように未保存の内容がある旨の注意書きがでて終了できないので注意しましょう。

viの未保存内容注意
viの未保存内容注意

変更内容がすべて保存できている場合には:qで終了できます。保存と終了を同時に行う場合には:wqとまとめてコマンドを処理することができます。

終了後、ファイルが存在するかlsコマンドで確認してみましょう。

vi終了確認
vi終了確認

これで保存されていることが確認できました。再度編集したい場合にはvi test.txtで起動できます。

以上で簡単な編集と上書き保存までできました。

まとめ

今回説明したviエディタは基本中の基本です。コマンドモードの表にはもっとたくさんのコマンドがありますが、一部の知っておくべきコマンドだけ表記しています。

コマンドモードと編集モードの切り替えやモードの確認をきちんと行えば、基本はそれほど難しくないので、扱えるようになっておきましょう。