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

mar*_*ekj 35 windows vim newline eol

在gvim on windows上,如果我有CRLF eol的文本,那么文本将在每行的末尾显示^ M.

如何从显示中"隐藏"特殊字符?

:set nolist命令"""不解雇它.我很难过.

UPDATE

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

Mic*_*ker 33

您可能想要设置fileformatdos.

:ed ++ff=dos %
Run Code Online (Sandbox Code Playgroud)

  • 这个答案和@ jqno的答案都是"正确的",但方式不同.`:e ++ ff = dos%`将在DOS/Windows模式下重新打开当前文件.`:set fileformats = dos`将导致在DOS/Windows模式下打开任何后续打开的文件.有关所有详细信息的详细说明,请访问http://vim.wikia.com/wiki/File_format (3认同)
  • 这似乎"修复"添加dos linebreaks的文件,无论它们丢失在哪里,这可能是导致vim显示^ M标记的原因(在我的情况下). (2认同)

jqn*_*qno 21

要隐藏它们:

:set fileformats=dos
Run Code Online (Sandbox Code Playgroud)

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

:%s/\r//g
Run Code Online (Sandbox Code Playgroud)

  • 在我的情况下,在执行`:set fileformats = dos`后,我不得不通过`:e%`重新加载文件.然后`^ M`字符全部消失. (4认同)

wiz*_*wiz 8

虽然一劳永逸地以DOS或Unix格式召开会议当然是一种更好的方法,但有时一些同事只是不太关心正确的源代码管理以使他们的编辑行为.

在那些绝望的情况下,不是完全转换文件(导致文件完全由你自己根据SCM重写,使"责备"功能无用),我发现最好假装问题不存在.如果编译器是包容,和PHP通过各种手段,你可以有一个混合EOL文件看起来完全凉用下面的命令:

:match Invisible /\r$/
Run Code Online (Sandbox Code Playgroud)

或者在较新版本的VIM 7.4+中

:match Ignore /\r$/
Run Code Online (Sandbox Code Playgroud)

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

如果有人知道如何让Eclipse或NetBeans尊重换行终止而不显示空的最后一行(如Vim巧妙地做的那样),分享您的知识,这样你就可以让编码员满意.;-)