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

53168
watain

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

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

С уважением

33

3 ответа на вопрос

20
kev

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

:e ++ff=unix 

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

:set dy=uhex 
16
njd

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

Вы могли бы:

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

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

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

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

:highlight SpecialKey ctermfg=5 

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

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

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

set fileformats=unix 

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

К сожалению, он также не показывает символ перевода строки. jpaugh 7 лет назад 0