你如何在vim函数内进行搜索和替换?

时间:2013-07-04 01:22:19

标签: function vim

我正在尝试编写一个在一个范围内运行搜索和替换的函数。

我知道可以做:2,5 s/some pattern/something else/这样做作为vim命令,但我无法弄清楚它在函数定义中是如何工作的。最初,我试过

function! MyFunc() range
  a:firstline,a:lastline s/some pattern/something else/
endfunction

但是当我尝试加载该函数时,我收到错误Missing :endfunction。我也尝试过调用,正如我在其他教程和示例中所注意到的那样,有时调用会在这种情况下使用。我尝试了call a:firstline,a:lastline s/some pattern/something else/a:firstline,a:lastline call s/some pattern/something else/。有了这个,加载了功能。但是当我尝试通过执行:2,4 call MyFunc()调用该函数时,我得到一个指向搜索/替换行的Missing parenthesis错误。

任何人都可以帮我吗?我还没有找到如何在函数调用中进行搜索和替换的任何示例。

由于

1 个答案:

答案 0 :(得分:9)

您收到错误Missing :endfunction,因为函数定义不完整。尝试下面给出的,应该工作

function! MyFunc() range
  execute a:firstline . "," . a:lastline . 's/some pattern/something else/'
endfunction