コピー、カット、ペースト - vi

viでコピー&ペースト、またカット&ペーストを行うにはどうすれば良いだろうか?文章の移動も原則カット&ペーストで行うことになる。この機能を覚えるのは必須である。

コピー、ペースト

コマンド 説明
yy カーソルのある行をコピーする。viではコピーのことを「ヤンク(yank)」という。
y$ カーソル位置から行末までをコピーする
p 貼り付けを行う。行単位の貼り付けの場合は、カーソル行の下に貼り付けを行う。「put」の略称。
  • コマンドモードで入力すること。
  • コマンドモードへは「ESC(エスケープ)」キーを押す。

カット

コマンド 説明
x カーソル位置の文字を1文字削除する
dd カーソルのある行を削除する
行数dd 指定した行数を削除する。「5dd」なら5行を削除する。カーソルのある位置から下に向かっての行数となる。
d0 カーソル位置から行頭までを削除する
d$ カーソル位置から行末までを削除する
  • コマンドモードで入力すること。
  • コマンドモードへは「ESC(エスケープ)」キーを押す。

 カットは普通に「x」「dd」などで削除するだけで良い。削除した段階で自動的にWindowsやMacで言うところのクリップボードに保持される。後はそれを貼り付ける(ペーストする)コマンドを実行するだけだ。コピーは、コピーを行うためのコマンドが用意されている。また当然ながら貼り付けは何度でも行うことが出来る。「x」で消した1文字を、貼り付けるコマンドを3回実行すれば3文字がペーストされることになる。