#c #vim #indentation
#c #vim #отступ
Вопрос:
Если я сейчас напишу следующий код в vim
const SomeType amp; some_function (<ENTER>
затем vim продолжит следующую строку с отступом в две вкладки. Я хочу, чтобы в следующей строке был отступ только с одной табуляцией.
Я знаю, что cindent существует, но я не могу понять, какой синтаксис позволит это сделать.
Ответ №1:
:help cinoptions-values
(N When in unclosed parentheses, indent N characters from the line
with the unclosed parentheses. Add a 'shiftwidth' for every
unclosed parentheses. When N is 0 or the unclosed parentheses
is the first non-white character in its line, line up with the
next non-white character after the unclosed parentheses.
(default 'shiftwidth' * 2).
cino= cino=(0 >
if (c1 amp;amp; (c2 || if (c1 amp;amp; (c2 ||
c3)) c3))
foo; foo;
if (c1 amp;amp; if (c1 amp;amp;
(c2 || c3)) (c2 || c3))
{ {
Комментарии:
1. Спасибо, что нашли соответствующий документ, но я СОВСЕМ его не понимаю! Мне кажется, что примеры имеют случайный отступ, я никак не могу сопоставить это со
cino
строкой:-(2. Кроме того, как это меняется, когда вкладки раскрываются / не раскрываются?
3. Вы в основном хотите перейти
(1
к cinoptions.4. Да, просто введите
:set cinoptions=(1
и попробуйте, возможно, поиграйте с разными значениями, пока не получите правильный результат. Если это поможет, у меня естьcinoptions=g0,:0,(0,w1,Ws
который выравнивает по левому краю объявления области видимости класса и операторы case в их соответствующих блоках, выравнивает строки выполнения с открывающими скобками (как в примере с правым столбцом выше) и т.д.