加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

教你一键搞定MDK的代码格式化了

03/08 08:40
4112
阅读需 6 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

大三那年刚刚开始学习C语言的时候,使用的IDE就是Keil,那时候也没见过什么其他高大上的IDE,觉得Keil还不错。

单片机老师授课时告诉我们,程序员不能习惯用鼠标,而是使用键盘进行所有的代码编辑,彼时学了不少快捷键,手指也能够在字母,数字和翻页,方向键之间游刃有余。

如今工作了十几年,键盘打的快一点,满屏的错别字,往事不堪回首啊,现在我最熟练的就是Ctrl C和Ctrl V。

今天给大家展示一个MDK(也就是Keil升级后的版本)的自动格式化代码工具,真的可以做到一键搞定代码格式,看起来即美观,又清爽。

这个插件就是Artistic Style。

先介绍功能

Artistic Style是一个用于C、C++、C++/CLI、J2EE-C、C#和Java编程语言的源代码缩进器、格式化器和美化器。它是用C++编写的,可以从命令行使用,也可以作为库合并到其他程序中。可以从命令行或选项文件输入选项。库版本可以从用C++以外的语言编写的程序中调用。

如何安装和配置

我的MDK版本是V5.37.0.0

首先,把文件拷贝到MDK的安装目录中,总之放到不容易丢,容易找到的地方。

然后,我们打开工程,在菜单里面选择Tools下面的Customize Tools Menu,如下图所示:

在Customize Tools Menu的对话框中,我们可以添加用户自定义的命令,并且配置相关的参数。

其中的Menu Content可以随便填,也是支持中文的。

我就添加了两个命令,一个是Fomat Project,一个是Fomat Current File。顾名思义,它们可以对整个工程进行格式话,也可以对当前打开的文件进行格式化。

工具路径这里直接索引到我们前面拷贝的工具目录中的exe可执行文件,这里放在keil安装目录下 的好处就是可以很容易的找到。

保存上面的设置之后,我们回到工程界面中,再从菜单中打开Tools下来菜单,就会发现我们的下来菜单中多出来两个命令,没错,就是我们之前添加的两个命令。现在我们就可以直接点击他们进行代码格式化了。

看几个例子吧

首先,这个工具可以对代码和注释进行对齐操作,这也是最基本的,也是作为程序应该遵守的底线。

格式化前:

格式化后:

下面的例子中,我将对齐打乱,将花括号也打乱了,使用格式化工具后,一下子就清爽了。

格式化后:

我又在格式化好的基础上,增添了很多空行,且在注释中也增加了许多空格,这些也是我们在Ctrl+C 和Ctrl+V代码的时候经常会出现的情况,如下图所示

经过工具格式化后,我们可以看到,他按照gnu的风格格式化,并且注释部分的空格删掉,只保留了一个。

再来看一个例子,我将led的初始化代码中的多条语句写到一行,还有,我把赋值语句后面的多个参数也都排在一行里,这个工具会非常聪明的帮我们分开。

格式化前:

格式化后

快捷键的设置

我们再谈谈如何一键操作,

首先回到我们的工程界面,在菜单栏中选择Edit下拉菜单后,选中我们常用的小扳手 → Configuration。

在Configuration中,我们选择Shortcut Keys选项卡,在左边的命令列表中找到我们刚刚添加的两条指令,然后点击右边的Create Shortcut按钮为其设置一个快捷键。

一般我是用Ctrl+某个字母作为快捷键的,毕竟我Ctrl+C和Ctrl+V用的太熟练了。

这里我选择使用Ctrl+F,注意,一定要选择没有被使用过的,如果不小心选择了Ctrl+C的话,我们编程的能力可能会急剧下降!

OK,尽情的体验Ctrl的快感吧。

简单的测试指令如下:


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

怎么下载?

关注公众号,发送Astyle,即可获取软件包链接。

如果需要调整好的指令,可以点击阅读原文获取更多指令和介绍。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
LTC6906HS6#TRMPBF 1 Linear Technology LTC6906 - Micropower, 10kHz to 1MHz Resistor Set Oscillator in SOT-23; Package: SOT; Pins: 6; Temperature Range: -40°C to 125°C
暂无数据 查看
S25FL512SAGBHIA13 1 Spansion Flash, 128MX4, PBGA24, FBGA-24
$59.58 查看
HCNR201-300E 1 Agilent Technologies Inc Transistor Output Optocoupler, 1-Element, 5000V Isolation,
$5.9 查看

相关推荐

电子产业图谱

多年硬件从业经验,专注分享从研发到供应链,再到精益制造过程中的经验和感悟!