所以我发现做了
:%s//my new string/g
我可以替换当前所有文本的所有出现
Hello, world! la la la Hello.
所以,如果我踩到Hello,按*,然后执行:%s //再见/ g我可以将所有Hello更改为Bye's。
我只是想做一个小的重映射来为我做这个,我是vim的新手,所以这对我来说太难了,我真的不知道如何获取重新映射的用户输入。
reddit用户建议我
nnoremap <c-n> :%s///g<left><left>
所以我可以用来触发替换,但是它不起作用,我猜是因为它没有在任何地方指定输入?我想做
<c-n> SOME NEW TEXT <enter>
并用一些新文本替换所有Hellos
这可能吗?
答案 0 :(得分:3)
您需要编写一个小函数来接受用户输入。 e.g:
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>