:help hl-NonText
довольно ясно показывает, что вы не можете иметь разные цвета для строки 'showbreak'
и других нетекстовых строк, членом которых является eol
(см. :help 'listchars'
):
нетекстовый
'~' и '@' в конце окна, символы из 'showbreak' и
другие символы, которые на самом деле не существуют в тексте (например, ">"
отображается, когда символ двойной ширины не помещается в конце
линия).
Если вы готовы принять это ограничение (@elliottcable), hi! link NonText LineNr
сопоставит строку 'showbreak'
с цветами номера строки.
Если вы действительно хотите проявить смекалку, в качестве компромисса вы можете создать отображение или команду для переключения между ':set list'
и ':set nolist'
, которые также изменят настройку NonText
highlight
одновременно.
Если вы используете :set relativenumber
(добавлено в vim 7.3), :set showbreak=↳\ \ \
будет надежно удерживать ваши 'showbreak'
аккуратно выровненными, так как ширина номера не изменится при навигации по файлу. (Это в дополнение к :set cpo+=n
и :set wrap
@Randy Morris, упомянутым в его ответе.)
Вам определенно понадобится UTF-8 для символа ↳
, поскольку он не отображается в других кодировках. Я настоятельно рекомендую вам тщательно документировать ваши проблемы с кодировкой, подробно описывать, как их воспроизводить вместе с вашей ОС, ее версией и выводом :version
vim, и публиковать их как отдельные вопросы. UTF-8 должен помогать вам спорить на нескольких языках, а не мешать.