我有一种情况,我想FOO
用BAR
整个文件替换。但是,我只想在某些地方执行此操作,例如在第 68–104、500–537 和 1044–1195 行之间。在实践中,我将标记放在感兴趣的行(通过ma
、mb
、mc
等)并运行以下命令:
:'a,'b s/FOO/BAR/g | 'c,'d s/FOO/BAR/g | 'e,'f s/FOO/BAR/g
我不得不用不同的搜索和替换术语等重复数十次,s/CAT/DOG
每次都必须重写命令行变得很痛苦。我很幸运,我只需要将搜索限制在三个地方(想象一下如果有 30 或 40 个命令行会变得多么混乱)。
没有写一个函数,有没有更简洁的方法呢?
在相关说明上。我复制FOO
到s
(搜索)寄存器和BAR
(r
替换)并尝试运行
:'a,'b s/\=@s/\=@r/ | 'c,'d s/\=@s/\=@r/ | 'e,'f s/\=@s/\=@r/
这可以让我不必每次都重写命令行,但是,唉,它没有用。替换位 \=@r
很好,但是 \=@s
搜索模式中的位给了我一个错误。
任何提示将不胜感激。