AStyle 2.03
维护者:Jim Pattee
原始作者:Tal Davidson
用法
astyle [选项] 源文件1.cpp 源文件2.cpp [...]
astyle [选项] < 原始文件 > 美化后文件
-
注意:
- 格式化后文件保留原文件名,原文件重命名为
*.orig
- 支持通配符
*
、?
- 可通过
--recursive
或-r
递归处理目录
- 格式化后文件保留原文件名,原文件重命名为
默认选项文件
AStyle 会按以下顺序查找并加载默认配置:
- 环境变量
ARTISTIC_STYLE_OPTIONS
$HOME/.astylerc
%USERPROFILE%\astylerc
提示:默认配置中的长选项可省略前导
--
。
括号风格(--style
或 -A
)
样式名 | 别名 | 标记 | 特点 |
---|---|---|---|
Allman | ansi, bsd, break | -A1 |
分离括号 |
Java | attach | -A2 |
紧贴括号 |
Kernighan & Ritchie | k\&r, k/r | -A3 |
Linux 风格括号 |
Stroustrup | — | -A4 |
Stroustrup 括号 |
Whitesmith | — | -A5 |
分离且缩进的括号 |
Banner | — | -A6 |
紧贴且缩进的括号 |
GNU | — | -A7 |
分离且缩进的括号 |
Linux | — | -A8 |
条件最小缩进半级 |
Horstmann | — | -A9 |
行内括号,缩进 switch |
One True Brace | otbs | -A10 |
为所有条件添加括号 |
Pico | — | -A11 |
行内括号,保留单行块/语句 |
Lisp | — | -A12 |
紧贴括号,保留单行语句 |
缩进选项
制表符与空格
--indent=spaces=#
或-s#
:使用#
个空格,默认 4--indent=tab=#
或-t#
:使用制表符,假设每级等于#
个空格,默认 4- 强制制表符:
--indent=force-tab=#
/-T#
- 混合空格与制表符:
--indent=force-tab-x=#
/-xT#
语法块缩进
-C, --indent-classes // class 内部缩进
-S, --indent-switches // switch 内部缩进
-K, --indent-cases // case 语句缩进
-N, --indent-namespaces // namespace 内容缩进
-L, --indent-labels // 标签缩进一级
-w, --indent-preprocessor // 缩进多行 #define
-Y, --indent-col1-comments // 缩进第一列注释
-m#, --min-conditional-indent=# // 条件体最小缩进(0–3,默认 2)
-M#, --max-instatement-indent=# // 连续语句最大缩进(40–120,默认 40)
填充与格式化
-
空行管理
-f
,--break-blocks
:隔离不同代码块-F
,--break-blocks=all
:额外在else/catch
等处插入空行
-
运算符与括号空格
-p
,--pad-oper
:操作符两侧空格-P
,--pad-paren
:括号内外空格- 细化:
-d
/-D
/-xd
等
-
保持或拆分
-O
:保持单行块-o
:保持多语句行
-
其他
-j
:添加条件语句括号-J
:添加单行括号-c
:制表符转空格-y
:闭合头前换行-e
:拆分else if
其他常用选项
--suffix=#### // 自定义原文件后缀
-n, --suffix=none // 不保留备份
-r, -R // 递归
--exclude=路径 // 排除文件/目录
-v, --verbose // 详细模式
-q, --quiet // 安静模式
-Z, --preserve-date // 保留修改日期
--lineend=windows|linux|macold // 强制行尾样式
-V, --version // 显示版本
-h, --help // 帮助信息
重点:
- 使用
-A
选择括号风格- 通过
-s
/-t
管理缩进方式-p
/-P
/-d
细调空格-r
批量处理目录