()内のテキストを以前にヤンクしたテキストに置き換える方法は?


9

Fnord前にテキストをヤンクしていて、カーソルが行のにあると仮定しますB

M:mock(Baz)

()内のテキストを以前にヤンクしたテキストに変更するにはどうすればよいですか?

現在、私はしばしば次のようにして間違いを犯します:

  • di( 別名「内部の削除()」
  • SHIFT + P

削除されたテキストはレジスタに移動されるため、正確なテキストが再び残ります。

欲しい:

M:mock(Fnord)


1
@Rich提供された質問は、ヤンクした単語を置き換えるより一般的なケースをカバーしています。この質問はもう少し具体的で、同じ答えを引き付けるものではないと思います。
k0pernikus

Protip:0レジスターには、最後にヤンクされたテキストが含まれます。:h quote0
Peter Rincker、2016年

1
言及された質問の受け入れられた回答からの同じ考えがここに適用できます。かっこ内にカーソルを置いて、単にを押しvi)pます。それはちょうどで、その答えと同じであるi)テキストオブジェクトの代わりにw、テキストオブジェクト
EvergreenTree

1
@ k0pernikus私はそれについて同意しないことに同意する必要があると思います。私にとって、両方の質問の重要な部分は置換であり、それを適用するために使用されるテキストオブジェクトではありません。
リッチ

回答:


13

視覚的な選択を使用して、置換するテキストを選択し、次のように貼り付けます。

vi(p

vi((括弧で囲まれているため)Bazを選択し、pその上にFnordを貼り付けます。

ただし、これにより、貼り付け後にBazがレジスターにヤンクされます。


10

レジスタを指定しない限り、p(またはP)は最後に入力されたレジスタを使用します。名前のないレジスターに""は、最後にヤンクまたは削除されたテキストが含まれます(別のレジスターがで指定されていない場合など"ay)が、これらも"0ヤンクまたは"1削除/変更に使用されます。レジスタを参照してください。

最後のテキストが一緒にヤンクされたy場合は、それを0レジスタから貼り付けることができます"0P。削除された場合は2"2P"1is is Baz)のレジスタでアクセスできます。

あるいは、レジスターをいじるのを避け、ブラックホールレジスター"_を削除することもできます:

"_di(P

3

プラグインのインストールがオプションの場合は、yankstack.vimを使用できます。次に、現在のワークフローを保持できます。

現在、私はしばしば次のようにして間違いを犯します:

  • di(別名「内部を削除()」
  • SHIFT + P
  • Alt + p-前のヤンクに循環

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