Подтвердить что ты не робот

Отображение конечных пробелов в vim

Я установил следующие параметры в .vimrc

set listchars=tab:▸\ ,trail:·
set list

И ожидаем увидеть точки в тех местах, где пробелы используются для табуляции в коде (я использую пробелы, а не вкладки). Однако результат отличается:

введите описание изображения здесь

Не могли бы вы рекомендовать, как достичь желаемого результата? Спасибо!

4b9b3361

Ответ 2

И ожидаем увидеть точки в тех местах, где пробелы используются для табуляции в коде (я использую пробелы, а не вкладки)

На самом деле это наоборот, параметр tab используется для отображения символа при вставке символа табуляции (\ t) вместо пробелов. И trail используется для отображения конечных пробелов в конце строк.

Кажется, у вас есть одна пустая строка с конечными пробелами, и точки отображаются правильно.

Если вы используете только пробелы tab, параметр не используется или не отображается.

Ответ 3

vim-better-whitespace плагин содержит множество советов от Vim Страница Wiki, на которую ссылается ответ @icecrime. Он также имеет некоторые отличные варианты конфигурации.

Я установил pathogen.vim, чтобы использовать этот плагин и доволен своей жизнью, все рассмотрено.

Ответ 4

Основываясь на ссылке, опубликованной 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

Также убедитесь, что группа выделения "Ошибка" НЕ определена как обратное видео - если это так, она странным образом конфликтует с приведенным выше.