Vim 将回车^M替换为回车
我知道如何删除文件中的Vim 将回车^M替换为回车,vim,Vim,我知道如何删除文件中的^M(%s/^M//g),但这只是我想用enter替换^M的一行。。。VIM中的输入字符是什么(在命令行模式下使用)。您可以在正常模式下使用r替换一个字符。 或者,您可以在命令行模式下输入“return”,方法是在vim会话中键入,然后重试: :%s/^M//g 其中,^M是通过同时按下ctrl+V+M键来实现的。要将回车符(即)替换为换行符(即unix换行符),您应该运行一个有点奇怪的命令: %s/\r/\r/g 看起来好像它什么也不做,但在正则表达式和双引号字符串中
^M
(%s/^M//g
),但这只是我想用enter替换^M
的一行。。。VIM中的输入字符是什么(在命令行模式下使用)。您可以在正常模式下使用r
替换一个字符。或者,您可以在命令行模式下输入“return”,方法是在vim会话中键入
,然后重试:
:%s/^M//g
其中,
^M
是通过同时按下ctrl+V+M
键来实现的。要将回车符(即
)替换为换行符(即unix换行符),您应该运行一个有点奇怪的命令:
%s/\r/\r/g
看起来好像它什么也不做,但在正则表达式和双引号字符串中,回车用\r
表示,换行符用\n
表示,而在:s命令和substitute()函数的替换部分,它们的意思正好相反
请注意,在terminal Enter中,会产生
,因此您的初始请求无效。类似于@ZyX和@anubhava,但假设您只是试图从windows文件中删除讨厌的回车符,以下内容就足够了:
:%s/\r//g
:%s/\r//g
仅在以下情况下有效:
,完成后,会自动将所有set ff=unix
转换为CRLF
LF
和set ff=dos
是不带LF的rogue字符,例如,插入时带有CR
将找不到LF CR对中的CRC-V C-M
LF CR
转换为LF
,则应使用:
:set ff=unix
:w
LF:换行
CRLF:回车和换行
^M:vim将回车部分解释为什么。您还可以使用搜索工具搜索它\r\n
对于我的例子,我不想用任何其他格式的换行符(LF或etc)来代替它,而只是句号和空格()。因为本来应该是一个新的句子,但不知怎么的,它牵涉到了。可能是用户输入错误
从
到
帮助我的是:
:%s/^M\n/\.
或
(最后有一个空格)
这两种方法对我都很管用\r\n更容易键入
Ctrl+M,Ctrl+V以插入^M
(CentOS Linux 7.2)从技术上讲,这是两次单独的按键。
之后的任何内容都将按字面意思插入。谢谢,但我知道如何做,因为一个奇怪的原因,这个文件只包含^M
之后没有返回,所以我必须执行:%s/^M/^M/g
,其中最后一个^M
是实际返回值。一般的“替换为换行”问题可以在以下位置找到:但由于set ff
的原因,查找回车有点特殊,而且这是谷歌的第一次点击,也许我们应该将其分开;当搜索并替换为vim时,我阅读以更好地理解\n
和\r
如果您在vim脚本中运行此脚本,则它是exec“%s/\r/\r/g”
I'll be there. We can talk.
:%s/^M\n/\.
:%s/\r\n/\.