我要在一些(只有几十个)C函数中替换所有出现的特定宏。由于文件长达数千行,在所有函数中有几个宏实例,我想替换当前放置光标的特定函数中的所有实例。 我知道VIM提供导航命令(比如[[转到当前函数的开头,然后%找到匹配的右括号),但我无法弄清楚如何使用它们来提出所需的搜索 - 替换命令。 有人可以帮忙吗?
答案 0 :(得分:12)
将光标放在第一个开口支架上。然后键入v%
,您将看到函数体突出显示。然后键入替换命令:s/find/replace/g
并按Enter键。这将取代所选的功能。
注意:您将看到命令提示符更改为::'<,'>:s/find/replace/g
。
答案 1 :(得分:2)
虽然我也会推荐dogbane的解决方案,但我想我也会提到NrrwRgn插件。它对于处理缓冲区的连续子集非常有用。