打印
[开发工具]

使用 AStyle 在 Keil 中进行代码格式化:从手动调整到一键美化

[复制链接]
50|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DKENNY|  楼主 | 2025-3-4 19:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 DKENNY 于 2025-3-4 19:06 编辑

#申请原创# #技术资源# @21小跑堂

引言:为什么我们需要代码格式化?

      你有没有这样的经历?写代码的时候,满脑子都是逻辑,写完一看,代码歪七扭八,缩进乱七八糟,像一团乱麻。或者接手别人的项目,打开一看,代码风格五花八门,有的缩进用空格,有的用 Tab,有的括号换行,有的挤在一行,阅读起来头晕眼花。更别提团队合作了,每个人格式都不一样,提交代码后简直是“格式灾难”。
      在嵌入式开发中,很多人用 Keil(比如 Keil uVision4 或 Keil MDK5)写 C 代码,它的编辑器虽然功能强大,但有个致命缺点:没有内置的代码格式化工具。每次调整缩进、空格、换行,全靠手敲键盘,费时费力不说,还容易出错。时间长了,不仅自己看着烦,别人看你的代码也抓狂。
      那怎么办呢?难道一直手动调整?当然不是!今天我们要聊一个神器——AStyle(全名叫 Artistic Style),它是个开源的代码格式化工具,能帮你一键把代码整理得整整齐齐,像打印出来的教科书一样美观。而且,它还能集成到 Keil 里,操作简单到飞起。

第一部分:认识 AStyle,搞清楚它能干啥

1.1 AStyle 是个啥?
      AStyle,简单来说,就是一个专门收拾代码的“整理大师”。它支持 C、C++、Java 这些编程语言,能自动帮你调整代码的缩进、空格、大括号位置,甚至还能按你的喜好定制风格。比如你喜欢大括号另起一行,它能帮你搞定;你想要 if-else 语句前后加空行,它也能做到。总之,它的目标就是让你的代码看起来清爽、统一、一目了然。

1.2 为什么要在 Keil 里用 AStyle?
      Keil 的编辑器虽然好用,但功能有点“原始”。代码高亮、编译调试这些没问题,可一到格式化就抓瞎。手动调整太累,效率低下,尤其写几百行代码时,手动对齐简直是噩梦。AStyle 就像给 Keil 加了个“自动美颜”功能,省时省力,还能提升代码可读性。试想一下,写完代码,按个快捷键,乱糟糟的代码瞬间变得整齐漂亮,心情都好了不少,对吧?

1.3 用 AStyle 的好处
      1. 省时间:不用手动敲空格、调整缩进,几秒钟搞定。
      2. 统一风格:团队开发时,大家代码格式一致,告别“风格冲突”。
      3. 提高可读性:整齐的代码看着舒服,找 Bug 也快。
      4. 自定义:想咋整就咋整,随你心情调整格式。

好了,道理讲完了,咱们直接开干,下面是详细步骤!

第二部分:动手操作,AStyle 集成到 Keil

2.1 准备工作:你需要的东西
      要用 AStyle,咱们得先把工具准备好。
1. Keil 软件:我们得装好 Keil(比如 Keil uVision4 或 MDK5),没装的赶紧去官网下个最新版。
2. AStyle 工具:这是个独立的小程序,得单独下载。
3. 一台电脑:Windows 系统最好,因为 AStyle 和 Keil 在 Windows 上配合最顺手。

步骤 1:下载 AStyle
      AStyle 是开源的,官网地址是:http://astyle.sourceforge.net/。打开浏览器,输入这个网址,进去后你会看到一个简洁的页面。
      页面描述:网站顶部有 “Artistic Style” 的标题,下面是简介,告诉你它支持哪些语言(C、C++ 啥的)。下边有个导航栏,点 “Download” 或者往下拉找到下载链接。


      操作:找到最新版本(比如 3.1 或 3.4),点 Windows 的下载链接,通常是个 ZIP 压缩包,比如 AStyle_3.4_windows.zip。


      下载后:解压到你喜欢的地方,比如 D:\Program Files (x86)\astyle-3.6.7-x64,解压完会看到一个文件夹,里面有 astyle.exe,这就是我们要用的核心文件。


步骤 2:打开 Keil,准备集成
      现在打开你的 Keil 软件(以 Keil MDK5 为例,uVision4 也差不多)。
      界面描述:启动后,你会看到 Keil 主界面,左边是项目栏(Project),中间是代码编辑区,上面是菜单栏(File、Edit、View 这些),下面是输出窗口。
      操作:随便新建个项目,或者打开一个现有项目,确保代码编辑器里有代码,这样后面测试方便。


步骤 3:在 Keil 里添加 AStyle 工具
      要把 AStyle 集成到 Keil 里,咱们得通过 “Tools” 菜单加个自定义工具。
      1. 打开设置:
          - 点击菜单栏的 Tools(工具),下拉菜单里选 Customize Tools Menu(自定义工具菜单)。
          - 界面描述:弹出一个窗口,标题是 “Customize Tools Menu”,里面是个列表,列出当前自定义的工具(默认可能是空的)。
      2. 添加新工具:
          - 点击窗口右边的 New 按钮(一个加号图标),输入框里会让你填个名字。
          - 输入一个好记的名字,比如 “Format with AStyle”(格式化代码),然后点旁边的小箭头确认。
      3. 设置命令:
          - 在 “Command” 一栏,点右边的小文件夹图标,浏览到你放 AStyle.exe 的地方,比如 D:\Program Files (x86)\astyle-3.6.7-x64\astyle.exe,选好后点确定。
          - 界面描述:这时候 “Command” 里应该显示完整的路径,比如 D:\Program Files (x86)\astyle-3.6.7-x64\astyle.exe。
      4. 设置参数:
          - 在 “Arguments” 一栏,输入 AStyle 的格式化参数。参数决定了代码格式化的风格,咱们先用个简单点的:
