2

我在这方面遗漏了一些微妙而愚蠢的东西。我有一个简短的 vim 脚本。在其中,我正在尝试做:

s/.*_____.*/\=repeat('=', 78)/

(这是确切的代码。)

当我/\v.*____.*在正常模式下进行时,我可以成功找到模式(不止一次)。当我在正常模式下进行替换时,它成功了。

我敢肯定,就在某处逃脱角色而言,我错过了一些东西。请赐教!

4

1 回答 1

1

一条s/命令只覆盖当前行;这不是您通常想要的。

最简单的方法是使用%s/...处理整个缓冲区。但是,您的映射/命令可能希望支持任意范围。为此,:call通常会为每一行调用一次您的用户定义函数,除非您定义它处理范围本身的函数。详情请参阅:help function-range-example

于 2012-09-19T19:37:30.233 回答