はじめる人のびぎねっと。

プライバシーポリシー

読み物

Linux操作の基本

第6回 エディタviの使い方

UNIXにおいて、伝統的に標準テキストエディタとして使われているのが「vi」です。viは、どのようなUNIXにも含まれているので、使用方法が若干特殊ですが、UNIXを管理するには欠かせない存在です。

Windowsで馴染みのある「メモ帳」をはじめとして、一般的に知られているテキストエディタは「モードレスエディタ」と呼ばれます。これは、どんな時でも編集作業と文字入力作業が行えます。それに対してviは「モーダルエディタ」と呼ばれ、編集作業を行う場合と文字入力作業を行う場合を切り替えて使います。

viは、コマンドラインから、編集したいテキストファイルのファイル名を引数として与えて起動します。

例) $ vi test

もし指定したファイルが存在すれば、そのファイルの内容を読み込んでviが起動します。もしファイルが存在しない場合には、ファイルの新規作成を行うことになります。

編集モード

viを起動した時には、編集モードとなっています。編集モードで行える主な作業には次のようなものがあります。ここでは、カーソルの移動と、文字/行の削除を説明します。

  • 画面上でのカーソルの移動
  • 文字/行の削除
  • 文字/行のバッファへの読み込み(コピー)
  • 文字/行のバッファからの貼り付け(ペースト)

★注意

viで利用するコマンドは、全て大文字/小文字を識別します。大文字と小文字では異なる動作をするコマンドもありますので、注意してください。

カーソル移動

カーソルの移動は、オリジナルのviではキーボードのhjklを利用するという特殊なものでした。それぞれの対応関係は次のようになっています(これらのキー使いを練習するために『Rogue』や『NetHack』といったゲームが存在しました)。最近のviでは、カーソルキーを利用することが出来ます。

h=左   j=下   k=上   l=右

文字の削除

文字の削除は、消去したい文字の上にカーソルを移動して「x」のキーを押します。

行の削除

行の削除は、消去したい行の上にカーソルを移動して「dd」(dを2回)キーを押します。

文字入力モード

編集モードでは、文字の入力が一切できず、全てのキー入力は編集用コマンドとして解釈されます。そのため、文字入力モードに移行する編集用コマンドを入力することで、文字の入力が可能となります。文字入力モードへの移行を行なうコマンドは何種類かあるので、それぞれ説明しましょう。

現在位置から入力開始

最もオーソドックスなコマンドです。「i」のキーを押すことにより、現在カーソルのある文字の「左側」から入力が開始されます。

現在位置の後ろから入力開始

「i」コマンドと似ていますが、「a」コマンドを入力することにより、現在カーソルのある文字の「右側」から入力が開始されます。

現在行の最後から入力開始

もし、現在行の最後に何か追加したい場合には、「A」コマンドを入力することにより、現在カーソルのある行の最後尾にカーソルが移動して入力が開始されます。

編集モードに戻る

文字入力モードから編集モードへ戻りたい時には「ESC」キーを押しましょう。即座に編集モードに戻ります。vi で今どういう状態にあるのか分からなくなったら、とにかくESCキーを押すことが基本です。

コマンドモードと編集モードの切り替わりの流れ

セーブする/終了する

ファイルをセーブしたり終了したりするのは、全て編集モードから行います。

セーブする

「:w」と入力します。「:」を入力した時点で、画面下に「:」が表示されるはずです。ここで「w」を入力してEnterキーを押すと、編集中のファイルがセーブされます。

セーブして終了する

もしセーブしてそのままviを終了したい場合には「:wq」と入力します。

セーブしないで強制終了する

変更結果をセーブしないで終了したい場合には「:q!」と入力します。

他に覚えておくと便利なコマンド

行の先頭にカーソルを移動

編集モードで「0」のキーを押すと、カーソルが一気に先頭に移動します。

1文字だけ変更したい

もし1文字だけ変更したい場合には、変更したい文字の上にカーソルを移動させて「r」キーを押します。すると、文字入力モードになりますが、1文字入力すると編集モードに戻ります。

1単語だけ変更したい

もし1単語だけ変更したい場合には、変更したい単語の上にカーソルを移動させて「cw」と入力します。すると、文字入力モードになり、1単語だけ変更できます。変更が終わったらESCキーを押して編集モードに戻りましょう。

このページのTOPへ