Как отключить отступ vim для регистра переключателя? - PullRequest
19 голосов
/ 10 августа 2010

Я в настоящее время борюсь с 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

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

Ответы [ 3 ]

23 голосов
/ 10 августа 2010
:set cinoptions=l1

(это буква ell, за которой следует номер один)

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

1 голос
/ 06 июля 2016

Если отступ равен N пробелам (замените N фактическим значением), попробуйте следующее

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

: N -> поставить метку 'case' 0 символов от отступа переключателя

= 0-> сделать отступы в пределах регистра

1 голос
/ 10 августа 2010

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

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

...