vim 在字符串周围查找并替换

vim 在字符串周围查找并替换

在 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

(用 \ 标记所有命令字符串)

相关内容