Vim: показать перевод строки и возврат каретки

34

Как я могу отображать перевод строки и / или символы возврата каретки в vi / vim?

Я знаю, что set listпоказывает все пробельные символы (?), Он также заменяет вкладки \ t и т. Д. (Но это не то, что я хочу). По сути, я просто хочу отображать определенные символы, такие как \ r (в Debian это, по-видимому, значение по умолчанию, однако в Gentoo оно отличается).

С уважением

WATAIN
источник

Ответы:

16

В последних версиях Vim есть настройка 'listchars', которая позволяет указать, какие символы следует использовать для символов EOL и TAB, а также для конечных пробелов.

Ты мог бы:

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

... для отображения Eol символов специально не оседая вкладки (тип пробел, а не [, S, P, A, ...).

Я ничего не знаю конкретно о возвращаемых символах в настройке «listchars», но я подозреваю, что для этого вы можете использовать подсветку синтаксиса. Я думаю, что по умолчанию отображение символов \ r - показывать их с подсветкой SpecialKey.

Поэтому выделенная по умолчанию специальная клавиша подсветки символов \ r в сочетании с настройкой 'listchars', как указано выше, должна быть близка к той, которая вам нужна.

:highlight SpecialKey ctermfg=5

... если вы любите пурпурный.

NJD
источник
Спасибо, listcharsуже помогло. Не могли бы вы объяснить мне, как использовать SpecialKey? Я не могу найти какую-либо полезную информацию, vimdoc.sourceforge.net/htmldoc/syntax.html#hl-SpecialKey тоже мало чем помог.
Watain
SpecialKey - это встроенная метка подсветки синтаксиса для любых символов, которые отображаются «специально»: управляющие символы и тому подобное. Если вы наберете ": highlight SpecialKey", это скажет вам, как будут отображаться эти символы.
2010 года
Когда я пытаюсь set listcharsя получаю следующее сообщение об ошибке: E474: Invalid argument: listchars=eol:$,tab:\[SPACE]\[SPACE]. Я использую MacVim 8.0.596 (133)
Элиот
22

заново открыть DOSтекстовый файл в UNIXформате formart:

:e ++ff=unix

вы увидите ^M(\ r) в конце строки.
если вы хотите отобразить ^Mв шестнадцатеричном виде:

:set dy=uhex
кэв
источник
5

Добавьте следующую строку в ваш .vimrcфайл:

set fileformats=unix

Это заставляет vim изначально поддерживать только файлы в стиле Unix. Для концов строк не в стиле Unix символ возврата каретки \rбудет отображаться явно в vim как ^M.

Мансур Сиддики
источник
К сожалению, он также не показывает символ перевода строки.
jpaugh