Когда я копирую код из другого файла, форматирование испорчено, как это:
fun()
{
for(...)
{
for(...)
{
if(...)
{
}
}
}
}
Как я могу автоотформатировать этот код в энергии?
Попробуйте следующие нажатия клавиш:
gg=G
Объяснение: gg
переходит в начало файла, =
- это команда для исправления отступ и G
указывает ему выполнить операцию до конца файла.
Мне нравится использовать программу Artistic Style. Согласно их веб-сайту :
Artistic Style - это средство определения, форматирования и украшения исходного кода для языков программирования C, C ++, C # и Java.
Он работает в Windows, Linux и Mac. Он будет делать такие вещи, как отступы, замена табуляции пробелами и наоборот, вставка пробелов вокруг операций, как вам нравится (преобразование if (x <2)
в if (x <2)
если вам это нравится), поместив фигурные скобки в ту же строку, что и определения функций, или переместив их в строку ниже и т. д. Все параметры управляются параметрами командной строки.
Чтобы использовать его в vim, просто установите для него параметр formatprg, а затем используйте команду gq. Так, например, у меня есть .vimrc:
autocmd BufNewFile,BufRead *.cpp set formatprg=astyle\ -T4pb
, так что всякий раз, когда я открываю файл .cpp, formatprg устанавливается с теми параметрами, которые мне нравятся. Затем я могу ввести gg, чтобы перейти к началу файла, и g q G , чтобы отформатировать весь файл в соответствии с моими стандартами.Если мне нужно переформатировать только одну функцию, я могу перейти к началу функции, затем набрать g q ] [, и он переформатирует только это функция.
Варианты, которые у меня есть для astyle, -T4pb
, являются моими предпочтениями. Вы можете просмотреть их документацию и изменить параметры, чтобы он форматировал код, как вам нравится.
Вот демонстрация. Перед astyle:
int main(){if(x<2){x=3;}}
float test()
{
if(x<2)
x=3;
}
После astyle (gggqG):
int main()
{
if (x < 2)
{
x = 3;
}
}
float test()
{
if (x < 2)
x = 3;
}
Надеюсь, что это поможет.
Встроенная команда для правильного отступа кода уже упоминалась (gg=G
). Если вы хотите украсить код, вам нужно использовать внешнее приложение, например indent. Поскольку %
обозначает текущий файл в режиме ex, вы можете использовать его следующим образом:
:!indent %