Mer*_*glu 22 regex vim newline substitution
我在Windows 7上使用GVim.
我想通过使用正则表达式替换来学习如何放置换行符.为此,我尝试使用\ r和\n元字符,但替换文本不显示正常的换行符.
例如,一开始我有:
line 1
line 2
Run Code Online (Sandbox Code Playgroud)
我使用以下替换表达式:
:%s/\n/\n\n/g
Run Code Online (Sandbox Code Playgroud)
然后GVim生成以下文本:
line 1^@^@line 2^@^@
Run Code Online (Sandbox Code Playgroud)
相反,如果我在替换表达式中使用\ r \n
:%s/\n/\r\n/g
Run Code Online (Sandbox Code Playgroud)
然后GVim生成以下文本:
line 1
^@line 2
^@
Run Code Online (Sandbox Code Playgroud)
那些^ @字符是什么?
如何正确使用替换表达式中的换行符?
Dig*_*oss 29
出于某种原因,vim想要\r
在替换文本中看到以插入换行符.(\n
在替换中插入一个nul.)
因此,在通过运行成功找到换行符后/\n
,请尝试:
s//\r/
Run Code Online (Sandbox Code Playgroud)
或者添加额外的换行符:
s/$/\r/
Run Code Online (Sandbox Code Playgroud)
在模式方面,\r
表示实际的(015)CR字符,当您想要用换行符替换返回时,会导致以下奇怪的命令:
s/\r/\r/
Run Code Online (Sandbox Code Playgroud)
不,这不是无操作.
这个
s/\r/\r/
Run Code Online (Sandbox Code Playgroud)
失败。但
s/\n/\r/
Run Code Online (Sandbox Code Playgroud)
工作正常。