vim 中的回车符与换行符

vim 中的回车符与换行符

在vim中,当我打开一个文件时,我想在每个当前行的末尾添加两个空行。我使用了以下开关:

%s/$/\n\n/

显然,这不起作用,但有效的是:

%s/$/\r\r/

我以为 \r 是 Windows 功能?有没有人可以多解释一下。

答案1

关于模式的 Vim 文档:

\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插入第二个反向引用,依此类推。

参考

相关内容