← Vim道場
コピー先を使い分ける
コピーしたあとに別の行を消すと、コピーした内容が上書きされてしまう。Vimを使い始めて最初に困るのがこれです。原因は削除もコピーも同じ置き場を使っているからで、置き場を指定すれば解決します。
第4章 範囲を扱うレッスン 14 / 24
置き場が1つではない
これまで yy や dd で取った内容は、名前のない置き場(無名レジスタ)に入っていました。レジスタはそれだけではなく、a から z の26個と、いくつかの特別なものがあります。
使いたいレジスタは操作の前に " と名前で指定します。"ayy なら a にコピー、"ap なら a から貼り付けです。指定しなければ今までどおり無名レジスタが使われます。
"0 と "_ を覚えておけば足りる
26個を使い分けるのは慣れが要りますが、実際に困るのは「コピーしたのに、そのあと何か消したせいで貼れなくなった」場面がほとんどです。これは "0p で解決します。0 にはヤンクした内容だけが入り、削除では書き換わらないためです。
先回りするなら、消すときに "_dd と書けばコピーは無事のままです。まずこの2つを覚えて、名前付きレジスタは必要になってから足すのがおすすめです。
中身を確認する
どのレジスタに何が入っているかは :registers(略して :reg)で一覧できます。貼り付ける前に確認したいときに使います(この練習ページでは扱っていません)。
挿入モード中に Ctrl-r に続けてレジスタ名を打つと、入力しながら貼り付けられます。コマンドラインでも同じように使えます。
このレッスンで扱うキー
| キー | 動き |
|---|---|
| "ayy | レジスタ a にコピー |
| "ap | レジスタ a から貼り付け |
| "0p | 最後にヤンクした内容を貼り付け |
| "_dd | 残さずに削除 |