我一直在学习如何在VIM中做更复杂的search和replace函数,并且碰到了这样一个用例:
:%s/$/|/g
这应该是find每一行的结尾,并用一个垂直的pipe道取代它。 当我第一次学习这个时,我认为你必须在replacestring中添加行尾字符来获得预期的结果。 即
:%s/$/|$/g
为什么没有它,仍然保持行rest? 难道不应该用你的stringreplace这个行的终止字符,并在这个过程中删除它吗?
同样的事情可以用行首字符^
来问。
Anchor $
不包含换行符。 实际上它是一个零宽度的标记。 它匹配字符串中第一个换行符之前的空字符。 因此,结果。
同样, ^
匹配字符串中第一个字符之前的空字符。
有关更多详细信息,请参阅http://www.regular-expressions.info/anchors.html 。