4

我抵制 Vim,但现在已经屈服了。它像热刀一样处理大文件。

情况:我有一个大文本文件,我想在每行的开头和结尾放置一个竖线字符。

问题:这些 Vim 和其他变体不起作用:

:%s/$/|\$|
:%s/\r/|\r|
:%s/$/|\r|

我怀疑解决这个问题很简单,但是搜索 Google 和 Stack 并没有帮助。

4

2 回答 2

6

你几乎拥有它:

:%s/^\|$/|/g

^\|$表示行的开头或结尾。在 Vim 正则表达式中,|“或”管道被转义。紧随其后的是/|/g--replace with global|

于 2012-05-06T12:02:51.113 回答
5

就个人而言,我更喜欢“用管道字符环绕每一行”的表现力:

:%s/.*/|&|

在我看来,这比“在一行的开头或结尾替换一个不存在的虚构角色”更直观。

它还取决于更少的魔法字符 ( ^, $, 引用\|的,它们都难以输入并且容易出错。(我的意思是,你记得引用正则表达式吗?你知道和|之间的区别吗?你知道一些,如果不是全部的话,其中取决于vim的“神奇配置”?))。$\_$

以上都没有受到这些影响。

于 2012-05-06T19:58:19.577 回答