「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization
最近在实验室做一些 Zigbee 相关的事情,然而一直没在博客上记录啥东西,也不像原来在公司有动力在 Confluence wiki 上扯东扯西。直到前些阵子,跑到 feibit 论坛上(国内较大的一个 Zigbee 社区),发现有不少刚接触 Zigbee 的朋友,在上面提问;其中有不少问题,我或多或少接触了一些,于是心想,索性在博客上开辟一个类别扯扯 Zigbee 好了。
一来,可以做为一个记录,尤其是今天碰到一个计算结构体偏移量的宏定义,想起之前在 blogspot 上写过一篇「赞叹」Linux list 数据结构的博客(需翻墙),不禁略感慨,的确是好记性不如烂笔头。二来,是昨晚看到一篇《8 张图助你更好地理解 Java 编程》,不由得想起之前学习 Python 的一段时间,虽然时间较短,但完整阅读了 Python Tutorial 和 Python Language Reference 不少章节,学习了诸如正则表达式之类的 module 等等,也做了一些实践,然而由于种种原因,并没有在博客上做什么记录,略可惜;换个角度,吃一堑长一智,别在 Zigbee 上演同样的剧情。总而言之,秉承分享和记录的双重考虑,身为 Zigbee 新手,开辟此类别。灯光场务剧本演员统统到位,action!
第一部分,先聊聊 IAR for 8051 IDE 的设置问题。我这人对编辑器之类的工具,略有点要求,类似于吃货对饮食问题很注重一样……
1. 背景 & 注释颜色。
背景颜色采用的是 RGB (240, 238, 217),注释颜色采用的是 Teal 深青色。

2. 项目内全局搜索遇到的「Failed to read "xyz" file」问题。
勾选「Match case」即可解决。另外,注意全局搜索的范围和文件类型。

3. Code Template 编辑。
代码模版还是挺好用的,只是 IAR 编辑器本身对缩进对齐的支持不太好,所以将就着用吧…… 选择「编辑模版」,然后插入自己希望使用的模板。

#TEMPLATE &LComment>&line
/* %c */
#TEMPLATE &LComment>&function
/*
*****************************************************
* @fn %c
*
* @brief %
*
* @param %
*
* @return %
*****************************************************
*/
#TEMPLATE &LComment>&header
/* ---------------------------------------------------
* %c
* ----------------------------------------------------
*/
4. 键盘快捷键。
列一下最常用的几个快捷键(其中一些并非默认的 key binding)。
|
What to perform |
Keyboard Shortcut |
|
Go to Declaration |
F2 |
|
Toggle a line bookmark (file scope) |
Ctrl + F2 |
|
Go to bookmark (file scope) |
F12 |
|
Navigate back / forward |
Alt + Left / Right |
|
Find in files |
Ctrl + Shift + F |
|
Insert Code Template (sub-menu Shortcut) |
Ctrl + Shift + Space |
|
Complete word |
Ctrl + , or Ctrl + Space |
IAR 在快捷键上的支持还是不够好,比如,如果要直接上移或者删除某个区块,都不太方便,更别提列编辑模式…… 我也很好奇,为啥不直接采用 Scintilla 开源解决方案(可直接应用到商业应用里);诸如 Notepad++ 和 SciTE 两款编辑器,CodeBlocks IDE,都是采用这个组件,体验很一致,相当棒。
ok,第一部分到此结束。
「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization的更多相关文章
- 前端构建工具之gulp(一)「图片压缩」
前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ...
- fir.im Weekly - 如何打造 Github 「爆款」开源项目
最近 Android 转用 Swift 的传闻甚嚣尘上,Swift 的 Github 主页上已经有了一次 merge>>「Port to Android」,让我们对 Swift 的想象又多 ...
- 更新日志 - fir.im「高级统计」功能上线
距离 2016 年到来只剩 10 个日夜,fir.im 也准备了一些新鲜的东西,比如「高级统计」功能和「跳转应用商店」功能,帮助你更好地管理.优化应用,欢迎大家试用反馈:) 新增高级统计功能 这次更新 ...
- Notepad++ 开启「切分窗口」同时检视、比对两份文件
Notepad++ 是个相当好用的免费纯文本编辑器,除了内建的功能相当多之外,也支持外挂模块的方式扩充各方面的应用.以前我都用 UltraEdit 跟 Emeditor,后来都改用免费的 Notepa ...
- 「C语言」文件的概念与简单数据流的读写函数
写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...
- 「C语言」Windows+EclipseCDT下的C语言开发环境准备
之前写过一篇 「C语言」在Windows平台搭建C语言开发环境的多种方式 ,讨论了如何在Windows下用DEV C++.EclipseCDT.VisualStudio.Sublime Test.Cl ...
- 转:【工欲善其事必先利其器】—Entity Framework实例详解
开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/ ...
- 如何对抗 WhatsApp「蓝色双勾」-- 3 个方法让你偷偷看讯息
WhatsApp 强制推出新功能「蓝色双勾 (✔✔)」 ,让对方知道你已经看过讯息.一众用户反应极大,因为以后不能再藉口说未看到讯息而不回覆.究竟以后 WhatsApp 是否真的「更难用」? 幸好还有 ...
- FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...
随机推荐
- Selenium + PhantomJS + python 简单实现爬虫的功能
Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...
- 自动化脚本过程中出现This element neither has attached source nor attached Javadoc...的解决方法
This element neither has attached source nor attached Javadoc and hence no Javadoc could be found Ec ...
- nodejs & nodemailer
nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...
- tcp协议-http协议-time-wait-close-wait必知
前言: tcp四次挥手过程中,谁主动断开,谁有time_wait,被动断开一方会有close_wait time_wait:保持端口占用2mls~4min,避免对方还有一些tcp片发往这个端口,新 ...
- js根据className获取元素封装
虽然有了getElementsByClassName,但是ie低版本不支持,所以我们需要单独定义一个getByClass function getByClass(className,parent){ ...
- 学习java第二天
首先我们要知道,java是特分大小写的,基本上分为 类名 我们统一小写 如果是多级的 我们用点来隔开 比如 file.test.number1,类或者接口的话基本上大家都是首字母大写,常量全部大写,然 ...
- python之fabric(二):执行模式(转)
执行模式 执行模式可以让你在多个主机上执行多个任务. 执行策略: 默认fabric是单个有序地执行方法,其行为如下: 1. 创建一系列任务,通过fab任务执行要执行的任务: 2. 根据主机列表定义,去 ...
- 线程池的使用ExecutorService
private ExecutorService executorService = Executors.newFixedThreadPool(5); // 引入线程池来管理多线程 private vo ...
- jquery remove/add css
<input type="submit" class="btn btn-primary" id="submit" value=&quo ...
- python生成器和迭代器
生成器:具有生成能力的对象 迭代器:具有取值功能的对象 def func(): yield 1 yield 2 yield 3 ret = func() #func()函数体称为生成器 r=ret._ ...