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

met*_*ous 3 vim function

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

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

function! MyFunc() range
  a:firstline,a:lastline s/some pattern/something else/
endfunction
Run Code Online (Sandbox Code Playgroud)

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

谁能帮我这个?我还没有找到如何在函数调用中进行搜索和替换的任何示例.

谢谢

Ami*_*mit 9

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

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