1.03.5標準
viのノーマルモードで、現在行をその直下へ複製する。
内容を編集せず、ヤンクと貼り付けを使用する。
適切なキー操作はどれか。
× 不正解
yyは現在行をヤンクし、pは行単位の内容を現在行の下へ貼り付ける。
詳細解説
正しい
yypyyで現在行をヤンクし、pで直下へ貼り付ける。
正しい。yyが現在行を行単位で取得し、続くpがその内容を現在行の下へ挿入する。
誤り
ddp行を削除して貼り直すため、元位置と直下の2行にはならない。
誤り。ddで元行が消えるため、pで戻しても同じ内容が2行並ぶ複製にはならない。
誤り
yyddヤンク後に現在行を削除し、複製行を作らない。
誤り。最後のddが元行を削除し、さらに無名レジスタの内容も削除行で上書きする。
誤り
pp既存レジスタを2回貼るだけで、現在行を取得していない。
誤り。現在行をyyで取得していないため、以前の操作で入った不明な内容を貼り付ける。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp); printf 'alpha\nbeta\n' >"$tmp"; vim -Nu NONE -n -es "$tmp" +'normal ggyyp' +wq; cat "$tmp"; rm -f "$tmp"期待される結果
alpha
alpha
beta理解のポイント
- yyは行をヤンク
- pは後方へ貼り付け
- 元行は残る
確認時の注意
- 確認環境: Vim 9.x互換のvi操作 / 一時ファイル
基礎のおさらい
ヤンク
yは本文を変更せず範囲をレジスタへコピーする操作で、yyは現在行を対象とする。
行単位のp
行単位でヤンクした内容へpを使うと、現在行の下に新しい行として貼り付けられる。
問題IDKL-101-500
確認環境Vim 9.x互換のvi操作 / 一時ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告