vi では複数のファイルを編集できます。たとえば、paint と orwell というファイルを交互に編集する場合は、次のようにします。
最初に paint の変更内容を保存するために、:w と入力して Return キーを押します。
orwell を編集するために、:n orwell と入力して Return キーを押します。
orwell を編集して変更内容を保存します。
orwell の編集を完了して変更内容を保存した後は、次の 3 つのどれかを選択できます。
vi を終了する − :q と入力して Return キーを押します。
paint に戻る − :n # と入力して Return キーを押します。
2 つのファイルを交互に移動する − :n # を繰り返し実行します。
:w filename (別の名前のファイルに保存) または :r filename (他のファイルを読み込む) などを編集中に使うと、:n # としても paint や orwell ではなくそのファイル filename になってしまうので注意してください。
複数のファイルを編集するには、コマンドプロンプトで vi を起動するときに、vi コマンドの後にファイル名をそれぞれスペースで区切って指定します。
$ vi paint orwell |
各ファイルは、指定された順番で表示されます。上記の例では、paint が最初に表示されます。paint の編集が終わって :n と入力すると、次のファイルの orwell の編集に移ります。現在のファイルの変更内容は保存しないで次のファイルの編集に移るには、:n の代わりに :n! と入力します。
関連したファイル名を持つ複数のファイル (例: test1、test2、test3) を編集する場合は、ワイルドカード文字を使ってそれらのファイルを指定できます。
$ vi test* |
編集の対象となるファイルが、ファイル名の数字またはアルファベットの順に表示されます。
あるファイルから別のファイルに行をコピーするには、次の手順に従います。
コピーしたい行を含むファイルを開きます。
yank コマンドを使って、コピーしたい行を名前付きバッファに保存します。
たとえば、そのファイルの 10 行分をバッファ a に保存するには、コピーしたい行のうち先頭の行にカーソルを移動して "a10Y と続けて入力します。
vi を終了せずに、別のファイル (この例では orwell) を編集します。
:n orwell |
put コマンドを使って、手順 2 で保存した行を挿入します。
たとえば、バッファ a の内容を現在カーソルがある行の下に挿入するには、そこで "ap と続けて入力します。
vi を終了すると、名前付きバッファの内容はすべて失われることに注意してください。名前付きバッファに関連する操作が完了するまで、終了 (:q) コマンドを使ってはいけません。