转:http://blog.csdn.net/tlaff/article/details/6536610

在使用SI过程中,我根据自己的使用习惯修改了它的默认快捷键,并且在配置文件中添加了一些人性化功能,下面一一介绍:

修改快捷键:Options->Key Assignments...

1.main window:Esc       2.Hight light:Middle Mouse

3.Go Back:Alt+z              4.Go Forward:Alt+x

5.Caller:Alt+c                  6.Reference:Alt+r

7.Previous Link:Alt+a    8.Next Link:Alt+s

9.First Link:Alt+d

10.Go Line:Alt+g           11.Select Line:Alt+l

12.Symbol Win:Alt+q    13.Activate SW:Alt+w

14.Projcet Win:Alt+[       15.Activate PW:Alt+]

16.Contex Win:Alt+,     17.Activate CW:Alt+.

18.Relation Win:Alt+;   19.Activate RW:Alt+'

20.Select All:Ctrl+a          21.Save All:Ctrl+Shift+a

22.Browse Project Symbols:Alt+b

添加一些配置文件宏,比如:注释掉代码:单行注释、多行注释,将选中内容注释掉;在一行代码的前、后添加注释性文字等。

打开Projcet->Open project,选择base,可以看到utils.em文件,将下列宏添加到该文件中,并在其他工程里加入该文件,

在上面介绍的快捷键添加方式里找到该宏并自定义快捷键。

单行、多行注释:

macro MultiLineComment()
{
hwnd = GetCurrentWnd()
selection = GetWndSel(hwnd)
LnFirst = GetWndSelLnFirst(hwnd) //取首行行号
LnLast = GetWndSelLnLast(hwnd) //取末行行号
hbuf = GetCurrentBuf() if(GetBufLine(hbuf, ) == "//magic-number:tph85666031"){
stop
} Ln = Lnfirst
buf = GetBufLine(hbuf, Ln)
len = strlen(buf) while(Ln <= Lnlast) {
buf = GetBufLine(hbuf, Ln) //取Ln对应的行
if(buf == ""){ //跳过空行
Ln = Ln +
continue
} if(StrMid(buf, , ) == "/") { //需要取消注释,防止只有单字符的行
if(StrMid(buf, , ) == "/"){
PutBufLine(hbuf, Ln, StrMid(buf, , Strlen(buf)))
}
} if(StrMid(buf,,) != "/"){ //需要添加注释
PutBufLine(hbuf, Ln, Cat("//", buf))
}
Ln = Ln +
} SetWndSel(hwnd, selection)
}

将上面的代码保存到utils.em文件,打开source
insight,将该文件添加到工程中,然后在Options->Key
Assignments中你就可以看到这个宏了,宏的名字是MultiLineComments,然后我们为它分配快捷键“Ctrl +
/”,然后就可以了。

这是一份添加“#ifdef 0”和“#endif”的宏代码,定义快捷键为Ctrl+#:

macro AddMacroComment()
{
hwnd=GetCurrentWnd()
sel=GetWndSel(hwnd)
lnFirst=GetWndSelLnFirst(hwnd)
lnLast=GetWndSelLnLast(hwnd)
hbuf=GetCurrentBuf() if(LnFirst == ) {
szIfStart = ""
}else{
szIfStart = GetBufLine(hbuf, LnFirst-)
}
szIfEnd = GetBufLine(hbuf, lnLast+)
if(szIfStart == "#if 0" && szIfEnd == "#endif") {
DelBufLine(hbuf, lnLast+)
DelBufLine(hbuf, lnFirst-)
sel.lnFirst = sel.lnFirst –
sel.lnLast = sel.lnLast –
}else{
InsBufLine(hbuf, lnFirst, "#if 0")
InsBufLine(hbuf, lnLast+, "#endif")
sel.lnFirst = sel.lnFirst +
sel.lnLast = sel.lnLast +
} SetWndSel( hwnd, sel )
}

这份宏的代码可以把光标所在的行注释掉,定义快捷键为Ctrl+*:

macro CommentSingleLine()
{
hbuf = GetCurrentBuf()
ln = GetBufLnCur(hbuf)
str = GetBufLine (hbuf, ln)
str = cat("/*",str)
str = cat(str,"*/")
PutBufLine (hbuf, ln, str)
}

将一行中鼠标选中部分注释掉,定义快捷键为Ctrl+shift+*:

macro CommentSelStr()
{
hbuf = GetCurrentBuf()
ln = GetBufLnCur(hbuf)
str = GetBufSelText(hbuf)
str = cat("/*",str)
str = cat(str,"*/")
SetBufSelText (hbuf, str)
}

在一行代码前添加注释性文字,定义快捷键为Alt+/:

在一行代码前添加注释性文字,定义快捷键为Alt+\:

最后是source insight与宏有关的资源:

Source Insight常用快捷键及注释快捷键设置的更多相关文章

  1. Source Insight 常用设置和快捷键大全

    Source Insight 常用设置和快捷键大全 退出程序 : Alt+F4 重画屏幕 : Ctrl+Alt+Space 完成语法 : Ctrl+E 复制一行 : Ctrl+K 恰好复制该位置右边的 ...

  2. Source Insight 常用设置

    1.背景色选择 要改变背景色Options->preference->windows background->color设置背景色2.解决字符等宽对齐问题    SIS默认字体是VE ...

  3. Source Insight常用功能设置

    熟悉工具的使用能在一定程度上提高工作效率,但工具永远只是工具,大家要把重点放在内功的修炼上. 符号导航 符号(变量.宏定义.结构定义.枚举.函数等等)在SI 中的检索非常方便.Ctrl+鼠标左键或Ct ...

  4. 让Source Insight完美支持中文注释

    如何让source insight支持中文注释,解决回车删除,移动光标出现乱码的问题?下面是解决方案:     -------Source Insight3 中文操作(左右键.删除和后退键)支持宏-- ...

  5. ultraEdit32 /uedit32 自定义快捷键/自定义注释快捷键

    编辑器一直用vim,但同事写VHDL 用的是utraledit32 ,为了更好的沟通,我也下载了最新破解版本:http://pan.baidu.com/s/1qWCYP2W 刚开始用找不到注释的快捷键 ...

  6. Source Insight 4.0相对路径的设置

    比如在D盘有个51的Firmware工程 里面有几个文件夹存放程序文件,项目文件在Project文件夹里,也就是整个Firmware里的文件都是有用的. Keil项目文件位置. 到这里就可以双击Tem ...

  7. source insight常用设置问题

    http://www.cnblogs.com/bluestorm/archive/2012/10/28/2743792.html

  8. Source Insight中代码块注释

    转载:http://blog.csdn.net/cindylx422/article/details/7560786 修改工程目录下的utils.em文件,将下面代码添加到末尾,然后将此文件添加到工程 ...

  9. Source Insight基本使用和快捷键

    Source Insight基本使用和快捷键 为什么要用Source Insight呢?貌似是因为比完整的IDE要更快一些,比较利于查看大量的代码. 软件的安装很简单,设置好安装目录. 配置好文档路径 ...

随机推荐

  1. C++大数据处理

    转:http://blog.csdn.net/v_july_v/article/details/7382693 作者:July出处:结构之法算法之道blog 前言 一般而言,标题含有“秒杀”,“99% ...

  2. Windows内核分析——内核调试机制的实现(NtCreateDebugObject、DbgkpPostFakeProcessCreateMessages、DbgkpPostFakeThreadMessages分析)

    本文主要分析内核中与调试相关的几个内核函数. 首先是NtCreateDebugObject函数,用于创建一个内核调试对象,分析程序可知,其实只是一层对ObCreateObject的封装,并初始化一些结 ...

  3. Android 下使用 JSON 实现 HTTP 请求,外加几个示例!

    不得不说,JSON 格式的确是非常美妙的,速度快而且简化了很多操作在 Android 下,Android SDK 已经为我们封装好了整个与 JSON 有关的操作,使用非常方便 以下就是一个标准的 JS ...

  4. python平均值和加权平均值

    In [15]: import numpy as np In [16]: a=(70,80,60) In [17]: np.mean(a) #平均值 Out[17]: 70.0 In [18]: np ...

  5. Docker数据卷和Docker系统管理(二)

    一. 在镜像中定义卷 1. Dockerfile中定义卷的案例 VOLUME /app/data VOLUME /app/data, /app/profiles, /app/config VOLUME ...

  6. Nodejs JSON.parse()无法解析ObjectID和ISODate的问题

    一个早上搞清楚了一个问题,关于Nodjes JSON.parse()方法只能解析字符串.布尔值.数字等,但不能解析ObjectID及ISODate的值 原因:<How to handle Obj ...

  7. 转:perl源码审计

    转:http://www.cgisecurity.com/lib/sips.html Security Issues in Perl Scripts By Jordan Dimov (jdimov@c ...

  8. JavaScript的类型体系

    一:总体的类型系 基本类型:数字类型(number),字符串类型(string),布尔类型(boolean); 复合类型:对象(对象,函数,数组等); 无类型:null(有定义),undefined( ...

  9. Shiro的鉴权方式

    一. 怎么用 Shiro 支持三种方式的授权 编程式:通过写 if/else 授权代码块完成: Subject subject = SecurityUtils.getSubject(); if(sub ...

  10. 使用Jedis

    前言 借助Jedis可以在Java上操作Redis. Jedis 到https://mvnrepository.com/去找jar包下载即可. 如果是maven项目: <!-- https:// ...