在vim中自动化替换表达式

时间:2016-10-06 09:49:43

标签: vim command substitution

在vim中自动执行替换命令的好方法是什么?

假设我有类似的东西:

s/foo/bar/g

除了更复杂,我想在没有选定范围的情况下运行它 必须输入替代命令?

如何保存替换命令并为其提供简短的方便名称,我可以通过它来调用它?

2 个答案:

答案 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替换