next up previous contents
Next: A.7 もっと速く移動するには Up: A. vi 入門 Previous: A.5 カーソルの移動

A.6 行の移動とコピー

xは1文字を削除しました。同じようにddは一行を削除します。 複数の行を削除するには、5ddのようにddの前に削除したい行数を指定します。

ddは不要な行を消すだけの目的で使えますが、他にも用途があります。 そのためには、「バッファ」という考え方を知る必要があります。 ddで消された行は画面からは見えなくなりますが、完全に失われたわけでは ありません。「バッファ」と呼ばれる場所に一時的に保存されています。 バッファを扱うコマンドで、よく使用されるものを紹介しましょう。

yyはddに似ていますが、現在ある行を削除しないでバッファに記憶させます。複数行を記憶するには、9yyなどのように数字を付けます。 バッファの内容を呼び出すにはどうすればいいのでしょうか?  pがバッファの内容を画面に呼び出すコマンドです。pを押すとバッファの内容は、 カーソルのある行の下に出現します。yyとp ddとp のように組み合わせて 使うと、行単位のコピーや移動を簡単に実行できます。

例を挙げましょう。コピーしたい行までカーソルを移動したら、 そこでyyを行います。(見かけの上では何も起こりません) 次にカーソルを目的の場所へ移動させます。そこでpを押してバッファの 内容を呼び出します。ddとpの使い方も全く同様です。違いは、 ddの場合はもとのテキストは削除されますから、行を移動したことになる点 だけです。最も単純な例はddpでしょう。ddを行うと、 カーソルは次の行に移ります。従ってddpは行の交換を実行してくれます。

ddやyyのように、行単位でテキストを扱うコマンドでは、 カーソルが行のどこにあるかは問題ではありません。行の先頭にいようが、 末尾にいようが同じことです。

pはカーソルの下にバッファの内容を書き出しますが、もしファイルの先頭に コピーする内容を出したいとしたら、どうすればいいでしょうか? その時には、 pの代わりに別の命令が用意されています。P(SHIFT キーを押しながらp) がそれで、カーソルの上にバッファの内容を出現させます。また、 Pは複数行をコピーする時に便利です。たとえば5行のまとまった内容を、 すぐ下に出現させたいとしてみましょう。5yyの後、pだとカーソルを移動 しなければなりません。ちょっと頭を柔軟にして考えてみてください。 Pを使ってすぐ上(!)に出現させればカーソル移動せずにコピーできたことに なります。


Noriyo Kanayama