Vim 7.4 теперь имеет jN
cinoption для «Правильно создавать отступы для анонимных классов Java».(:help java-cinoptions
) Это улучшает поведение отступа для лямбд С ++ 11.
С помощью этих опций (укажите в ~ / .vim / after / ftplugin / cpp.vim):
setlocal cindent cino=j1,(0,ws,Ws
И если я перенесу открывающую скобку для цикла for на ту же строку (в противном случае это сумасшествие), то vim сделает отступ в вашем коде следующим образом:
MyLoop( [](int a, int b){
{
::i++;
for (;;) {
SomeFunc();
}
cout << "Result: " << a*b<<endl;
}
});
Он также не даст нужного вам отступа.Если вы переместите начальную открывающую скобку на свою собственную строку, то получите нужный вам висячий отступ.
Для всех опций см. :help cinoptions-values
.
Если вы хотите быть умнееПрограмма отступа, , этот пользователь рекомендует set equalprg=clang-format
, чтобы использовать ClangFormat , поэтому =ip
сделает отступ в текущем абзаце.Это не сделает vim корректным отступом при вводе (вам нужно настроить indentexpr для этого, и это довольно сложно).
Также есть плагин vim , который, кажется, делает то же самое, что и настройкаequalprg, но с большим количеством кода.Не уверен, что лучше.Предполагается, что это альтернатива clang-format.py (из ответа Киприана Герры).