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

54

Как я могу настроить vim для отображения скрытых символов, таких как символы табуляции или пробелы, в то время как эти символы набираются? Я не хочу, чтобы при записи файла вкладки и / или пробелы заменялись специальными символами, такими как «>» или «_».

dan0
источник
1
Вам определенно нужны места для показа? Типичным решением является использование :set list. Это может получить все, кроме пробелов.
Крис Харпер

Ответы:

64

Вы можете использовать команды

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
:set list

показать все символы, которые не являются пробелами. Так что пробелы - это единственное, что не появляется.

Если вам также необходимо пометить пробелы, вам нужно попробовать что-то менее приятное. Что-то вроде

:%s/ /█/g

Заменит все пробелы символом блока. Тогда вам нужно будет отменить это, прежде чем писать. Вы можете переназначить свою команду записи сделать

cmap :w :%s/█/ /g<CR>:w

Просто предложение. Я не пробовал это все же.

Крис Харпер
источник
Спасибо за помощь; Ваше предложение работает довольно хорошо. Тем не менее, я заметил, что иногда, когда я открываю определенные файлы, я вижу «> ---» (указывает на вкладку). Есть ли способ сделать так, чтобы символы табуляции отображались только во время набора текста?
dan0
@ dan0 Вы имеете в виду только в режиме вставки? Я не знаю. Я в этом сомневаюсь. Вы можете сделать некоторые функции отображения, чтобы при переходе в режим вставки он сначала вызывал :set listcharsкоманду и ничего не устанавливал, а затем снова вызывал ее , когда выходил из режима вставки. Но я не знаю достаточно о картах, чтобы сделать это.
Крис Харпер
@JonathanKomar "сет нолист"
Владислав Довгальец
1
Использование space:␣хорошо работает для меня: :set listchars=eol:$,tab:>-,trail:~,space:␣
loxaxs
15

Более поздние версии vim также могут показывать пробелы. (Подтверждено на vim 7.4.1689).

:set list
:set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
wisbucky
источник
4

В моем случае я должен был бороться NBSP ,

:set listchars=nbsp:☠,tab:▸␣
:set list

Вы также можете использовать ␣ вместо ☠

Вот пример, где вышеупомянутая конфигурация vim выделяет "невидимые странные" пробелы и дополнительно выделяет вкладки (красный цвет, потому что я использую плагин vim с трейлинг-пробелами)

Вот

Андрей Арапов
источник