在 VIM 中,例如,如果我有文本
http://a.com
http://b.com
是否可以找到所有行(整行)并将其替换为之前和之后的内容,例如:
<a href="http://a.com">http://a.com</a>
<a href="http://b.com">http://b.com</a>
请注意,每一行的文本都是重复的。一次用于 href,另一次用于文本。
答案1
:%s:.*:<a href="&">&</a>:
与 ed/sed/perl 相同...
另一种不太像ex
但更像vim
的方法是:如果您知道如何对一行执行一次,请将其记录为宏,然后运行该宏在:%normal @m
哪里。m
类似(普通模式):qmS<a href="<Ctrl-R>""><Ctrl-R>"</a><Esc>q
录制宏。
答案2
你为什么使用管道?
:%s/.*/\<a href=\"&\"\>&\<\/a\>/g
(用 \ 标记所有命令字符串)