1

だから私はそれをしていることを知りました

:%s//my new string/g

現在検索されているテキストのすべての出現箇所を置き換えることができます

Hello, world! la la la Hello.

したがって、Helloを踏んで、*を押してから、:%s // Bye / gを実行すると、すべてのHelloをByeに変更できます。

私はそれを行うために小さなリマップを作成したいだけです。私はvimを初めて使用するので、これは私にとって非常に困難です。リマップのユーザー入力を取得する方法がわかりません。

redditユーザーが私に提案しました

nnoremap <c-n> :%s///g<left><left>

したがって、置換をトリガーするために使用できますが、入力がどこにも指定されていないため、機能しません。やりたい

<c-n> SOME NEW TEXT <enter>

すべてのHelloをいくつかの新しいテキストに置き換えます

これは可能ですか?

4

1 に答える 1

4

ユーザー入力を受け入れるための小さな関数を作成する必要があります。例えば:

function! ReplaceIt()
    call inputsave()
    let replacement = input('Enter replacement:')
    call inputrestore()
    execute '%s//'.replacement.'/g'
endfunction

あなたはそれをあなたのvimrcに入れることができます。または別のファイルをvimで入手します。

/次に、最初に(または*#...で)検索してから、次のように入力します。

:call ReplaceIt()

入力プロンプトが表示され、必要な置換を指定して、を押しEnterます。

この関数呼び出しのマッピングを作成できます。次に例を示します。

nnoremap <leader>r :call ReplaceIt()<cr>
于 2013-03-07T14:44:33.073 に答える