vim: C расставляет фигурные скобки на том же уровне, что и регистр

#c #vim

#c #vim

Вопрос:

На данный момент у меня есть следующее cinoptions :

 cino=
cino =:0
cino =g0
cino =p0
cino =(0
cino ={0
cino =l1
cino =t0
cino =u2
 

Я бы ожидал, что {0 опция будет иметь отступ в виде:

 case 1:
{
    foo = 1;
    break;
}
 

но вместо этого он делает отступы следующим образом:

 case 1:
    {
        foo = 1;
        return;
    }
 

Есть ли способ сделать его отступом, как первый?

(Не дубликат. Этот вопрос касается выравнивания фигурных скобок … человек спрашивает о том, что находится внутри брекетов. Другой ответ не помогает мне решить проблему. Я уже могу добиться того, на что отвечает другой вопрос, но это не то, о чем я спрашиваю. Если у вас не хватает терпения дочитать до конца, чтобы понять, что это другой вопрос, пожалуйста, не помечайте его как дублирующий.)

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

1. У меня есть пробел cino , и он получает желаемое поведение…

2. set cino= ? Это делает отступы в фигурных скобках на два уровня для меня …

3. Зная vim , вероятно, есть какое-то взаимодействие с другими опциями. 🙁

4. На самом деле, найдите ответ: cino ={-1s вместо cino ={0 работ.

5. @mtahmed Теперь, когда вопрос вновь открыт, вы можете сами ответить на вопрос с помощью найденного вами решения.

Ответ №1:

cino ={-1s

вместо

cino ={0

работает. По сути, по умолчанию используется 0s то, в каком месте он находится с отступом. -1s расставьте фигурные скобки по желанию.

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

1. Когда я использую cino={-1s, строки после фигурной скобки устанавливаются на удвоенную ширину сдвига. Я не установил никаких других значений cino. Прямо сейчас я использую set cino==0, когда я делаю отступы для меток регистров с помощью фигурных скобок, иначе я удаляю эту опцию и делаю отступ для регистра без фигурных скобок.