1

私がこのテキストを持っているとしましょう:

something "something else"
something here "just another quoted block"

「他の何か」を「引用された別のブロック」に置き換えたいので、次のようにします。

/quot<enter>   (to jump to second quoted block searching for the string "quot")
yi"            (to yank inner text for current quoted block)
?else<enter>   (to jump back to the first quoted block wich contains "else")
vi"            (to visually select the quoted block)
p              (to paste yanked text)

これは機能しますが、ビジュアル モードを回避するために、最後の 2 つの手順を 1 つの手順に置き換えることができるかどうかを知りたいです。キーストロークに関してはそれほど大きな利点ではないことはわかっていますが、Vim の哲学は私がやろうとしていることを後押ししてくれると思います。これを行うたびに、私の心はこのコマンドを求め続けます。:-P

私がこれまでに試したこと:

r (置換) は 1 文字だけ置換します c (変更) は挿入モードになり、テキストを貼り付けることができません。

4

4 に答える 4

3
"_di"P

ブラックホール レジスタへの引用符内を削除します。カーソルの前に最後にヤンクされたものを貼り付けます。

または

ci"<Ctrl-R>0<ESC>

引用符の内側を変更して、最後のヤンクを取得します。挿入モードを終了します。

于 2012-08-17T19:43:14.203 に答える
2

キーストロークに関しては、実際j$yi"kvi"pはおそらく最速です。ただし、絶対に挿入モードに入る必要がある場合はj$yi"k"_ci"<C-r>"またはci"<C-r>0. 演算子を使用すると、レジスタの:help i_CTRL-R内容を挿入モードにすることができます。

于 2012-08-17T20:11:51.780 に答える
2

私のReplaceWithRegister プラグインでは、最後の 2 つの手順は次のようになりますgri"grrまた、 (現在の/ [カウント]行を置き換える)も提供します。タイピングを少し節約するだけですが、これは不可欠だと思います。

于 2012-08-17T19:47:55.913 に答える
0

私は通常、毎日のコマンドでより直感的だと感じるものを使用して、シンプルに保つようにしています。

j
yi"
k
ci"
<ESC>
p
于 2012-09-03T10:37:21.683 に答える