Vim:显示换行符和回车符


34

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

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

亲切的问候

Answers:


16

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

你可以:

set listchars=eol:$,tab:\[SPACE]\[SPACE]

...以显示字符EOL专门而不塌陷片(键入空格字符,而不是[SPA,...)。

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

因此,默认的\ r字符的SpecialKey高亮显示与上面设置的'listchars'相结合,应该与您所需要的接近。

:highlight SpecialKey ctermfg=5

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


谢谢,listchars已经帮助了。您介意为我解释如何使用SpecialKey吗?我找不到任何有用的信息,vimdoc.sourceforge.net/htmldoc/syntax.html#hl-SpecialKey也没有太大帮助。
10年

SpecialKey是用于“特殊”显示的任何字符的内置语法高亮标签:控制字符等。如果您输入“:highlight SpecialKey”,它将告诉您这些字符将如何显示。
njd 2010年

当我尝试时,set listchars出现以下错误:E474: Invalid argument: listchars=eol:$,tab:\[SPACE]\[SPACE]。我正在使用MacVim 8.0.596(133)
艾略特

22

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

:e ++ff=unix

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

:set dy=uhex

5

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

set fileformats=unix

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


不幸的是,它也没有显示换行符。
jpaugh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.