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文字がペーストされることになる。