我正在尝试编写一个在范围内运行搜索和替换的函数。
我知道可以做:2,5 s/some pattern/something else/
将此作为 vim 命令执行,但我无法弄清楚这将如何在函数定义中工作。最初,我尝试
function! MyFunc() range
a:firstline,a:lastline s/some pattern/something else/
endfunction
但是当我尝试加载该函数时,出现错误
Missing :endfunction
.我也尝试过使用 call,正如我在其他教程和示例中注意到的那样,有时在这种情况下会使用 call。我都试过了 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
指向搜索/替换行的错误。谁能帮我这个?我还没有找到任何关于如何在函数调用中进行搜索和替换的示例。
谢谢
最佳答案
您收到错误 Missing :endfunction
因为函数定义不完整。尝试下面给出的一个,应该可以工作
function! MyFunc() range
execute a:firstline . "," . a:lastline . 's/some pattern/something else/'
endfunction
关于function - 你如何在 vim 函数中进行搜索和替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460543/