-n !E --style=allman -p -s4 -S -f -w -xw --add-braces
     解释:
          -n:不生成备份文件,直接覆盖掉原来的文件
          --style=allman:大括号另起一行(Allman 风格)。
          -s4:缩进用 4 个空格。
          -p:运算符两边加空格(比如 a+b 变成 a + b)。
          -S:switch里面的case缩进一层,结构更分明。
          -f:空的{}强制换行,统一格式。
          -w:多行条件语句加括号(比如 if(a&&b) 变成 if(a&&b){})。
          -xw:while/do-while循环体再缩进一层。
          --add-braces:为单行 if、else、while 等语句添加大括号。
          !E:这是 Keil 的占位符,表示当前编辑的文件。
      输入完后,检查一下,别打错了。

      5. 初始目录留空:
          “Initial Folder” 这栏不用填,留空就行,Keil 会自动找当前项目路径。
      6. 保存设置:
          点窗口底部的 OK,关掉设置窗口。


步骤 4:测试一下效果
      配置好了,咱们试试看能不能用。
      1. 写点乱码:
          在 Keil 编辑器里随便写几行乱糟糟的代码,比如:
int main(){int a=1,b=2;if(a>b)printf("yes");else printf("no");}
     这代码挤一块,缩进没有,阅读起来巨难受。

      2. 运行 astyle:
          点击菜单栏 Tools,下拉菜单里应该能看到刚加的 “Format with AStyle”,点一下。
          界面描述:屏幕可能会闪一下(AStyle 在后台跑),然后代码自动变整齐了,比如:
int main()
{
    int a = 1, b = 2;

    if(a > b)
    {
        printf("yes");
    }
    else
    {
        printf("no");
    }

    while(1);
}


      3. 检查结果:
          看看代码是不是按你设的参数变漂亮了?大括号另起一行,缩进 4 个空格,运算符两边有空格,完美!

第三部分:进阶,定制你的专属风格

3.1 参数详解:调整成你想要的样子
      AStyle 的强大之处在于参数超灵活,你可以按自己的喜好调风格。下面是一些常用参数,试着改改看:
          --style=:选择代码风格
          --style=allman:大括号另起一行(经典风格)。
          --style=java:大括号不换行,跟在行尾。
          --style=kr:K&R 风格,大括号另起一行但更紧凑。
          -sN 或 --indent=spaces=N:缩进用 N 个空格,比如 -s2 是 2 个空格。
          -tN 或 --indent=tab=N:缩进用 Tab,Tab 等于 N 个空格。
          -p 或 --pad-oper:运算符两边加空格。
          -P 或 --pad-paren:括号内外加空格(比如 ( a ))。
          -f 或 --break-blocks:if/else 等块前后加空行。
          -S 或 --indent-switches:switch-case 里的 case 再缩进一层。
      想看更多参数?打开命令行,进入 AStyle 文件夹,输入 AStyle.exe -h,会列出所有选项。


3.2 修改参数的方法
      1. 回到 Keil 的 Tools -> Customize Tools Menu。
      2. 找到 “Format with AStyle”,点开编辑。
      3. 在 “Arguments” 里改参数,比如改成 -n !E --style=java -p -s4 -S -f -w -xw --add-braces。
      保存后重新跑一次,代码风格就变了。


3.3 设置快捷键:一键格式化
      每次点菜单太麻烦?给它绑个快捷键吧!
          1. 打开 Edit -> Configuration -> ShortoutKeys。
          2. 选择 “Tool: Format with AStyle”。
          3. 点击 “Create Shortcut”
          4. 在 “Press shortcut” 框里按你喜欢的键,比如 Ctrl+Alt+F。
          5. 点击 “OK”,然后保存。
      以后写完代码,按 Ctrl+Alt+F,秒变整齐!


第四部分:常见问题解答

4.1 格式化后代码没变咋办?
      - 检查 AStyle.exe 路径对不对。
      - 参数里是不是少了 !E,这个是必须的。
      - 确保文件保存过,AStyle 只处理保存后的文件。

4.2 想格式化整个项目咋弄?
      - AStyle 默认只处理当前文件,想批量处理得写个脚本,或者用命令行跑 AStyle.exe *.c。

4.3 风格不喜欢咋调?
      - 多试试参数,找到喜欢的组合,记下来。

结尾:从此告别乱码,享受整齐人生
      用了 AStyle 之后,你会发现写代码不再是体力活,而是种享受。代码整齐了,心情好了,效率也高了。以后再也不用为格式问题头疼,团队协作也更顺畅。赶紧试试吧,别再手动调整了,2025 年了,咱们得用点高科技啊!


使用特权

评论回复
沙发
huquanz711| | 2025-3-4 19:15 | 只看该作者
用VScode或eclipse这样的编辑软件不好吗?

使用特权

评论回复
板凳
海市蜃楼神秘| | 2025-3-4 20:49 | 只看该作者
之前用过,但是后来换了公司,有对应的编码规范了,就没用了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

81

帖子

7

粉丝