32

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

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

С уважением

3 ответа3

20

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

:e ++ff=unix

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

:set dy=uhex
16

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

Вы могли бы:

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

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

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

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

:highlight SpecialKey ctermfg=5

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

4

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

set fileformats=unix

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .