道歉,如果這已經發布,因爲我找不到答案,即使在vim wiki上也是如此。vim:運行基於一個命令的多個命令:全局命令
有沒有一種方法可以在vim命令行模式下運行多個命令關閉一個:g
搜索?
例如,
:%g/foo/ s/bar/\[email protected]/g | exe "norm /cat\<enter>\"ayiw"
哪個(什麼,我想讓它做)應該在每一行匹配foo
,更換bar
與寄存器a
的內容,然後找到的下一個迭代cat
(即使前面有很多行),並將周圍的單詞放入寄存器a
。
而是,此特定語法使用初始a
寄存器的當前內容完成替換命令,然後在一行(在替換完成後)上執行正常模式命令。
此示例不是我特定的用例,但顯示了此功能有用的一個實例。我意識到我可以把它全部放入一個exe
,即%g/foo/exe "norm :s/bar/\\[email protected]/g\<enter>/cat\<enter>\"ayiw"
,但我想這樣做的第一種方式,因爲我覺得它更靈活。
我寧願做這個用香草vim的,但如果一個插件存在這一點,這是一個不錯的選擇。有人知道是否有語法來做這樣的事情嗎?
有趣。通常,每個匹配行上應該執行一次'規範...',但它看起來好像只能執行一次。 '/.../'搜索似乎會導致這種情況。 –