最近在实验室做一些 Zigbee 相关的事情,然而一直没在博客上记录啥东西,也不像原来在公司有动力在 Confluence wiki 上扯东扯西。直到前些阵子,跑到 feibit 论坛上(国内较大的一个 Zigbee 社区),发现有不少刚接触 Zigbee 的朋友,在上面提问;其中有不少问题,我或多或少接触了一些,于是心想,索性在博客上开辟一个类别扯扯 Zigbee 好了。

一来,可以做为一个记录,尤其是今天碰到一个计算结构体偏移量的宏定义,想起之前在 blogspot 上写过一篇「赞叹」Linux list 数据结构的博客(需翻墙),不禁略感慨,的确是好记性不如烂笔头。二来,是昨晚看到一篇《8 张图助你更好地理解 Java 编程》,不由得想起之前学习 Python 的一段时间,虽然时间较短,但完整阅读了 Python TutorialPython 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的更多相关文章

  1. 前端构建工具之gulp(一)「图片压缩」

    前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ...

  2. fir.im Weekly - 如何打造 Github 「爆款」开源项目

    最近 Android 转用 Swift 的传闻甚嚣尘上,Swift 的 Github 主页上已经有了一次 merge>>「Port to Android」,让我们对 Swift 的想象又多 ...

  3. 更新日志 - fir.im「高级统计」功能上线

    距离 2016 年到来只剩 10 个日夜,fir.im 也准备了一些新鲜的东西,比如「高级统计」功能和「跳转应用商店」功能,帮助你更好地管理.优化应用,欢迎大家试用反馈:) 新增高级统计功能 这次更新 ...

  4. Notepad++ 开启「切分窗口」同时检视、比对两份文件

    Notepad++ 是个相当好用的免费纯文本编辑器,除了内建的功能相当多之外,也支持外挂模块的方式扩充各方面的应用.以前我都用 UltraEdit 跟 Emeditor,后来都改用免费的 Notepa ...

  5. 「C语言」文件的概念与简单数据流的读写函数

    写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...

  6. 「C语言」Windows+EclipseCDT下的C语言开发环境准备

    之前写过一篇 「C语言」在Windows平台搭建C语言开发环境的多种方式 ,讨论了如何在Windows下用DEV C++.EclipseCDT.VisualStudio.Sublime Test.Cl ...

  7. 转:【工欲善其事必先利其器】—Entity Framework实例详解

    开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/ ...

  8. 如何对抗 WhatsApp「蓝色双勾」-- 3 个方法让你偷偷看讯息

    WhatsApp 强制推出新功能「蓝色双勾 (✔✔)」 ,让对方知道你已经看过讯息.一众用户反应极大,因为以后不能再藉口说未看到讯息而不回覆.究竟以后 WhatsApp 是否真的「更难用」? 幸好还有 ...

  9. FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...

随机推荐

  1. Selenium + PhantomJS + python 简单实现爬虫的功能

    Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...

  2. 自动化脚本过程中出现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 ...

  3. nodejs & nodemailer

    nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...

  4. tcp协议-http协议-time-wait-close-wait必知

     前言:  tcp四次挥手过程中,谁主动断开,谁有time_wait,被动断开一方会有close_wait time_wait:保持端口占用2mls~4min,避免对方还有一些tcp片发往这个端口,新 ...

  5. js根据className获取元素封装

    虽然有了getElementsByClassName,但是ie低版本不支持,所以我们需要单独定义一个getByClass function getByClass(className,parent){ ...

  6. 学习java第二天

    首先我们要知道,java是特分大小写的,基本上分为 类名 我们统一小写 如果是多级的 我们用点来隔开 比如 file.test.number1,类或者接口的话基本上大家都是首字母大写,常量全部大写,然 ...

  7. python之fabric(二):执行模式(转)

    执行模式 执行模式可以让你在多个主机上执行多个任务. 执行策略: 默认fabric是单个有序地执行方法,其行为如下: 1. 创建一系列任务,通过fab任务执行要执行的任务: 2. 根据主机列表定义,去 ...

  8. 线程池的使用ExecutorService

    private ExecutorService executorService = Executors.newFixedThreadPool(5); // 引入线程池来管理多线程 private vo ...

  9. jquery remove/add css

    <input type="submit" class="btn btn-primary" id="submit" value=&quo ...

  10. python生成器和迭代器

    生成器:具有生成能力的对象 迭代器:具有取值功能的对象 def func(): yield 1 yield 2 yield 3 ret = func() #func()函数体称为生成器 r=ret._ ...