找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4758

积分

0

好友

619

主题
发表于 半小时前 | 查看: 2| 回复: 0

在 Keil 里一行一行手动整理缩进,虽然说明你注重代码格式,但代码量一大效率实在太低。这里推荐 AStyle 这个工具,下面结合官方资料把它的用法和配置方式梳理清楚。

1 AStyle 介绍

AStyle 全称 Artistic Style,是一个免费、快速且小巧的自动格式化程序,适用于 C、C++、C++/CLI、Objective‑C、C# 和 Java 源代码。

缩进源代码时,我们经常会同时使用空格和 Tab 来形成想要的缩进。而且有些编辑器在按下 Tab 键时,默认插入的是空格而不是制表符。其他编辑器(比如 Emacs)还能通过自动调整行前空格来“美化”代码,甚至会把原来只用 Tab 缩进的代码插入空格。

不同编辑器对每个 Tab 字符显示的空格数量也可能不一致,除非用户手动设置成自己习惯的值。程序员从一个编辑器换到另一个编辑器时,最常遇到的一个问题就是:本来缩进很整齐的代码,突然乱成一团。即使你自己坚持只用空格或只用 Tab,阅读别人源码时仍然可能遇到这类麻烦。

为了解决这个问题,Artistic Style 被开发出来。它是一个用 C++ 编写的过滤器,可以自动重新缩进并格式化 C / C++ / Objective-C / C++/CLI / C# / Java 源文件。它既可以从命令行调用,也可以作为库集成到其他程序中。

官网地址:http://astyle.sourceforge.net/

AStyle官网介绍页面

下载地址:https://sourceforge.net/projects/astyle/

2 AStyle 初体验

直接看效果会更直观。下面是一段没有经过 AStyle 格式化的代码:

Keil中未格式化代码示例

再用 AStyle 插件格式化一下:

AStyle格式化后的Keil代码示例

很明显,第一种代码风格如果频繁出现在你参考的源码里,基本很难有继续看下去的心情,甚至想直接丢进回收站。第二种看起来就舒服多了。

也就是说,以后再看别人的代码,第一件事可以先交给 AStyle 把代码风格整理成自己习惯的格式,这对学习和工作效率都有帮助。一个好程序,不仅要有好的算法,同时也要有良好的书写风格。

3 AStyle 插件在 Keil 工程中的适配

我这里使用的 Keil 软件版本是:V5.29.0.0。

3.1 Keil5 配置用户自定义插件

打开 Keil 的 Tools 菜单,选择 Customize Tools Menu...,进入自定义工具菜单。

Keil Tools菜单选择Customize Tools Menu

3.2 添加用户自定义命令并配置参数

Customize Tools Menu 窗口中,就能添加自己的格式化命令。Menu Content 中显示的是自定义用户命令,名称可以自己写。下面是我配置的两个用户命令。

AStyle自定义工具菜单配置界面

用户命令:格式化工程

参数配置:

-n "$E*.c" "$E*.h" --style=ansi -p -s4 -S -f -xW -w -xw -R

用户命令:格式化当前文件

参数配置:

-n !E   --style=ansi -p -s4 -S -f -xW -w -xw

这里说明一下参数含义:!E 表示当前获得焦点且正在编辑的文件;$E*.c$E*.h 表示当前获得焦点且正在编辑文件所在目录下所有 .c.h 文件。这些参数可以参考 Keil µVision 的帮助文档。上面使用的是 AStyle 默认格式来格式化文件,如果想自定义格式,可以参考 官网的开发文档 进行配置。

3.3 选择命令对 .c 或 .h 开始格式化处理

再次打开 Tools 菜单,就能看到刚才配置好的用户命令。点击对应的命令,即可完成代码格式化。

Keil中执行AStyle格式化命令

如果还想调整缩进风格、换行规则等细节,建议继续查阅 AStyle 官方开发文档学习。




上一篇:面向文本与图像结果的因果推断:最大对比特征方法解析
下一篇:AI 店长用 Claude Opus 4.8 开除迟到员工,AI 管理能靠谱吗
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-8-18 07:41 , Processed in 1.229169 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表