12

ビジュアルモードで単語を選択したとしましょう。s// を使用して、その単語とファイル内のその単語の他のすべてのインスタンスを置換したいと考えています。強調表示されたテキストs/<here>/stuff/を再入力せずに使用する方法はありますか?

4

4 に答える 4

17

もちろん。単語を選択した場合は、「y」と入力して、次のように入力します。

:%s/<ctrl-r>"/something else/g

CtrlキーとRキーを押しているのはどこですか?「は」の文字です。

すべてのキー押下:

y:%s/<ctrl-r>"/what to put/g<enter>
于 2009-09-25T15:09:32.303 に答える
4

使用する前にテキストを検索した場合

CTRL-R /

検索に最後の検索項目を挿入し、文字列を置き換えます。

このページで他の同様のトリックを確認できます。

http://www.vim.org/htmldoc/insert.html

于 2009-09-25T14:57:30.460 に答える
4

単語をヤンクする必要はありません。単語の上にカーソルを置き、次のようにします。

:%s/<C-r><C-w>/bar/g
于 2009-09-27T23:31:10.737 に答える
0

コマンド ラインからレジスタの内容にアクセスするもう 1 つの方法は、@変数を使用することです。したがって、テキストをデフォルト レジスタにヤンクすると、 という変数に格納されます@"

:exe '%s/' . @" . '/stuff/'

これを簡単に入力できるようにするためのマッピングを次に示します。

vmap <Leader>s y:exe '%s/' . @" . '//g'<Left><Left><Left>

これで、ビジュアル モードで何かを強調表示して、\sと入力し、置換を入力して を押すことができますEnterdepeszのバージョンも適切なマッピングを作成します (ほぼ彼が入力したとおりです)。

vmap <Leader>s y:%s/<c-r>"//g<Left><Left>
于 2009-09-25T20:09:34.847 に答える