在Vim中如何隐藏eol doc chars ^ M.

时间:2009-10-01 19:30:42

标签: windows vim newline eol

如果我有CRLF eol的文本,那么在Windows上的gvim中

然后文本将在每行的末尾显示^ M.

如何隐藏显示的特殊字符?

:set nolist命令“”“不解雇它。 我很难过。

更新

我做了:设置fileformats = unix,dos作为列表,但它最初没有用。我关闭了文件并重新打开它并且它有效。 默认情况下,我将fileformats设置为仅unix值。谢谢你的回答。

7 个答案:

答案 0 :(得分:30)

您可能希望将fileformat设置为dos

:ed ++ff=dos %

答案 1 :(得分:20)

隐藏它们:

:set fileformats=dos

要删除它们(以便以后可以将文件另存为unix文件):

:%s/\r//g

答案 2 :(得分:7)

虽然一劳永逸地以DOS或Unix格式召开会议当然是一种更好的方法,但有时候一些同事并不关心正确的源代码管理,以使他们的编辑能够表现出来。

在那些绝望的情况下,不是完全转换文件(导致文件完全由你自己根据SCM重写,使“责备”功能无用),我发现最好只假装问题没有存在。如果编译器适应,并且PHP无论如何,那么使用以下命令可以使混合EOL文件看起来非常酷:

:match Invisible /\r$/

或者在较新版本的VIM 7.4 +

:match Ignore /\r$/

更糟糕的是,大多数GUI编辑器用换行符结束文本文件,当文件以换行符结尾时,它们在底部显示空行。由于这有点烦人,大多数人会删除那个空行,如果文件格式是DOS,将导致混合EOL文件(以及在Vim中显示的可怕^ Ms)。

如果有人知道如何让Eclipse或NetBeans尊重换行终止而不显示空的最后一行(正如Vim巧妙地做的那样),分享您的知识,并且您将在这里让编码人员高兴。 ; - )

答案 3 :(得分:1)

通常会自动检测文件格式。您的文件中必须包含混合的Unix和DOS / Windows行。

尝试这个来清理它(“clean”= unix格式):

% tr -d '\015' < old.file > new.file

答案 4 :(得分:0)

:0,$ s/<ctrl-v><ctrl-m>//g
:set ff=dos

答案 5 :(得分:0)

使用命令:

:1,$ s/^v^M/ /g

答案 6 :(得分:0)

我想指出的是,如果你使用完整的VIM(至少在我的ubuntu 9.10盒子上),它“做你想要的”并自动隐藏它,但是股票vi(和vim-tiny)不要自动隐藏^ M.如果你进行最小安装(或服务器安装),你只能获得vi和vim-tiny。我找到的修复是在我的ubuntu盒子上安装适当的vim(apt-get install vim)。希望能帮助出现这个主题的人出于同样的原因:-D