検索
連載

管理者の第一歩、viのススメWindowsユーザーに教えるLinuxの常識(5)(1/2 ページ)

エディタは世の中に星の数ほどあり、優劣はつけ難い。自分が一番使いやすいもの、慣れているものを使えばそれでよい。が、まさかのときに備えて最低限マスターすべきエディタもある。その筆頭がviだ。

Share
Tweet
LINE
Hatena

なぜviなのか?

基本はvi

 UNIXにおけるエディタの2大潮流は、viとEmacsです。最近は、X Window System(以下X)を前提としたGNOMEやKDEに含まれるGUIベースのエディタも一般的になりつつあります。これらはWindows用のエディタと使い方が似ているのですが、Xの使えない環境では利用できません。

 Emacsは現代的なフルスクリーンエディタです。文字を打てば素直に反映されますし、X環境に対応したXEmacsもあります。かつてはワークステーションでも持て余すほど巨大なプログラムの代表でしたが、最近のPCではEmacsといえどもちっとも鈍重には感じません。いずれにしてもエディタには一長一短があり、簡単に優劣をつけられません。普段は自分の気に入ったもの、使いやすいものを使用すれば問題ありません。

 が、非常時にはそうもいきません。システムクラッシュの回復時に使うべきエディタとして考えると、Emacsは複雑すぎます。また、サーバマシンなどではEmacsがインストールされていない可能性もあります。しかし、viがインストールされていないマシンはまずありません。例えばRed Hat Linux 7.1では、Emacsが/usr/binにあるのに対して、viは/binにあります。つまり、viは最低限必要なコマンドに位置付けられているわけです。

viの特徴

 それでは、viの特徴を見てみましょう。何といっても、「モード」を持っていることが最大の特徴です。キー入力そのままに文字を入力する状態を「編集モード」、キー入力でviの機能を利用する状態を「コマンドモード」と呼びます。viの起動直後はコマンドモードであり、文字をタイプしてもその文字が入力されるわけではありません。文字を入力するには、[i](insert)や[a](append)などのコマンドを表すキーをタイプして編集モードに移行する必要があります。入力が終わったら、[ESC]キーを押してコマンドモードに戻ります。viを使うためには、どちらのモードになっているかを常に意識している必要があるということです(画面1)。

画面1 viの画面。最下部に「INSERT」と表示されており、編集モードであることが分かる
画面1 viの画面。最下部に「INSERT」と表示されており、編集モードであることが分かる

 2番目の特徴は、ラインエディタをベースとしていることです。ラインエディタといってもピンとこないでしょう。Windowsでは、edlinというラインエディタが用意されています。MS-DOS 3.1にはすでにあった由緒正しいエディタですが、使ったことのある人はほとんどいないと思います。

 viやEmacsはフルスクリーンエディタで、常にテキストが画面上に表示されています。これに対して、ラインエディタはコマンドを駆使してテキストを表示・編集します。viの第1の特徴は、実はラインエディタをベースとしているという第2の特徴から必然的に導かれるといっていいでしょう。

 ラインエディタは、コマンドを知らないと使えませんし、慣れないと極めて使いにくいものです。しかし、大きな長所があります。それは、とにかく文字の入出力ができれば使えることです。もう少し詳しく説明すると、viやEmacsといったフルスクリーンエディタでは、画面を縦横に使った表示をするだけに、そのためのコントロールシーケンスを必要とします。例えば、画面の上から5行目だけを書き換えるといったことができなければなりません。もちろん、Xやコンソールから使っていれば当然利用できる機能です。が、時としてシステムの調子がおかしくなったのをメンテナンスするとき、このコントロールシーケンスが働かなくなることがあります。また、シリアルラインからダム端末経由でログインしたときも、フルスクリーンエディタは使えないと思った方がいいでしょう。こうした場合でも、ラインエディタなら問題なく使えます。

 viの使い方、特にexモードの使い方を覚えておくと、いざというときに「ex」というラインエディタが使えて助かることがあるのです。システム管理者を志すなら、こうした事態にも備えておく必要があるでしょう。

 ちなみに、exはviのベースになったラインエディタの名前です。現在のLinuxディストリビューションでは、exもviも同一のファイルで、ハードリンクを使って別の名前のファイルとして用意されています。起動したときの名前に応じて、exとして動作するかviとして動作するかが決まるようになっています。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る