在vim中,当我打开一个文件时,我想在每个当前行的末尾添加两个空行。我使用了以下开关:
%s/$/\n\n/
显然,这不起作用,但有效的是:
%s/$/\r\r/
我以为 \r 是 Windows 功能?有没有人可以多解释一下。
答案1
\r 匹配 <CR>
\n 匹配行尾 - 当在字符串而不是缓冲区文本中匹配时,会匹配文字换行符。
来源:https://stackoverflow.com/questions/71417/why-is-ra-newline-for-vim
答案2
正如 @MartinvonWittich 所说,你想使用\r
.您还可以使用键盘组合:
Ctrl+ v+M通常会在^M
键入时显示。
%s/$/^M^M/
以下是vim
有关搜索和替换的一些额外有用的信息:
搜索时:
.
,*
, \,[
,]
,^
, 和$
是元字符。+
、?
、 |、{
、}
、 、(
和)
必须转义才能使用其特殊功能。\/
is/
(使用反斜杠+正斜杠搜索正斜杠)\t
是制表符,\s
是空格\n
是换行符,\r
是 CR(回车 = Ctrl-M = ^M)\{#\}
用于重复。/foo.\{2\}
将匹配 foo 和后面的两个字符。\
结束时不需要 } 所以会/foo.\{2}
做同样的事情。\(foo\)
对 foo 进行反向引用。不带转义符的括号按字面意思匹配。这里\
需要关闭\
)。
更换时:
\r
是换行符,\n
是空字节(0x00)。\&
是 & 符号(& 是与搜索模式匹配的文本)。\1
插入第一个反向引用的文本。\2
插入第二个反向引用,依此类推。