Кто-нибудь настраивал vim таким образом, чтобы использовать жесткие табуляции в качестве символов отступа, но использовать пробелы для выравнивания? У меня проблема в том, что когда я начинаю строку продолжения, как в
if (condition1 && (anotherlongcondition || /* <-- Here I insert a newline */
|-------|------- whatever /* some additional alignment added automatically */
, то cin
(который является обязательным для меня) добавляет некоторое выравнивание, как я предпочитаю позиционно, но это выравнивание создается, используя как можно больше жестких табуляций и заполняя остальное пробелами (как я пытался представить).
Короче говоря, cin
, похоже, не делает различий между отступом и выравниванием. Мне бы очень хотелось, чтобы все добавленное выравнивание в приведенном примере было пробелами. Так выравнивание сохранялось бы правильно при временном переключении ts
.
Чтобы еще раз прояснить ситуацию, я хотел бы иметь возможность написать следующий код, никогда не нажимая
или
перед первым непустым символом в любой строке (и не делая никаких ручных сдвигов или чего-то подобного):
void foo(int bar)
{
|-------somestatement;
|-------if (somecondition && (someothercondition ||
|------- whatevercomesnext))
|-------|-------dosomething;
}
Я уже опробовал ctab. vim
, но он ориентирован на редактирование выровненной строки с мягкими табуляциями, что кажется мне глупым, потому что ручное выравнивание - это задача, позволяющая выполнить одношаговое уточнение, а не уточнение ширины табуляции. Я не изменил способ, которым cin
использует смешанные табуляции и пробелы для выравнивания.
Мне не удалось найти никакого встроенного способа добиться этого. Возможно, он все же есть? В любом случае, я сомневаюсь, что есть плагин, который это делает. Хотя, признаться, я сам не работаю с vim-скриптами и, возможно, не имею достаточного опыта, должен сказать, что большинство плагинов, которые я пробовал, только портили конфигурацию моего редактора...