← Vim道場

コピー先を使い分ける

コピーしたあとに別の行を消すと、コピーした内容が上書きされてしまう。Vimを使い始めて最初に困るのがこれです。原因は削除もコピーも同じ置き場を使っているからで、置き場を指定すれば解決します。

第4章 範囲を扱うレッスン 14 / 24

置き場が1つではない

これまで yydd で取った内容は、名前のない置き場(無名レジスタ)に入っていました。レジスタはそれだけではなく、a から z の26個と、いくつかの特別なものがあります。

使いたいレジスタは操作の前に " と名前で指定します。"ayy なら a にコピー、"ap なら a から貼り付けです。指定しなければ今までどおり無名レジスタが使われます。

"0 と "_ を覚えておけば足りる

26個を使い分けるのは慣れが要りますが、実際に困るのは「コピーしたのに、そのあと何か消したせいで貼れなくなった」場面がほとんどです。これは "0p で解決します。0 にはヤンクした内容だけが入り、削除では書き換わらないためです。

先回りするなら、消すときに "_dd と書けばコピーは無事のままです。まずこの2つを覚えて、名前付きレジスタは必要になってから足すのがおすすめです。

中身を確認する

どのレジスタに何が入っているかは :registers(略して :reg)で一覧できます。貼り付ける前に確認したいときに使います(この練習ページでは扱っていません)。

挿入モード中に Ctrl-r に続けてレジスタ名を打つと、入力しながら貼り付けられます。コマンドラインでも同じように使えます。

このレッスンで扱うキー

キー動き
"ayyレジスタ a にコピー
"apレジスタ a から貼り付け
"0p最後にヤンクした内容を貼り付け
"_dd残さずに削除

関連記事

レッスン一覧へ戻る