Хватит Вим испортить мой отступ в комментариях

13

По какой-то причине Вим считает, что все мои комментарии должны быть удалены из всех отступов. Если я добавлю #в начало строки, вдруг все начальные пробелы будут удалены. Как я могу это остановить?

У меня установлены Janus и NERDtree, на случай, если он уместен, наряду с множеством других личных настроек в моем .vimrc, но ни один из них (насколько я знаю) не вызовет такого поведения.

иконоборец
источник

Ответы:

4

Меня никогда не устраивают ответы «все на всякий случай». Я настаиваю на том, чтобы знать, какие из этих вещей были установлены неправильно и как они были установлены. Вот команда, которая покажет вам значения всех соответствующих настроек, упомянутых здесь, а также где они были установлены в последний раз. Если ни одна Last set fromстрока не следует, это значение по умолчанию. Нет смысла указывать setправильные значения по умолчанию.

:verbose set autoindent? smartindent? cindent? cinkeys? indentexpr?

noautoindent
nosmartindent
  cindent
        Last set from ~/.vim/vimrc
  cinkeys=0{,0},0),:,!^F,o,O,e
        Last set from ~/.vim/vimrc
  indentexpr=
Press ENTER or type command to continue

Смотрите: http://vimdoc.sourceforge.net/htmldoc/options.html#:set-verbose

Все, что мне нужно было сделать, чтобы это работало, это удалить set smartindentиз плагина и добавить в мой ~/.vim/vimrc:

set cindent cinkeys-=0#
set expandtab shiftwidth=4 tabstop=4 softtabstop=4
Бруно Броноски
источник
Вот это да! ОП изменил свой выбранный ответ. Я горжусь.
Бруно Броноски
6

Это битва, в которой я сражался, и думаю, что наконец выиграл. Проблема в том, что существует дюжина различных способов переопределения поведения (с помощью плагинов / синтаксисов).
Вот все настройки, которые я должен был использовать, чтобы выиграть битву:

set nosmartindent
set cindent
filetype plugin indent on
set cinkeys-=0#
set indentkeys-=0#
autocmd FileType * set cindent "some file types override it

С autocmdпервым set cindentне должно быть необходимости, но это одна из тех вещей, где я продолжал добавлять строки, пока поведение не исчезло.

Патрик
источник
Мне удалось пропустить последние две строки и все еще решить проблему
iconoclast
1
@iconoclast заметьте, что у вас могут быть проблемы с некоторыми типами файлов. Последняя строка потому, что некоторые файлы синтаксиса имеют приоритет над настройками отступов.
Патрик
1
О, МОЙ БОГ!!! set indentkeys-=0#!! НАКОНЕЦ МОЯ БОЛЬНОСТЬ ЗАКОНЧИЛАСЯ !!!!!!!!
Kasapo
-1

Я решил проблему, комментируя set smartindent.

GH1995
источник