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を使ってすぐ上(!)に出現させればカーソル移動せずにコピーできたことに
なります。