2
我正试图编写一个运行搜索和替换范围的函数。如何在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
错误。
任何人都可以帮助我吗?我还没有找到任何如何在函数调用中执行搜索和替换的示例。
感谢
缺少':endfunction'是因为记录函数体假人解析器认为'一:firstline'开始':它什么都吃,直到有一个点线append'命令。如果你在它后面添加这样的行和另一个'endfunction',你会得到一个预期的错误,因为':append'命令不能跟着':firstline'。 – ZyX
啊......执行......很好。对于它的价值,我终于找到了一个很好的教程 - http://learnvimscriptthehardway.stevelosh.com/chapters/28.html。谢谢你打破了我! – metasoarous
另外值得注意的是,使用单引号是最好的...虽然...我不完全确定这是为什么。当我使用双引号时,'\ n'被解释为null,这是记录的vim行为,但是当单引号时,被解释为换行符。 – toszter