Xのkterm、xterm、rxvt等のターミナルウィンドウ、 あるいはXの起動していないコンソール上で次にようにして起動してみます。 viはLinuxのどのディストリビューションにも必ず付属されるエディタですから、 特別な環境設定なしで動きます。 この例ではtest.txtという新しいテキストファイルを作成します。
# vi test.txt ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "test.txt" [New File]
こんな具合に画面が切り替わり、viが起動したはずです。
次は何もせずに終了してみましょう。
:q![ENTER]
と入力します。
# vi test.txt #
となり終了しました。
viではすべての操作をコマンドを入力することで行います。 以下に基本的な操作方法(コマンド)を示します。
カーソルの前に文字列を挿入 : i押し、文字列[ESC]
カーソルの後に文字列を挿入 : a押し、文字列[ESC]
カーソルの下に文字列を挿入 : o押し、文字列[ESC]
カーソルの上に文字列を挿入 : O押し、文字列[ESC]
なお、文字列の中には、改行とかスペース、タブも含まれます。
また、文字列入力中の修正・削除は[BS]
キーで可能です。
文字列の入力が終り、別の編集作業に移る場合には、必ず[ESC]
を
押して下さい。文字列挿入系以外の編集操作が可能となります。
最近のviは、デフォルトで文字列挿入状態になると画面(viのスクリーン)の左下に
[INS]
とか
-- INSERT --
といった 表示がされるようですので、
文字列挿入可能になったかどうかの判断は、
これを目安にするとよいでしょう。
[ESC]
を押すとこの表示は消えます。
カーソルを一つ左(←)に移動 : h
カーソルを一つ下(↓)に移動 : j
カーソルを一つ上(↑)に移動 : k
カーソルを一つ右(→)に移動 : l
最近のviはいわゆるカーソルキーでもカーソル移動ができますが、 これではviを使う意義も半減してしまいます。 もしviを使い込んでみようと思い立ったら、 このカーソル移動方法を身体に覚え込ませましょう。
また、"less"というテキストファイル表示コマンドがありますが、 このカーソル操作もほぼviと同じです(上下移動のみです)。
カーソル位置の1文字を削除 : x
カーソルのある行を削除 : dd
ZZ
ところで、viには大きく分けて3つの動作モードがあります。
:
(コロン)あるいは/
(スラッシュ)を出して作業をする
"exモード"[ESC]
キーと文字列挿入系コマンドです。
また、exモードにはコマンドモードで:
あるいは/
を入力すると切り替わります。
切り替わると、ターミナルの左下に:
あるいは/
が表示され、
コマンド待ち状態になります。
特に[ESC]
キーは文字列入力を抜ける場合に使うだけでなく、
今自分がviをどちらのモードで使っているのかわからなくなってしまった場合や、
打ち込んだコマンドをキャンセルする場合に押すという重要な機能があります。
[ESC]
キーを入力した場合のアクションは次のようになります。
ビープ音がなってコマンドモードがリセット状態に戻ります。
音は鳴らずにコマンドモードに切り替わります。
ターミナルの下に表示されていた:
が消えてコマンドモードに切り替わります。
ですから、何か作業をする前に必ず[ESC]
キーを押す癖をつけることで、
意図しない妙な入力ミスや編集処理を回避できます。
ということで、viを使う際の座右の銘(?)として、
困ったとき、何かする前にはまず[ESC]
キー
をあげておきます。これ以降コマンドの解説が出てきますが、
実際に使ってみる場合には、
事前に[ESC]
キーを忘れずに入力して下さい。
xtermなどで-vb(visual bell)オプションを設定している場合は、 ビープ音の代わりに画面がフラッシュします。
(余談2)
私事ですが、私はNEWS-OS(3.x)でUNIXを使い始めました。その頃のNEWS-OSには、 エディタはviしかなかったので(emacsは当時のマシンには非常に重いソフトだった)、 半分仕方なしに、キーボードと格闘しながら覚えました。ところがしばらくすると、 vi以外のエディタはかったるくて使えなくなってしまいました。 MS-DOS上でもviクローンのjstevieを使っていたくらいです。 一般的にUNIXのツールには、 とっつきは悪いけど慣れると手放せなくなるものが多いです。 文書組版ツールのLaTeX、 グラフ作成ツールのgnuplot、 作図ツールのtgif、 テキスト処理ツールのawk/sed、 そしてviが私にとってはそれにあたります。 これらがないと、私の本業で頻繁に行うデータ整理やドキュメント作成はできません。
これまでの説明の範囲で最低限のviの操作が可能ですが、 本格的にviを操作する上で知っていると便利な使い方、 というか私が日頃viを使う上で欠かせない使い方を、 次のセクションで御紹介します。実はもっといろいろな機能がある(らしい)のですが、 私の把握している範囲でよく使う機能、ということで御理解下さい。