なぜpは現在の単語の後ではなく、現在の行の後にコピーされた行を貼り付けたのですか?


12

次の4行があるとします。

line1
line2
line3
line4

私はに行けば今line1とやるyyどのコピーラインをしてからの起動に行くline3と「p」を使用してペーストを行う、私はなるだろう

...
line3
line1
line4
....

なぜ新しい行に貼り付けline1たのline3ですか?

私の初期は、改行文字$がline3に付加されていて、pvim を押したときにvim line3$が1つの単語と見なされたため、後に貼り付けられたためline3$です。しかし、私の理解は間違っていたようです。私がこれline3 $pしてから行の先頭でをやると同じ結果が得られるからです。

なぜp新しい行を作成してから新しい行に貼り付けるのline3ですか?

回答:


20

を使用して行を削除したときに、行ごとの削除ddを実行しました。

pコマンドは、カーソル位置の後に貼り付けます。デフォルトのレジスタには行ごとのコンテンツが入力されているため、カーソルがある行の後に貼り付けられます。

代わりに行の内容を文字単位で削除した場合(例:)、0Dレジスタは文字単位であったため、カーソルがあった文字の後に貼り付けられました。

一般に、動作は削除/ヤンクアンドペーストから予想されるものに従う必要があります。ただし、getreg() / setreg()-wiseを使用してレジスタの状態を変更することは可能です。

ただし、それには注意してください。最初の例を考えると、単にレジスタを文字単位に変更しても、削除の一部であった改行は削除されません。貼り付けの方法が変わるだけです。


行全体を削除し、文字ごとに貼り付ける特定のシナリオに関する推奨事項については、この投稿を参照してください。

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