Astyle
是一个用来对C/C++代码进行格式化
文档: Artistic Style 3.1
安装
1
| $sudo apt install astyle
|
预定风格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| default brace style If no brace style is requested, the opening braces will not be changed and closing braces will be broken from the preceding line.
--style=allman OR --style=bsd OR --style=break OR -A1 Allman style formatting/indenting. Broken braces.
--style=java OR --style=attach OR -A2 Java style formatting/indenting. Attached braces.
--style=kr OR --style=k&r OR --style=k/r OR -A3 Kernighan & Ritchie style formatting/indenting. Linux braces.
...
--style=gnu OR -A7 GNU style formatting/indenting. Broken braces, indented blocks.
--style=linux OR --style=knf OR -A8 Linux style formatting/indenting. Linux braces, minimum conditional indent is one-half indent.
--style=horstmann OR --style=run-in OR -A9 Horstmann style formatting/indenting. Run-in braces, indented switches.
--style=1tbs OR --style=otbs OR -A10 One True Brace Style formatting/indenting. Linux braces, add braces to all conditionals.
--style=google OR -A14 Google style formatting/indenting. Attached braces, indented class modifiers.
|
使用
1
| astyle --style=linux -n ./*.c
|
--style=linux
: linux风格缩进-n
: 不保存备份
1
| >astyle --style=linux --indent=force-tab=4 --convert-tabs --pad-oper --unpad-paren --break-blocks=all --delete-empty-lines *.c *.h
|
递归格式化
1
| astyle --style=linux --recursive *.c,*.h
|
必须中间加,
自定义规则
在--style=linux
的基础上修改,只做必要改动
缩进Tab
默认tab是4个空格.
1
| --indent=force-tab=# OR -T#
|
优先采用空格缩进, 这样配置后同vim中的tab缩进配置4个空格相同,格式化后的代码相当于vim中的gg=G
switch缩进
默认
操作符两边加空格
删除括号()两边多余空格
空行分隔没有关系的块,类,标签(不包括函数块)
空行分隔无关系的块,包括else catch等
1
| --break-blocks=all OR -F
|
删除多余空行
1
| --delete-empty-lines OR -x
|
Tab转换为空格
参考