function - 你如何在 vim 函数中进行搜索和替换?

标签 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,正如我在其他教程和示例中注意到的那样,有时在这种情况下会使用 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/

相关文章:

c++ - 什么是真正的虚函数?

javascript - 有什么方法可以判断 javascript 函数是否已返回?

json - 如何创建一个将 json 字符串转换为 golang 结构的通用函数?

Vim:以插入模式打开空白文件

vim - Vim 启动时打开文件

c++ - 函数对象的好处?

用于在迷宫中绘制连接墙壁的 Javascript 函数?

vim - 在 vim 中嵌入 node.js?

python - 在不保存的情况下在 Vim 中运行 Python 代码

vim - 更改合成器使用的错误突出显示颜色