如何在VIM中隐藏eol文档字符^M

jjjwad0x  于 2023-02-19  发布在  其他
关注(0)|答案(8)|浏览(174)

在windows上的gvim中,如果我有CRLFeol的文本,那么文本将在每行的末尾显示^M
如何隐藏特殊字符使其不显示?
:set nolist command """不会忽略它。

更新

我把:set fileformats=unix,dos作为一个列表,一开始它不起作用,但是我关闭了文件,重新打开它,它起作用了。
默认情况下,我只将文件格式设置为unix值。
谢谢你的回答。

mu0hgdu0

mu0hgdu01#

您可能需要将fileformat设置为dos

:ed ++ff=dos %
35g0bw71

35g0bw712#

要隐藏它们:

:set fileformats=dos

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

:%s/\r//g
nkoocmlb

nkoocmlb3#

虽然一劳永逸地讨论DOS或Unix当然是更好的方法,但有时一些同事只是不太关心适当的源代码管理,以使他们的编辑行为规范。
在那些绝望的情况下,与其完全转换文件(导致文件完全由您自己根据SCM重写,使"blake"函数变得无用),我发现最好假装问题不存在。如果编译器是兼容的,并且PHP无论如何都是 * is *,您可以使用以下命令得到一个看起来非常酷的混合EOL文件:

:match Invisible /\r$/

或在VIM 7.4+的较新版本中

:match Ignore /\r$/

更糟糕的是,大多数GUI编辑器 * 不 * 以换行符结束文本文件,当文件以换行符结束时,它们会在底部显示一个空行。由于这有点烦人,大多数人会删除空行,如果文件格式是DOS,这将导致混合EOL文件(以及Vim中可怕的^M)。
如果有人知道如何使Eclipse或NetBeans在不显示空的最后一行的情况下接受换行符终止(就像Vim巧妙地做到的那样),* 请 * 分享你的知识,你会使程序员在这里感到高兴。-)

wdebmtf2

wdebmtf24#

文件格式通常是自动检测的。您的文件中必须混合了Unix和DOS/Windows行。
尝试这个来清理它(其中“clean”= unix):

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

aurhwmvo5#

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

kr98yfug6#

我想指出的是如果你使用的是成熟的VIM(至少在我的ubuntu9.10盒子上)它“做你想做的”并且自动隐藏它,但是股票(和vim-tiny)不要自动隐藏^M。如果您执行最小安装(或者服务器安装)你只能得到vi和vim-tiny。我发现修复是安装正确的vim(apt-get install vim)在我的ubuntu盒子上。希望这能帮助那些因为和我一样的原因而沿着这个主题的人:-D

fcy6dtqo

fcy6dtqo7#

使用以下命令:

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

1wnzp6jl8#

当我的neovim在node_modules的一些文件中向我显示这些丑陋的^M时,我通过向BufWinEnter添加以下代码来修复此问题:

if char2nr(getline(1)[-1:-1]) == 13
    e ++ff=dos
  endif

相关问题