Ответ 1
Вы должны проверить эту ссылку. Я использую решение командной строки match
:
:highlight ExtraWhitespace ctermbg=red guibg=red
:match ExtraWhitespace /\s\+$/
Эта страница также предоставляет list
решения, которые я лично не пробовал.
Я установил следующие параметры в .vimrc
set listchars=tab:▸\ ,trail:·
set list
И ожидаем увидеть точки в тех местах, где пробелы используются для табуляции в коде (я использую пробелы, а не вкладки). Однако результат отличается:
Не могли бы вы рекомендовать, как достичь желаемого результата? Спасибо!
Вы должны проверить эту ссылку. Я использую решение командной строки match
:
:highlight ExtraWhitespace ctermbg=red guibg=red
:match ExtraWhitespace /\s\+$/
Эта страница также предоставляет list
решения, которые я лично не пробовал.
И ожидаем увидеть точки в тех местах, где пробелы используются для табуляции в коде (я использую пробелы, а не вкладки)
На самом деле это наоборот, параметр tab
используется для отображения символа при вставке символа табуляции (\ t) вместо пробелов.
И trail
используется для отображения конечных пробелов в конце строк.
Кажется, у вас есть одна пустая строка с конечными пробелами, и точки отображаются правильно.
Если вы используете только пробелы tab
, параметр не используется или не отображается.
vim-better-whitespace плагин содержит множество советов от Vim Страница Wiki, на которую ссылается ответ @icecrime. Он также имеет некоторые отличные варианты конфигурации.
Я установил pathogen.vim, чтобы использовать этот плагин и доволен своей жизнью, все рассмотрено.
Основываясь на ссылке, опубликованной icecrime, я считаю, что это работает довольно хорошо...
" Be clever about highlighting trailing whitespace (don't highlight it if we are
" in 'insert' mode and the cursor is at the end of the line). Also (regardless
" of 'insert' mode), highlight any tabs that immediately follow space(s).
" EOLWS and EOLWSInsert are colour group names; the latter being toned-down to
" make editing in 'insert' mode easier on the eye
autocmd InsertEnter * match EOLWS // | match EOLWSInsert /\s\+\%#\@<!$\| \+\ze\t/
autocmd InsertLeave * match EOLWSInsert // | match EOLWS /\s\+$\| \+\ze\t/
autocmd WinEnter,BufWinEnter,WinNew * match EOLWS /\s\+$\| \+\ze\t/
" Disable syntax-specific trailing space error handling because it conflicts
" with the above, mostly because the syntax highlighting does not take account of
" whether 'insert' mode is active or not. There are other '*_no_trail_space_error'
" settings - refer to syntax files in $VIMRUNTIME/syntax/
let c_no_trail_space_error = 1
let java_no_trail_space_error = 1
Также убедитесь, что группа выделения "Ошибка" НЕ определена как обратное видео - если это так, она странным образом конфликтует с приведенным выше.