vi 3

サンプルデータ

複数ファイルの編集

viを終了しないで複数のファイルを編集するには以下のコマンドを使用する。
これらのコマンドを知っておくとファイル間の文字列のコピー・移動などを便利に行うことができる。

:n
起動時に複数のファイルを引数にとっていた場合はこのコマンドで次のファイルに移ることができる。
:e file
fileを編集する。
:e#
直前のファイルを編集する。
:rew
起動時の最初のファイルを編集する。

ただし、現在編集しているファイルを1文字でも変更している場合には :wによってファイルを書き込んでおいてから、これらのコマンドを使わないと次のファイルを編集対象にはできない。

% vi tmp1.c tmp2.c tmp3.c
  1. 最初にtmp1.cが現れる。
  2. :nによってtmp2.cに移る。
  3. 次にもう一度:nによってtmp2.cからtmp3.cに移る。
  4. :e#によってtmp3.cからtmp2.cに戻る。
  5. 同じく:e#によってtmp2.cからtmp3.cに戻る。
    :e#を繰り返し使うとtmp2.cとtmp3.cを行ったりきたりになる。
  6. :rewで最初のtmp1.cに戻ることができる。
  7. その後:nによって再度tmp2.cに移る。

[image of '# vi tmp1.c tmp2.c tmp3.c']

% vi tmp1.c
  1. 最初にtmp1.cが現れる。
  2. :e tmp2.cでtmp2.cに移る。
  3. :e tmp3.cでtmp3.cに移る。
  4. :rewでtmp1.cに戻る。
    ただし、この場合は:nは使えない。

複数のファイルにまたがったコピー

2つ以上のファイルにまたがったコピーも1つのファイルでコピーを行なう場合と同じように実行できる。

ファイルtmp1.cからtmp2.cに、ある1行をコピーする方法。

% vi tmp1.c
  1. 最初にtmp1.cが現れる。
  2. コピーされる行でyyと打ち込む。
  3. :e tmp2.cでtmp2.cに移る。
  4. コピーしたいところの1行上の行でpと打ち込む。
    これでカーソルの下にコピーされる。

最初にvi tmp1.c tmp2.c と実行して3.を:nにしても良い。
また、複数行をコピーするときは2.で(行数)yyとする。
例えば、3行コピーなら3yyと実行する。

便利なコマンド

*
サーチしたい単語の上にカーソルを移動して*を打ち込むと、その単語をサーチできる。
:r (ファイル名)
:rを入力する直前にあったカーソルの下にファイルの内容を読み込む。

練習課題

参考


Prev | Next
Home | Contents
abe@injapan.net