コンピュータ上で作成したデータは,ファイルとして保存されている.ファ イルには格納するデータに合わせていろいろな種類が存在した.例えばワープロ の文書ファイル,表計算ソフトのスプレッドシートファイルなどがある.これら はそれぞれ作成したソフトで内容を編集できる.
その中で,単純な文字だけのファイルをテキストファイルと呼んだ. テキストファイルの内容を編集するソフトはテキストファイルエディター ,あるいは単純にエディターと略して呼ばれる.Windows上のテキストファ イルエディターとしては,Windowsに最初から組み込まれている「メモ帳」など がある.
UNIX上では,最初期にはラインエディターedが存在し,今でも使用できる. ラインエディターというのは,基本的に一行単位で編集するもので,さすがに現 在ではわざわざそれを使用する理由や使わざるを得ない状況はあまり存在しない. それに対して画面にファイル内容を表示してスクロールさせることができるタイ プのエディターのことをスクリーンエディタと呼ぶ.
UNIX上で標準として用意されているスクリーンエディタとしてはviがある. 現在のWindows上のテキストエディターとはかなり異なる操作方法を採用してい る.そのほかの代表的なテキストエディターとしてはEmacsがある.これも独特 の操作方法である.Emacsはかなり大規模なソフトで,UNIXマシンによっては導 入されていない場合もある.viは現在でも大抵のUNIXマシンに導入されている.
UNIXマシンにログインした後,viの起動は次のようにコマンドで行う
cstu% vi ファイル名
指定した名前のファイルが存在しなければ,その名前のファイルが新規作成 される.すでに存在していれば,そのファイルを編集できる.
viを終了するには,vi上で次の三つのうち,いずれかのものをキーボードか ら入力すればよい.
ZZ 編集内容をファイルへ保存して終了 :wq(エンターキー) 編集内容をファイルへ保存して終了 :q!(エンターキー) 編集内容を破棄して強制終了
一番目のZZは,大文字であることに注意.小文字では終了できない.二番目 と三番目は最初に「:」(コロン)から入力する必要がある.一番目と二番目のも のは,ファイルを保存して終了する.最後のものはファイルを保存せずに終了す るため,編集内容を破棄したい場合に使用する.これら三つともコマンドモード の時でないと有効ではない.コマンドモードについては次で説明する.
viが独特な操作方法と呼ばれるのには,次のように2つのモードが存在して, それを切り替えながら編集作業を行うことが理由である.viには
コマンドモードは,カーソルを移動したり文字の削除や文字列の検索や置換 を行ったりするような各種のコマンドを入力するためのモードである.viの起動 直後はこのモードになっている.
入力編集モードは,文字を入力するためのモードである.windows上のテキス トエディターを使い慣れている人はとまどうだろうが,この入力編集モードにし ない限り(コマンドモードのままでは)キーボードを叩いても文字を入力すること ができない.
コマンドモードから入力編集モードへは次の入力コマンドを使用する
a カーソルの右から入力開始 A 行末から入力開始 i カーソルの左から入力開始 I 行頭から入力開始 o 現在行の下に1行挿入し、その行頭から入力開始 O 現在行の上に1行挿入し、その行頭から入力開始 R カーソル上の文字から上書き状態で入力開始
入力を終えて,入力編集モードからコマンドモードに戻る時には次のように する
ESC コマンドモードに戻る
その他のコマンドは次のようなものがある
h , ← 1文字左へ移動(←) j , ↓ 1行下へ移動(↓) k , ↑ 1行上へ移動(↑) l , → 1文字右に移動(→) ^ 行頭へ移動 $ 行末へ移動 G ファイルの最終行に移動 :n , nG ファイルのn行目に移動
現在の環境では基本的にカーソルキーでそのままカーソルを移動できる
yy 現在行をバッファにコピー nyy n行分をバッファにコピー yw 単語をバッファにコピー p バッファの内容を挿入(文字はカーソルの右に・行は現在行の下へ) P バッファの内容を挿入(挿入位置はpと逆)
バッファとは,コピーした文字の内容を一時的に格納しておく記憶領域のこ とを表している.ワープロソフトのコピー&ペースト操作と同じものである.
x カーソル上の1文字削除 X カーソルの左の文字を1文字削除 dd 現在行を削除(内容はバッファにコピー) ndd n行分削除 d^ カーソル位置から行の先頭までを削除 d$ カーソル位置から行の最後までを削除
r カーソル上の1文字を他の1文字に置換 s カーソルのある1文字を他の文字列で置換 S 現在行を他の文字列で置換 cw カーソル位置からこの語の最後までを置換 C カーソル位置から行の最後までを置換
いろいろなコマンドを紹介したが,最後に最低限覚えておく必要のあるコマ ンドだけ,まとめておく.それだけ知っていれば,テキスト編集が可能である. より便利に使いたい時はそれ以外のコマンドを覚えればよい.
i カーソルの左から入力開始 ESC コマンドモードに戻る x カーソル上の1文字削除 :q!(エンターキー) 編集内容を破棄して強制終了 :wq(エンターキー) 編集内容をファイルへ保存して終了