Solaris ユーザーズガイド (上級編)

テキストのコピーと移動 — yank、delete、put

大部分の文書処理プログラムと同様に、vi エディタでも、テキスト行の「コピー&ペースト」と「カット&ペースト」ができます。vi で「コピー&ペースト」を行う場合は、yankput コマンドを使います。また、「カット&ペースト」の場合は、deleteput を使います。

vi で比較的短いテキストブロックのコピーや移動を行う場合は、 yankdeleteput の各コマンドを組み合わせて使います。

行のコピー

行をコピーするには、「yank」を表す yy (または Y) と、「put below」を表す p (または「put above」を表す P) という 2 つのコマンドが必要です。Yyy は同じ働きをします。

1 行をバッファに取り込む (yank) には、次の手順を実行します。

  1. 取り込みたい行の任意の位置にカーソルを移動させます。

  2. yy と入力します。

  3. 取り込んだ行を挿入 (コピー) する位置の上の行に移動します。

  4. p と入力します。

    その取り込んだ行が p と押した行の下に表示されます。

    取り込んだ行をカーソルがある行の上にコピーするには、P (大文字) を押します。

yy コマンドでは行数を指定できます。たとえば、バッファに 11 行を取り込むには、11yy と続けて入力します。すると、カーソルがある行から下方向に数えて 11 行目までがバッファに取り込まれ、画面の最終行にその旨を示すメッセージ 「11 行をバッファにコピーしました」が表示されます。

先に説明した任意の削除コマンドの直後に p または P コマンドを使うと、削除したテキストをカーソルがある行の下の行または上の行に挿入できます。


注意 – 注意 –

コピーや移動 (yank、delete、put) の操作中は、カーソルの移動コマンドだけを使ってください。テキストを新しい位置に挿入する前にほかのテキストをコピーしたり移動したりすると、先にコピーや移動のためにバッファに取り込んだ内容が失われてしまいます。


行の移動

行の移動についても、dd (「delete」を表す) と、p (または P) という 2 つのコマンドが必要です。

行を移動するには、まずその移動したい行に移動して (その行内ならカーソルはどこにあってもよい)、dd と続けて入力します。たとえば、その行とその行から数えて 5 行目までの 5 行分を移動の対象行としたい場合は、その行で 5dd と続けて入力します。このコマンドによって、移動の対象行が削除されます。

次に、その削除した行を挿入する位置の上の行に、カーソルを移動して p を押します。その行がカーソルのあった行の下に挿入されます。

また、その削除した行をカーソルのある行の上に挿入するには、P を押します。