複数の行をレジスタにヤンクするにはどうすればよいですか?


44

異なるテキストテンプレートをドキュメントに簡単に貼り付けるために、vimの1つのレジスタで複数の行をヤンクしたいです。

たとえば、「iyyは現在の行のみをヤンクします。ビジュアルモードで複数の行を選択しようとすると、レジスタに書き込まれません。

助言がありますか?


「ビジュアルモードで複数の行を選択しようとしても、レジスタに書き込まれません。」<-本当に?私の作品...
ビリーONeal

そして私にとっても…
ulidtko

ああ、私は「iyv、ばかげた私。Vjjjでなければならない」で試しました。
ryz

回答:


59

3Yデフォルトのレジスタに3行をヤンクするために使用します。"i3Yレジスタiにヤンクするため。

また、私のお気に入りの方法は、私はヤンクしたい行をカウントするが、ビジュアルモードでそれらを選択するのを経由していないVコマンドや移動した後、ヒットyまたはそれをヤンクして"_yレジスタにヤンクします。

また、Visual Lineモードで複数の行を選択し、デフォルト以外のレジスタにヤンクしてみましたVjjj"oy。たとえば、動作します。


1
+1- Vビジュアルラインモードですvが、ビジュアルモードです。
ビリーONeal

わかった、わかった。ビジュアルラインモード。%)
-ulidtko

1
喜んで受け入れてくれた、私にとっては最速の方法。
ryz

24

ファイル内のどこからでも、以下を使用できます。

:2,5y a

Yank lines 2-5. 登録するa

:7pu a

7行目の下に登録を貼り付けます。


1
「複数の行をレジスタにヤンクするにはどうすればよいですか?」という質問がありました。これらのコマンドがレジスタでどのように機能するかを示してください。
スコット

私の編集があなたの要求を満たすことを願っています。
-alock27

申し訳ありません。質問では、明示的に「登録」を繰り返し言及し、「異なるテキストテンプレートを簡単に貼り付ける」と言及し、デフォルト以外のレジスタを使用した例を示しました。
スコット

3
@Scottおaび申し上げます。「おい、メソッドを:regでチェックしてください。動作しないことがわかります」と言わなかったのはなぜですか。そして、私はすべて、「わあ、私の悪い」のようになっていたでしょう。
alock27

1
システムクリップボードにコピーするために、whoファイルをレジスタ+にヤンクする方法を探していました。:%y +がうまくいきました、ありがとう。
AlexMA 14

10

を使用mして、バッファ名で開始をマークします(したがって、を入力する場合がありますmx)。コピーを停止する場所までカーソルを下に移動し、入力しますy'x(またはd'xカットアンドペーストする場合)。次に、貼り付けたい場所にを移動し、を入力しpます。

Vimコマンドのチートシート


あなたはそうではないことを意味しvないのmですか?
ビリーONeal

@BillyONeal 'v'はビジュアルモードを起動し、同じことを実行できるようにします。'm 'は領域を「マーク」するために使用されます。
ニフレ

6

コマンドの前に番号を付けて、操作する行数を取得します。また、「テキストオブジェクト」(ブロックには「]」、段落には「)」などを使用できます)-これはコンテキストに応じて複数の行で動作します-デフォルトは多くの場合1行です。たとえば"r5yy、カーソルで始まる5行を「r」レジスタにヤンクします。(または:.,+4y r、exモードで同じように入力することもできます。)数値をテキストオブジェクトと組み合わせることもできます。"r10y)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.