← Vim研究所

Vimのコピー(ヤンク)操作いろいろ 文字/行/矩形範囲

2019-08-22 公開 ・ 更新: 2026-08-05

コピーのたびにビジュアルモードで範囲を選択していましたが、単純な「N文字」や「N行」のコピーなら、選択操作を挟まずに一発で済ませられることに気づいていませんでした。

目次(7項目)
キーこれだけ覚える
yl / {数字}ylカーソル位置から数文字だけコピー
yy / Yカーソル行をコピー
{数字}yyカーソル行から数行分をコピー
Ctrl-v矩形(列単位)で範囲選択してコピー

文字単位のコピー

yl    " カーソル位置の1文字をコピー
5yl   " カーソル位置から5文字をコピー

ylは「ヤンク」+「右へ1文字移動」のオペレータ+モーションなので、数字を前置きすれば範囲を広げられます。1〜数文字だけをサッとコピーしたいときに、ビジュアルモードより速いです。

行単位のコピー

yy    " カーソル行をコピー
Y     " yyと同じ
3yy   " カーソル行から3行分をコピー

Yyyの別名で、どちらを使っても同じ結果になります。複数行コピーしたいときは、行数を数えて{数字}yyとするか、範囲を目で見ながら選びたいならビジュアルモードのほうが安心感があります。数字前置きはコピーしてすぐ同じ内容を複製したいときにも便利です。

BEFORE
a
b
c
3yyp
AFTER
a
a
b
c
b
c

3行をコピーしてカーソル行の直後に貼り付けると、同じ3行がその場で複製されます。y系のコマンドはカーソルを動かさないので、コピー直後にそのままpを続けられるのがポイントです。

ビジュアルモードでの選択コピー

v{範囲選択}y    " 文字単位で選択してコピー
V{範囲選択}y    " 行単位で選択してコピー
Ctrl-v{範囲選択}y   " 矩形(ブロック)選択してコピー

矩形選択は、複数行の同じ列位置だけをまとめてコピーしたいときに使います。整形されたテーブルの1列だけを抜き出したい、といった場面で特に威力を発揮します。

コピーとカーソル位置の関係

y系のコマンドを実行しても、基本的にカーソルは移動しません(yyylではコピー範囲の開始位置にとどまります)。これは削除のdと違い、コピーはテキストを変更しない操作だからです。範囲の終点にカーソルを残したい特殊なケースを除けば、この「その場にとどまる」性質のおかげでコピー後すぐに貼り付け先へ移動する、という流れがスムーズに組み立てられます。

使い分けの目安

状況おすすめ
数文字だけサッとコピーyl・数字前置き
行数が分かっている複数行{数字}yy
範囲を目で確認したいビジュアルモード
列単位でコピーしたい矩形選択(Ctrl-v
要点:行数や文字数が分かっているなら数字前置きのコマンドが最速です。範囲を目で確認したい、または列単位で抜き出したいときはビジュアルモード(矩形選択含む)を使うと便利です。
使ってみて

整形されたログファイルから特定の列だけを抜き出したいとき、矩形選択(Ctrl-v)を知らずに1行ずつ手作業で切り出していた時期がありました。矩形選択を覚えてからは、その作業が一瞬で終わるようになり、なぜもっと早く知らなかったのかと思いました。表形式のテキストを扱う機会が多い人ほど、この操作を知っているかどうかで作業時間に差がつくと、身をもって実感した出来事でしたので、今は新しい操作を覚えるたびに、実際の作業の中で意識的に試すようにしています。

貼り付け先とセットで考える

コピーの方法を選ぶときは、貼り付け先での扱われ方もあわせて考えると安心です。行単位でコピーした内容は貼り付けると独立した行になり、文字単位でコピーした内容はカーソル位置にそのまま挿入されます。どちらが欲しい結果かを先にイメージしておくと、コピーの単位選びで迷わなくなります。

まとめ

コピー操作は数字前置きの一発コマンドとビジュアルモードを使い分けると効率が上がります。特に矩形選択は知らないと発想すら出てこない操作なので、覚えておく価値が高いです。

← Vim研究所 トップへ戻る