Vim показывает непечатаемые символы с префиксом ^ (например, ^@ для байта NUL). У меня есть файл на основе столбцов, содержащий как печатные, так и непечатные символы, которые трудно читать, поскольку каждый непечатный символ сдвигает все оставшиеся столбцы на один символ вправо.

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

2 ответа2

3

Это контролируется опцией 'isprint' . Поскольку (цитируя :help) «Символы из пробела (ASCII 32) до '~' (ASCII 126) всегда отображаются напрямую», единственный способ - сжать специальные символы. Вы можете сделать это через

:set isprint=1-255

В зависимости от вашего шрифта эти символы (например, ^[), вероятно, будут отображаться в виде пустых отображаемых ячеек или обычного символа замены.

1

Может быть, вы могли бы использовать функцию conceal :

:syn match nonprinting /[^[:print:]]/ conceal cchar=%

И установите conceallevel если вы еще этого не сделали:

:set conceallevel=1

Это все равно будет расширять символы, когда на них наведен курсор:

куча нулевых персонажей то же самое, что и символы <code>% </code>

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