viはUNIXの標準的なエディタです。MS-DOSやWindowsに慣れた人からすると、その独特の操作体系が異様に感じられるかもしれません。
しかし、使い慣れれば、その良さがきっと理解できると思います。
サーバもviを使って編集できると、より快適に運用できるようになります。
また、viはおよそすべてのUNIX環境で備えられていますから、このエディタの使い方さえ覚えておけば、どこでコンソールに向かってもファイルの編集が可能です。
コマンド一覧
- viの編集モード
viには二つのモードがあります。
文字を入力する入力モードと、ファイルの読み書きや、カーソルの移動、文字の削除などを行うコマンドモードになります。この二つのモードを切り替えながら編集を行います。
コマンドモードから入力モードに移るには、i,a,A,o,Rなど、文字入力に用いるキーを使います。
入力からコマンドモードに移るには、ESCキーを入力します。
※ 今現在どちらのモードを選択しているか判らない場合にはESCキーをbeep音が鳴るまで2,3回押してください。どのような場合でもコマンドモードへと移行します。
- viの起動
sampleというファイルを編集したい場合、シェルプロンプトで、
$ vi sample
と入力します。
※ $ はプロンプトなので入力する必要はありません。
- viの終了
入力モードの場合、ESCキーを押してコマンドモードに入り、:qと入力します。バリエーションとしては下記があります。
:q viの終了 (何も書き込まずに終了したい場合) :wq ファイルに書込んだものを上書き保存してviを終了 :q! 編集結果をファイルに書込まずに終了 :wq! リードオンリーのファイルに強制的に書き込んで終了
- カーソルの移動
viではカーソルの移動に、カーソルキー(キーボード上の矢印キー)は使用しません。替わりに右手のホームポジションのキーセットを使用します。
h カーソルを1文字左へ j カーソルを1行下へ k カーソルを1行上へ l カーソルを1文字右へ 0 カーソルを行頭へ $ カーソルを行末へ
- 文字の挿入
コマンドモードでiを入力すると、入力モードに切り替わり、文字が挿入できます。バリエーションとしては下記があります。
i 入力モードに移行。カーソル位置の前に文字を挿入 a 入力モードに移行。カーソル位置の後に文字を追加 A 入力モードに移行。行の終わりに文字を追加 O 入力モードに移行。現在の行の前に文字を挿入 R 入力モードに移行。カーソル位置の文字を上書き
- 文字の削除
コマンドモードでxを入力すると、カーソル位置の文字を消去します。バリエーションとしては下記があります。
x カーソル位置の文字を削除 dd 1行削除 xdd x行削除(例:3ddと入力すると3行削除) J 次の行を、現在カーソルのある行の末尾に追加(行末文字の削除)
- 行のコピー&ペースト
コマンドモードでYまたはyyと入力すると、その行のコピーを行います。
また、pと入力するとYでコピーした1行をペーストすることができます。
なお、ペーストは現在カーソルのある行で行われますから注意してください。
Y カーソルのある行をコピー yy カーソルのある行をコピー(Yと同じ意) p コピーした行をペースト yyp カーソルのある行をコピーし、その行の下にペースト(Ypも同じ意)
- 検索
/を入力した後、検索したい文字列を入力し、ENTERキーを押すと、文末に向かって検索が行われ、最初に見つかった文字列にカーソルが移動します。バリエーションとしては下記があります。
/sample sampleという文字列をファイルの末尾に向かって検索 ?sample sampleという文字列をファイルの先頭に向かって検索 n 次の候補を検索
- UNDO
uを入力すると、直前の操作を取りやめる(無かったことにする)事ができます。バリエーションとしては下記があります。
u 直前の操作を取りやめる U 行全体の操作を取りやめる
- その他
:set number 行番号を表示することができます :set nonumber 行番号を非表示にすることができます :x,yd 行を指定して削除を行います(例:x(行のはじめ),y(行の終わり)dと入力すると、x〜y行を削除します)