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

Как отключить отступ vim корпуса коммутатора?

В настоящее время я сражаюсь с Vim, я не могу заставить опции отступов делать то, что хочу.

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

set cindent
set cinkeys=o,O
set cinoptions=
set cinwords=
set indentexpr=

В большинстве случаев он работает нормально, он делает один отступ после открытия блока, и все в порядке. Но есть один случай, который сводит меня с ума, когда есть { после инструкции case, следующая строка слишком далеко отложена:

switch () {
    case CASE: {
                   // <-- next line gets indented to here, why??
        // <-- should be indented to here

Как я могу заставить это прекратить это делать? ТИА

4b9b3361

Ответ 1

:set cinoptions=l1

(что буква ell сопровождается номером один)

Посмотрите: help cinoptions-values ​​для строки по умолчанию и описания различных параметров.

Ответ 2

Когда я вручную ввожу команды set, я не получаю никаких отступов. Вы просмотрели вывод :set all, чтобы подтвердить, что ваши настройки не переопределены?

Примечание. Вероятно, это должно быть в комментарии, но этот параметр сейчас мне не разрешен.

Ответ 3

Если indent является пробелом N (замените N на фактическое значение), попробуйте выполнить

set cinoptions=p0,t0,:N,=0
set cinwords=if,else,switch,case,for,while,do
set cindent

: N → поместить метку "case" 0 символов из отступа указателя

= 0 → отступы для операторов в метке case