При использовании listchars я могу получить только жесткие вкладки с 2 пробелами

#vim #unicode

#vim #Юникод

Вопрос:

Я использую следующий .vimrc. Который содержит (но не ограничивается) следующее:

 set encoding=utf-8
set tabstop=4
set autoindent
set list lcs=tab:· ,trail:•,eol:¬
  

Это должно дать мне жесткие вкладки с четырьмя пробелами, при этом первый символ отображается как маленькая точка в середине строки, а остальные три символа — как пробелы. Но то, что я получаю, — это жесткие вкладки с двумя пробелами. Что-то еще в моем vimrc приводит к уменьшению интервала табуляции.

Очевидно, я делаю что-то неправильно и устанавливаю жесткие вкладки с двумя пробелами. Я исследовал listchars, флаги компиляции vim и пытаюсь ввести неразрывный пробел в мой vimrc. Есть еще идеи, что я делаю не так??

Комментарии:

1. После применения ваших настроек у меня есть следующая картинка: ссылка . Мне кажется, это то, о чем вы просили. Я ошибаюсь?

2. Тогда это должно быть что-то другое в моем файле .vimrc :-(. Я изменю свой вопрос, чтобы отразить это.

3. Я полагаю, что проблема в строках 102-106 вашего файла .vimrc.

Ответ №1:

Только что посмотрел на ваш _vimrc ; путаница в следующих строках

 augroup htmldjango
   set tabstop=2
   set softtabstop=2
   set shiftwidth=2
augroup END
  

Вы используете set command и переписываете свои предыдущие tabstop , softtabstop и shiftwidth настройки независимо от типа файла. Таким образом, вы фактически устанавливаете для своей вкладки значение 2.

Возможно, было бы лучше (и я предполагаю, что это то, что вы пытались сделать), если бы вы использовали

 augroup htmldjango
   autocmd!
   autocmd FileType html setlocal tabstop=2
   autocmd FileType html setlocal softtabstop=2
   autocmd FileType html setlocal shiftwidth=2
augroup END
  

поэтому установка разных tabstop , softtabstop и т.д. только при использовании типа файла HTML.

Обратите внимание: я понятия не имею, что такое тип файла htmldjango, поэтому вы можете захотеть изменить эту часть так, как вам больше подходит.

Комментарии:

1. Это здорово. Какой я глупый. Я должен был подозревать, что именно отсюда возникла ошибка. Этот блок у меня тоже почти никогда не работал.

2. @SethBuzz Вам следует использовать setlocal для материалов, зависящих от типа файла. Новый код перезаписывает эти настройки для всех буферов с любым типом файла , который будет открыт после любого html-файла.