例えば
行4を行12のみにヤンクして貼り付けるにはどうすればよいですかカーソルを移動する必要はありません行4に?
カーソルがすでに12行目にある場合、単純な
:4年 P
私のためにそれをします。
これはどうですか:カーソルは11行目にあり、「vi」モードになっています。
:4co.<return>
あなたは明らかにパターンでそれを行うこともできます:
:/^Yank/co.<return>
「co」(コピー)の代わりに「mo」(移動)を使用して、ヤンクして置く代わりに、単に行を移動することができます。
これを試して:
:4,4y
P
試してください:
:4co11
0
の引数を使用して、1
に貼り付けることができます。これは範囲でも機能します。
:m,n co k
行m
からn
を行k+1
にコピーします。さらに、バッファのどこにいるかは関係ありません。 move
コマンド、m
も同様に機能します。
これはそれを行うはずです:
:4,12y
p
k
最短:
:1t.
は、現在の下に最初の行をコピーします。
範囲あり::1,4t.
は、現在の下の1行目から4行目までを含みます。
相対行番号でも可能です:
:-1t.
は前の行を現在の下にコピーします。
あなたの例では、:4t-1
は4行目を必要な行の下にコピーします。
注::t
は:co[py]
コマンドの同義語です。
他の人はすでにこれを行う最も直接的な方法である:4y
について言及していますが、それについて役立つ2つのメモを追加したいと思います。
1つは、:help range
と入力すると、範囲を使用してExスタイルのコマンドに適用する方法についてすべて学習できます。多くの場合非常に便利で、行番号を使用するよりもはるかに用途が広いです。たとえば、ドキュメントの先頭の後に「yank」で始まる最初の行をヤンクする場合(たとえ最初の行にある場合でも)、:0/^yank/y
を使用します。範囲の最も強力な部分は、それらを組み合わせる機能です。たとえば、:./^Chapter/+50?Pete?d
は、「次の行を検索してWordの章から開始し(現在の行から順方向に検索)、50行前にジャンプして、逆方向に検索します単語ピートの場合は、最初に見つかった行を削除してください。」実際にカーソルを動かさないことを除いて、あなたが言うことを実行するだけです。
(このタイプの範囲指定を使用して、カーソルの下で関数名を検索し、次に「説明」と言った次の行を前方検索して特定のレジスターにヤンクするなど、ドキュメント作成を自動化しました。)
もう1つのヒントは、ジャンプについて知っておくべきことです。 :help jump-motions
と入力して完全に学習しますが、ここでは4行目にジャンプしてヤンクしてから4Gyy''
でRETURNすることができます(またはアポストロフィの代わりにバックティックを使用して、開始したのと同じLINEではなく、正確な開始位置。)
Erwin Rooijakkers's answer に基づいて構築すると、カーソルの位置に関係なく、4行目が11行目の下にコピーされます。
:4t11