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