在vim中自动执行替换命令的好方法是什么?
假设我有类似的东西:
s/foo/bar/g
除了更复杂,我想在没有选定范围的情况下运行它 必须输入替代命令?
如何保存替换命令并为其提供简短的方便名称,我可以通过它来调用它?
答案 0 :(得分:1)
您可以创建一个支持范围的函数,并在函数中执行替换。还可以创建一个自定义命令来调用带范围的函数。
然而,我认为最简单的方法是在vimrc文件中创建abbrev
:
cab RR s/foo/bar/g
因此,当您选择行或在命令行中给出范围(如3,5 or % ...
)时,按RR<space>
将自动填充s/foo/bar/g
。您可以进行一些调整,或者只需按Enter键就可以了。
答案 1 :(得分:1)
您可以尝试在下面按某个单词上的空格键两次映射,然后使用光标下的单词自动填充替换命令并等待您输入替换名称
" super quick search and replace
nnoremap <Space><Space> :'{,'}s/\<<C-r>=expand('<cword>')<CR>\>/
nnoremap <Space>% :%s/\<<C-r>=expand('<cword>')<CR>\>/
在您的情况下,只需将光标放在foo字上,然后按空格键两次。 你应该看到
:'{,'}s/\<foo\>/
然后输入单词bar
'{,'}s/\<foo\>/bar
所有出现的foo都会被bar替换