我的vim show标签为--->,但不显示windows ^ M字符。
并且,如何在vim中替代它。
续订============
我检查了我的vimrc它是否设置了fileformat = unix 但是当我打开一个dos文件时,设置ff就是dos
答案 0 :(得分:65)
:e ++ ff = unix
:setlocal ff = unix
:W
:电子
答案 1 :(得分:60)
Vim确实显示^ M,除非在一种情况下:如果 fileformat = dos 那么它将不会显示尾随的crlf。
您可以通过键入:set
找出您拥有的格式(unix或dos),只需更改格式(:set fileformat=unix
)然后编写即可删除crlf中的^ M.出文件。
如果你在行的中间有一个^ M,那么你应该能够看到它,即使是在fileformat=dos
文件中,你也可以将它与\r
模式匹配。 (奇怪的是,在sub的替换部分中,替换换行的语法是\r
,因此将^ M改为^ N的方式是由no-at-all-a-noop {{1} }。)
答案 2 :(得分:7)
vim正在自动检测fileformat和切换模式以匹配(看看set ff
)
如果要强制它以特定模式打开,请在命令行中抛出+ff=unix
(显示^ M)或+ff=dos
以在该模式下打开它。如果您使用的是Windows框,请在打开文件后尝试:e ++ff=unix
。
如果您尝试将这些字符删除,可以在一种模式下打开它,将ff设置为您想要的,然后保存文件。查看:h ff
了解详情。
答案 3 :(得分:4)
您可以通过启用列表功能查看所有终端换行符和回车符::set list
。
你可以用 ^ V 将它们字面输入到匹配和替换命令中:例如要将所有^M
转换为CR
,您可以执行以下操作::%s/^V^M/CR/g
(键入文字 ^ V 后跟文字 ^ M )。
答案 4 :(得分:1)
老式的方法-即使在vi中也可以使用:
vim -b filename
:%s/^V^M//g
:x
说明:
答案 5 :(得分:1)
要从您的vim中删除^ M个字符,请执行以下操作: 在命令模式下输入
%s/
之后
ctrl+v and Enter.
它应该看起来像:
%s/^M
最后用空白字符替换:
%s/^M//g