UNIX界でもっともベーシックなエディタvi。これを覚えれば設定ファイルももう恐くない。
覚えておきたい必須コマンド30―その6・vi、最初の一歩
2001年07月13日 06時19分更新
viの起動方法は、想像通り、コマンドラインでviのあとに編集するファイル名をタイプするだけだ。
$ vi foo.txt
すると、画面1のような状態で立ち上がる。
画面1 立ち上げ直後のvi |
立ち上げてすぐの状態は、コマンドモードになっている。そこでまず、[i]をタイプして入力モードに入り適当な文字をタイプしてみよう。気をつけてほしいのは、viはコマンドの大文字と小文字を区別するということ。つまり[i]と[I]は別のコマンドになってしまうということだ。
入力モードの時は最下行に、“INSERT”の文字が表示される(画面2)。もっとも、これは本来のviの機能ではない。実はこのviはVIMというviクローンで、モードの表示はVIMの拡張機能だ。Red Hat Linux 6.0、LASER5 Linux 6.0 Rel.2、TurboLinux 4.5などではこのVIMをviとして使っている。もし使っているviがVIMでない場合、モードの表示はされない。
画面2 入力モードのときは最下行に[INSERT]と表示される |
では、できあがったファイルを保存しよう。今は入力モードなので、Escキーをタイプしてコマンドモードに戻る。そし て保存するには、[:w]とタイプしよう(画面3)。
保存したら、続きを打ち込むことにしよう。[i]とタイプして、なにか1文字タイプしてみると、最後の1文字の前にタイプした文字が挿入されてしまう。実は、ここで続きをタイプするのに[i]コマンドは使えない。
先ほど説明した[i]コマンドは“insert”の略で、カーソルのある部分に文字を挿入するコマンドなのだ。それでは、文章の最後に文字を追加するにはどうすればよいのだろう。追加は“append”、そう、コマンドモードで[a]をタイプすればカーソルの後に文字を追加できる(図2)。
図2 [i]コマンドはカーソル位置に挿入、[a]コマンドはカーソル位置のうしろに追加する |
では、まず今間違って入力してしまった文字を消そう。まだ、入力モードにいるなら、[Ctrl]-[h]をタイプすると直前にタイプした文字を消すことができるが、ここでEscキーをタイプして、コマンドモードに移ってしまった場合は、どうするか。カーソル位置にある文字を消すには[x]をタイプすればよい。
間違った文字を消したら、コマンドモードで[a]を押して、続きを打ち込もう。
さて、なにか打ち込んだら、今度は、いったん終了する。まず、コマンドモードに戻る。そして今まで編集したファイルをセーブして終了するなら[:wq]+Enter、編集結果を破棄するなら[:q!]+Enterとタイプすればよい。もし、なにも編集していなければ[:q]+Enterだけで終了する。