通过前面的学习,我们已经了解了如何在 MDK5 里面建立属于自己的工程。下面,我们将向大家介绍 MDK5 软件的一些使用技巧,这些技巧在代码编辑和编写方面会非常有用。
文本美化,主要是设置一些关键字、注释、数字等的颜色和字体。MDK 提供了我们自定义字体颜色的功能。
1.我们可以在工具条上点击配置对话框弹出下图界面:
在该对话框中,先设置 Encoding 为:Chinese GB2312(Simplified),然后设置 Tab size 为:4。以更好的支持简体中文(否则,拷贝到其他地方的时候,中文可能是一堆的问号),同时 TAB 间隔设置为 4 个单位。
2.然后,选择:Colors&Fonts 选项卡,在该选项卡内,我们就可以设置自己的代码的子体和颜色了。由于我们使用的是C语言,故在Window下面选择:C/C++ Editor Files在右边就可以看到相应的元素了。
3.点击各个元素修改为你喜欢的颜色(注意双击,且有时候可能需要设置多次才生效,MDK 的 bug),当然也可以在 Font 栏设置你字体的类型,以及字体的大小等。设置成之后,点击 OK,就可以在主界面看到你所修改后的结果:
字体大小,则可以直接按住:ctrl+鼠标滚轮,进行放大或者缩小,或者也可以在刚刚的配置界面设置字体大小。
细心的读者可能会发现,上面的代码里面有一个 u8,还是黑色的,这是一个用户自定义的关键字,为什么不显示蓝色(假定刚刚已经设置了用户自定义关键字颜色为蓝色)呢?这就又要回到我们刚刚的配置对话框了,单这次我们要选择 User Keywords 选项卡,同样选择:C/C++Editor Files,在右边的 User Keywords 对话框下面输入你自己定义的关键字:
这样在以后的代码编辑里面只要出现这三个关键字,肯定就会变成蓝色。点击 OK,再回到主界面,可以看到 u8 变成紫红色了:
MDK4.70 以上的版本,新增了代码提示与动态语法检测功能,使得 MDK 的编辑器越来越好用了,这里我们简单说一下如何设置,同样,点击配置对话框 ,打开配置对话框,选择 Text Completion选项卡。
Strut/Class Members,用于开启结构体/类成员提示功能。
Function Parameters,用于开启函数参数提示功能。
Symbols after xx characters,用于开启代码提示功能,即在输入多少个字符以后,提示匹配的内容(比如函数名字、结构体名字、变量名字等),这里默认设置 3 个字符以后,就开始提示。
Dynamic Syntax Checking,则用于开启动态语法检测,比如编写的代码存在语法错误的时候,会在对应行前面出现“叉号”图标,如出现警告,则会出现“警告”图标,将鼠标光标放图标上面,则会提示产生的错误/警告的原因。
这几个功能,对我们编写代码很有帮助,可以加快代码编写速度,并且及时发现各种问题。不过这里要提醒大家,语法动态检测这个功能, 有的时候会误报如 (比如 sys.c 里面,就有很多误报),大家可以不用理会,只要能编译通过(0 错误,0 警告),这样的语法误报,一般直接忽略即可。
###三、代码编辑技巧
这里给大家介绍几个我常用的技巧,这些小技巧能给我们的代码编辑带来很大的方便,相信对你的代码编写一定会有所帮助。
1 )TAB 键的妙用
首先要介绍的就是 TAB 键的使用,这个键在很多编译器里面都是用来空位的,每按一下移空几个位。如果你是经常编写程序的对这个键一定再熟悉不过了。但是 MDK 的 TAB 键和一般编译器的 TAB 键有不同的地方,和 C++的 TAB 键差不多。MDK 的 TAB 键支持块操作。也就是可以让一片代码整体右移固定的几个位,也可以通过 SHIFT+TAB 键整体左移固定的几个位。
假如我们的例程长这样:
这样的代码大家肯定不会喜欢,这还只是短短的十来行代码,如果你的代码有几千行,全部是这个样子,不头大才怪。看到这样的代码我们就可以通过 TAB 键的妙用来快速修改为比较规范的代码格式。
选中一块然后按 TAB 键,你可以看到整块代码都跟着右移了一定距离:
接下来我们就是要多选几次,然后多按几次 TAB 键就可以达到迅速使代码规范化的目的,最终效果如下:
经过这样的整理之后,整个代码一下就变得有条理多了,看起来很舒服。
2 )快速定位函数 / 变量被定义的地方
大家在调试代码或编写代码的时候,一定有想看看某个函数是在那个地方定义的,具体里面的内容是怎么样的,也可能想看看某个变量或数组是在哪个地方定义的等。尤其在调试代码或者看别人代码的时候,如果编译器没有快速定位的功能的时候,你只能慢慢的自己找,代码量比较少还好,如果代码量一大,那就郁闷了,有时候要花很久的时间来找这个函数到底在哪里。
型号 MDK 提供了这样的快速定位的功能,只要你把光标放到这个函数/变量(xxx)的上面(xxx 为你想要查看的函数或变量的名字),然后右键,弹出下图所示的菜单栏 :
我们找到 Go to Definition Of‘delay_init’ 这个地方,然后单击左键就可
以快速跳到 delay_init 函数的定义处(注意要先在 Options for Target 的 Output 选项卡里面勾选Browse Information 选项,再编译,再定位,否则无法定位!)
对于变量,我们也可以按这样的操作快速来定位这个变量被定义的地方,大大缩短了你查找代码的时间。细心的大家会发现上面还有一个类似的选项,就是 Go to Reference To‘delay_init’,这个是快速跳到该函数被声明的地方,有时候也会用到,但不如前者使用得多。
很多时候,我们利用 Go to Definition/ Reference 看完函数/变量的定义/申明后,又想返回之前的代码继续看,此时我们可以通过 IDE 上的“返回”按钮(Back to previous position)快速的返回之前的位置,这个按钮非常好用!
3 )快速注释与快速消注释
接下来,我们介绍一下快速注释与快速消注释的方法。在调试代码的时候,你可能会想注释某一片的代码,来看看执行的情况,MDK 提供了这样的快速注释/消注释块代码的功能。也是通过右键实现的。这个操作比较简单,就是先选中你要注释的代码区(这里假设全选),然后右键,选择Advanced->Comment Selection 就可以了。
效果图如下:
这样就快速的注释掉了一片代码,而在某些时候,我们又希望这段注释的代码能快速的取消注释,MDK 也提供了这个功能。与注释类似,先选中被注释掉的地方,然后通过右键->Advanced,不过这里选择的是 Uncomment Selection。
除了前面介绍的几个比较常用的技巧,这里还介绍几个其他的小技巧,希望能让你的代码编写如虎添翼。
第一个小技巧是快速打开头文件。在将光标放到要打开的引用头文件上,然后右键选择 OpenDocument “XXX”,就可以快速打开这个文件了:(XXX 是你要打开的头文件名字)
第二个小技巧是查找替换功能。这个和 WORD 等很多文档操作的替换功能是差不多的,在 MDK 里面查找替换的快捷键是“CTRL+H”,只要你按下该按钮就会调出如下界面:
这个替换的功能在有的时候是很有用的,它的用法与其他编辑工具或编译器的差不多,不再多说。
第三个小技巧是跨文件查找功能,先双击你要找的函数/变量名(这里我们还是以系统时钟初始化函数:delay_init 为例),接着按图中步骤:
点击 Find,MDK 就会帮你找出所有含有 delay_init 字段的文件并列出其所在位置。该方法可以很方便的查找各种函数/变量,而且可以限定搜索范围(比如只查找.c 文件和.h文件等),是非常实用的一个技巧。