Vim:显示换行符和回车

wat*_*ain 35 feed vim carriage-return newlines

如何在 vi/vim 中显示换行符和/或回车符?

我知道这set list显示了所有的空白字符 (?),它还替换了制表符 \t 等(但这不是我想要的)。基本上我只想显示某些字符,如 \r (在 Debian 上这似乎是默认值,但是在 Gentoo 上它是不同的)。

亲切的问候

kev*_*kev 23

DOSUNIXformmart 中重新打开格式化的文本文件:

:e ++ff=unix
Run Code Online (Sandbox Code Playgroud)

您将^M在行尾看到(\r)。
如果你想^M以十六进制显示:

:set dy=uhex
Run Code Online (Sandbox Code Playgroud)


njd*_*njd 18

在 Vim 的最新版本中,有一个 'listchars' 设置,可以让您指定哪些字符应该用于 EOL 和 TAB 字符以及尾随空格。

你可以:

set listchars=eol:$,tab:\[SPACE]\[SPACE]
Run Code Online (Sandbox Code Playgroud)

...在不折叠制表符的情况下特别显示 eol 字符(键入空格字符,而不是[, S, P, A,...)。

我对“listchars”设置中的返回字符一无所知,但我怀疑您可以为此使用语法突出显示。我认为 \r 字符的默认显示是用 SpecialKey 突出显示它们。

所以 \r 字符的默认 SpecialKey 突出显示,结合上面的设置 'listchars',应该接近你需要的。

:highlight SpecialKey ctermfg=5
Run Code Online (Sandbox Code Playgroud)

...如果你喜欢洋红色。


Man*_*qui 5

将以下行添加到您的.vimrc文件中:

set fileformats=unix
Run Code Online (Sandbox Code Playgroud)

这导致 vim 本身仅支持 unix 样式的文件。对于非 Unix 风格的行尾,回车符\r将在 vim 中显式显示为^M.