2011-02-16 68 views
3

我必須替換某些(只有一部分在幾十個)C函數內的特定宏的所有出現。由於該文件長達數千行,並且在所有函數中都有幾個宏實例,所以我想要替換光標當前放置的特定函數內的所有事件。 我知道VIM提供了導航命令(比如[[去到當前函數的開頭,然後%找到它的匹配的大括號],但我不知道如何使用它們來提出所需的搜索 - 替換命令。 任何人都可以幫忙嗎?VIM:替換當前C/C++函數中所有字的出現

回答

12

將光標放在第一個大括號上。然後鍵入v%,您將看到突出顯示的功能體。然後輸入替換命令:s/find/replace/g並按回車。這將在所選功能內進行替換。

注意:您將看到命令提示符更改爲::'<,'>:s/find/replace/g

+0

只是我正在尋找的答案! – TCSGrad 2011-02-16 08:50:55

2

儘管我也會推薦dogbane的解決方案,但我還是想提一下NrrwRgn插件。這對於處理緩衝區的連續子集非常有用。