3

Я использую set list и устанавливаю опции set listchars в vim. Я бы хотел настроить set listchars для отображения конечных пробелов и т.д., Но не для вкладок. Можно ли указать, что я не хочу отображать пробелы определенного типа?

Я пробовал это:

set listchars=tab:,trail:·,extends:>,precedes:<,nbsp:%

Но я получил синтаксическую ошибку при загрузке .vimrc .

2 ответа2

3

К сожалению, это невозможно. Вы можете только :set list включить или выключить список , и для тех элементов, которые вы не определили в 'listchars' , будут использованы значения по умолчанию.

Я бы не рекомендовал всегда работать с :set list , так как он имеет некоторые побочные эффекты (например, влияет на мягкую упаковку).

Если вы просто хотите выделить конечные пробелы, есть плагины, которые делают это другими способами. На самом деле, я написал для этого плагин ShowTrailingWhitespace ; на странице есть ссылки на альтернативы.

3

Я только что обнаружил, что хотя это технически невозможно, можно использовать чит-код и вводить специальные символы пробела Unicode (не символ обычного пробела) в качестве символа для отображения на вкладке. Несмотря на то, что он по-прежнему использует цвет подсветки hl-NonText vim, он, безусловно, менее навязчив.

Другими словами, сделайте это (или подобное):

set listchars=tab:  ,trail:·,extends:>,precedes:<,nbsp:%

Два символа после tab: не являются обычными пробелами - это U+2002. Вы можете ввести их в самом vim с помощью Ctrl-V u 2 0 0 2 (в режиме вставки).

До сих пор я не заметил никаких неприятных побочных эффектов.

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