Windows 如何在VIM中隐藏下线文档字符^M

Windows 如何在VIM中隐藏下线文档字符^M,windows,vim,newline,eol,Windows,Vim,Newline,Eol,在windows上的gvim中,如果我有带有CRLFeol的文本,则文本将在每行末尾显示^M 我如何从显示器上“隐藏”那个特殊字符 :set nolist命令“不会解除它 更新 我做了:将fileformats=unix,dos设置为一个列表。起初它不起作用,但我关闭了文件,然后重新打开,它就起作用了 默认情况下,我将fileformats设置为only unix值 谢谢您的回答。您可能需要将fileformat设置为dos :ed ++ff=dos % :0,$s///g :set ff=d

在windows上的
gvim
中,如果我有带有
CRLF
eol
的文本,则文本将在每行末尾显示
^M

我如何从显示器上“隐藏”那个特殊字符

:set nolist命令“
不会解除它

更新 我做了
:将fileformats=unix,dos
设置为一个列表。起初它不起作用,但我关闭了文件,然后重新打开,它就起作用了

默认情况下,我将fileformats设置为only unix值


谢谢您的回答。

您可能需要将
fileformat
设置为
dos

:ed ++ff=dos %
:0,$s///g
:set ff=dos
使用以下命令:

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

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

尝试以下方法清理它(其中“clean”=unix格式):

%tr-d'\015'new.file
要隐藏它们:

:set fileformats=dos
要删除它们(以便以后可以将文件另存为unix文件),请执行以下操作:


我想指出的是,如果你使用完整的VIM(至少在我的ubuntu 9.10上),它“做你想做的”并自动隐藏它,但库存vi(和VIM tiny)不会自动隐藏^M。如果你进行最小安装(或服务器安装),你只会得到vi和VIM tiny。我找到的修复方法是安装正确的VIM(apt get install VIM)在我的ubuntu盒子上。希望这能帮助那些出于与我相同的原因来到这个话题上的人:-D

而一劳永逸地使用DOS或Unix格式当然是更可取的方法,有时一些同事只是不太关心正确的源代码管理以使他们的编辑器正常工作

在这些极端情况下,不要完全转换文件(导致文件完全由您自己根据SCM重写,导致“责备”功能无效),我发现最好是假装问题不存在。如果编译器能够适应,而PHP也能适应,那么使用以下命令可以使混合的EOL文件看起来非常酷:

:match Invisible /\r$/
或者在更新版本的VIM 7.4中+

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


如果有人知道如何让Eclipse或NetBeans在不显示最后一行空白的情况下尊重换行终止(就像Vim聪明地做的那样),请分享你的知识,你会让一个程序员在这里感到高兴。-

touche`--我也错过了这一点(虽然我做了一个副本,而不是重击原始版本)呃,你说的是“在windows上”“.哎呀。那么,受苦吧?每个人都有cygwin,对吗?我想Windows程序员比*nix程序员多得多,但我倾向于忘记这一点(尽管在80年代开始使用MS-DOS)。我自己实在受不了……这似乎“修复”了文件中dos换行符丢失的地方,这可能是导致vim显示^M标记的原因(在我的例子中是这样)。这个答案和@jqno的答案都是“正确的”,但方式不同<代码>:e++ff=dos%将在dos/Windows模式下重新打开当前文件<代码>:set fileformats=dos将导致在dos/Windows模式下打开任何随后打开的文件。当我在Windows上运行的gvim 7.4上尝试此功能时,我得到了“E28:没有这样的突出显示组名:不可见”的详细说明?还有什么我必须首先做的吗?有趣的是,我已经有一段时间没有使用这个技巧了(因为有了新工作和更细心的同事),现在我在OSX上用Vim 7.4尝试了它,我得到了同样的错误。我猜
不可见的定义从发行版的语法文件中消失了,因此我们可能必须在自己的
.vimrc
中重新实现它。不幸的是,我不知道它最初是如何编码的。我认为较新的语法是
:match Ignore/\r$/
在我的情况下,在执行
:set fileformats=dos
之后,我不得不通过
:e%
重新加载文件。然后,
^M
字符全部消失。
:%s/\r//g
:match Invisible /\r$/
:match Ignore /\r$/