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批量处理目录