我抵制 Vim,但现在已经屈服了。它像热刀一样处理大文件。
情况:我有一个大文本文件,我想在每行的开头和结尾放置一个竖线字符。
问题:这些 Vim 和其他变体不起作用:
:%s/$/|\$|
:%s/\r/|\r|
:%s/$/|\r|
我怀疑解决这个问题很简单,但是搜索 Google 和 Stack 并没有帮助。
我抵制 Vim,但现在已经屈服了。它像热刀一样处理大文件。
情况:我有一个大文本文件,我想在每行的开头和结尾放置一个竖线字符。
问题:这些 Vim 和其他变体不起作用:
:%s/$/|\$|
:%s/\r/|\r|
:%s/$/|\r|
我怀疑解决这个问题很简单,但是搜索 Google 和 Stack 并没有帮助。
你几乎拥有它:
:%s/^\|$/|/g
^\|$
表示行的开头或结尾。在 Vim 正则表达式中,|
“或”管道被转义。紧随其后的是/|/g
--replace with global|
。
就个人而言,我更喜欢“用管道字符环绕每一行”的表现力:
:%s/.*/|&|
在我看来,这比“在一行的开头或结尾替换一个不存在的虚构角色”更直观。
它还取决于更少的魔法字符 ( ^
, $
, 引用\|
的,它们都难以输入并且容易出错。(我的意思是,你记得引用正则表达式吗?你知道和|
之间的区别吗?你知道一些,如果不是全部的话,其中取决于vim的“神奇配置”?))。$
\_$
以上都没有受到这些影响。