#vim
#vim
Вопрос:
Я уже некоторое время использую подсветку синтаксиса, чтобы сопоставлять символы пробела, которые идут после начальных табуляций.
autocmd Syntax * highlight LeadingSpaces guibg=#afd7af ctermbg=Black
autocmd Syntax * syntax match LeadingSpaces /^t zs /
Проблема в том, что это не всегда работает. Например, внутри комментариев к блокам выделение не вступает в силу:
test // the extra space before "test" gets highlighted
/**
* test // here the extra spaces aren't highlighted
*/
Если у кого-нибудь есть идея, что я делаю не так, это было бы здорово. В противном случае, я думаю, мне придется вернуться к обычному сопоставлению.
Ответ №1:
У меня была похожая проблема (но отображать конечные пробелы в конце строки). Чтобы решить эту проблему, вместо использования синтаксиса, который противоречит фактическому синтаксису, вы можете просто выделить регулярное выражение с помощью matchadd
.
Это выглядит следующим образом (повторное использование ваших лидирующих пространств)
autocmd BufNew * call matchadd ('LeadingSpaces', '^t zs ')
Комментарии:
1. В итоге я получил аналогичное решение, поэтому я принимаю это. Спасибо