5

この質問はおそらく以前に回答されていましたが、検索してみましたが、どこにも答えが見つかりませんでした。

私は Vim に少し慣れていませんが、次の問題が発生しています。行をヤンクして貼り付けると、再度貼り付けることはできません。たとえば、Word 環境で、テキストをコピーして貼り付けると、さらに貼り付けることができます。しかし、Vim では、いったん貼り付けてからもう一度貼り付けようとすると (p)、ヤンクした行を貼り付けたテキストが貼り付けられます。

たとえば、「This line is yanked」という行を「I don't want this line」にヤンクしたため、「This line is yanked」が「I don't want this line」の上に配置されます。さらに p をもう一度クリックすると、「この行はヤンクされています」が貼り付けられませんが、「この行は必要ありません」と表示されます。

ヤンクした同じ行を、戻って再度ヤンクせずに貼り付ける方法はありますか?

4

2 に答える 2

13

これは、vim のレジスタが原因です。ヤンクされた行を別の行に貼り付けると、(貼り付けて) 削除したばかりの行が、デフォルト レジスタ (ヤンクされた行を格納するレジスタ) のヤンクされた行の場所を占めます。これは、回線の切り替えを容易にするためです。1 つをヤンクして、もう 1 つに貼り付け、戻ってもう一度貼り付けます。ただし、ヤンクされた行を保持するには、 register を指定することができyます。これで貼り付けに使用できます。これにより、上書きされないregister の内容が貼り付けられます。"aya"apa

vimで有効になっている場合(ほとんどのシステムで有効になっている場合) 、ボーナス"+yまたはシステムクリップボードからの貼り付け(他のアプリケーションのコピー貼り付け)として。"*y"+p"*p

編集: コメントで述べたように、ヤンク コマンドを使用すると、ヤンクされたテキストはデフォルト レジスタだけでなく、0 レジスタにも移動します (他の何かに貼り付けても上書きされません)。これは、通常は を使用してヤンクしyてから貼り付けることができ、貼り付け"0pたものによって上書きされないことを意味します。

于 2014-08-12T14:39:28.560 に答える
8

私の .vimrc から:

"Paste in visual mode without copying
xnoremap p pgvy

説明:

xnoremap - ビジュアル モードでのみ再マップする

p - 貼り付け

gv - 最後の選択を再選択します (現在の選択ではなく、元の選択)

y - コピー (最後の選択)

このマッピング内で、視覚的に選択した行を何度も貼り付けることができます。

于 2014-08-13T09:08:50.053 に答える