LINUX.ORG.RU

Подкрутить C-indenting

 , ,


0

1

Привет. В виме есть C-indenting, который запускается через ‘=’. Я понимаю, что есть справка, надо разбираться и всё такое. Но хочется срезать путь, не вникая глубоко. Дело вот в чём - пишу такие конструкции:

/*block start*/ {
if (condition) {
	statements;
}
...
} /*block end*/

т.е. для экономии пространства не делаю отступ внутри «блока», но если пропустить все строки через автоиндент, то отступ впихнётся, чего мне не хочется. Что и как можно подкрутить на коленках чтобы C-indenting работал желаемым образом (оставить дефолтный конфиг, но спец поведение для /block start/ {…} /block end/)?

★★

Ты хочешь надеть штаны через голову.

mord0d ★★★★★
()

т.е. для экономии пространства не делаю отступ внутри «блока»

Мсье наркоман и должен лечиться. Это нарушает правила индентации и такой наркомании нигде в утилитах нет.

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Да ладно. Например, :set cinoptions=l1 отключает отступы после switch

switch ()
{
case 0:
case 1:
}

Часто не делают отступы внутри namespace{…}, в виме тоже есть настройка на этот случай. Так что не наркоман я.

pavlick ★★
() автор топика
Ответ на: комментарий от pavlick

это выравнивание конструкции(для многих констукций тоже сочиняют правила), а не отступы, разница в том, что отсутствие отступа перед case или private/public или в namespace позволяет экономить пространство по горизонтали с небольшим ущербом для читаемости, в то же время непосредственный код определяющий логику программы всё равно желательно размечать отступами, т.к. иначе вы серьёзно поганите читаемость кода в виду того что глазу труднее различать разные блоки и ветки, в общем - не делайте так.

AKonia ★★
()
Последнее исправление: AKonia (всего исправлений: 1)
Ответ на: комментарий от AKonia

Ребята, вы меня неправильно поняли, видимо. Не для всех блоков хочу отключить отступы, а лишь для /block start/ {, для всё той же экономии пространства, чтобы вместиться в 80 символов по горизонтали. Тупо замапил сочетание для вставки конструкции

/*block start*/ {

} /*block end*/

Ну цель очевидна, думаю - управление временем жизни автоматических переменных.

pavlick ★★
() автор топика
Последнее исправление: pavlick (всего исправлений: 1)
Ответ на: комментарий от pavlick
}
}
}
}
}
}

А, так вот после кого я такое в коде вижу.

PPP328 ★★★★★
()

Почитываю доки потихоньку, оказывается

* i_CTRL-F                 Reindent текущую строку в режиме вставки.

всегда не хватало, не знал.

pavlick ★★
() автор топика

Посмотрел доки, писать свой indent file как-то не хватает запала. Как добиться желаемого через cindent - не нашёл. Видимо забью, и буду делать отступ в block start… . Пока читал доки, заметил для себя интересные cindent опции

:set cinoptions=l1,g0,E-s

:help cinoptions-values

Раньше боролся с дефолтным стилем.

pavlick ★★
() автор топика
Последнее исправление: pavlick (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.