SourceInsight使用技巧

没错,本文介绍的就是饱受众多c++程序员喜爱的SourceInishgt。以下简称SI。本文主要介绍基于3.5。因为最新的4.x版本存在不稳定的问题。为了不影响工作,暂时不向上更新。 

SI作为一款神级代码编辑器,常见的SI使用技巧,网络上已经前人已经写了很多文章。但是,很多人还没有完全挖掘出它的威力。


本人的SI 3.5 配置文件

链接:https://pan.baidu.com/s/1hspgDTE 密码:c719

如果过期下载不到,可以留言联系我。


语义配色

在我第一次使用SI的时候,着实被它各种便捷的操作惊艳了一把。

但是我还是感觉原生默认的代码主题配色不好,没有发挥颜色的作用。

我自己手动把c++里面常见的各种语义全部重新配置了一遍。

蓝色 -- 方法(不管是方法调用,还是方法定义)

红色 -- 语法关键字(if else int for float bool 等)

灰色 -- 所有SI语义分析能关联到的变量

白色 -- 所有SI语义分析不能关联到的变量、方法、类名

黄色 -- 类名

灰色背景 -- 函数的参数

这样,以上面发的两张图为例,一个常见的方法里面,大部分情况下是红色、蓝色、灰色,一两个白色和黄色单词。

把代码颜色的分类数降低,这个时候好处就体现出来了。一段代码展现在眼前,最初步的信息就自动归类好呈现在眼前。

在阅读或者调试的时候,最高频的使用场景,就是去找方法的调用链:一个函数里面调用了哪些方法?几个时候你都不用去关心其他颜色的代码,一眼就定位到了代码里面的蓝色,当然,如果你的SI工程中有一些函数的定义文件没有被你加入到工程中,这个函数没有被SI的语义分析关联定位到,也会呈现为白色。所以你就要看所有的蓝色,并留意里面白色的部分是否方法调用。

为“函数的参数”单独设置灰色的背景色,这样就算函数长达几百行,只要看到这种带有灰色背景色的变量,你就可以一目了然知道这个变量是函数的入参。

代码主题配色的作用,应该是帮助程序员更好地阅读代码,降低阅读代码的身心成本。

这个代码配色,我是仿照著名的Solarized主题。

大体的思想就是简化代码的颜色配色,突出自己最想要的信息。比如我看到一个函数,最关心的就是它里面调用了哪些函数。

大家也可以根据自己的需求和审美,制作自己的主题配色。


快捷键

高频功能的快键键,一定要首先满足三个原则:

* 要放在容易被手按到的地方。

* 能单个按键搞定的事情,就不要使用组合键。

* 能使用按键,就不要使用SI窗口上方的工具栏按钮(鼠标点击),提供效率。

F1-F12已经全部被我用满:

F1 -- 高亮光标所在单词。(SI默认shift+F8)

F2 -- 剪切整行 (被我拿来当作“删除当前行”来用,此操作相当高频)

F3/F4 -- 对光标当前的语义,向前查找跳转或向后查找跳转(SI默认shift+F3/F4)

F5 -- 跳到特定行

F6 -- 注释当前行或选中行( 网络上已有前人提供 )

F7 -- 工程全局symbol查找窗口

F8 -- 当前文件symbol查找窗口

F9/F10 -- 代码的缩进调节

F11 -- 自动打开当前文件所在的文件夹窗口(网络上已有前人提供)

F12 -- 全局搜索

ctrl+o -- 自动跳转光标到project window

ctrl+h -- 替换

ctrl+M -- 设置书签(频繁在几个固定的地方跳转调试)

修改配置快键键的地方

按照我上述的快捷键布置。左手掌心基本不用移动,光动用左手手指就可以包办常见最高频的几个操作。

鼠标右键

把鼠标右键设置为往回跳转,搭配ctrl+鼠标左键使用!

在编程的时候,最高频的操作就是:

1、阅读函数A源码

2、A中调用了函数B,跳转到函数B的定义查看实现代码

3、再跳转回函数A继续往下阅读。

这种使用场景,SI的使用者可能分为以下两种情况:

姿势一:ctrl+左键 跳转到函数B的实现 --> 查看完函数B代码-->工具栏window按钮跳转回函数A所在文件-->再左边symbol窗口定位到函数A-->从头开始读A,找到刚才调用函数B的地方。

采用姿势一,程序员要付出了时间和极大的“心理成本”... 

特别是在项目里有几十上百个cpp文件,每个文件短则几百,长则1万行的工程里。这样的繁琐费事的跳转操作,频频打断阅读代码的思维 ... 

处理一个简单的小bug这样倒腾3、4回,你就会觉得自己被掏空了一半;一个中等难度的bug就会让你感觉被100%掏空。

姿势二:ctrl+左键 跳转到函数B的实现 --> 查看完函数B代码-->alt+< 直接跳转回来。

采用姿势二,根据上面说的快捷键的设置原则:能用一个键搞定的事情就不用使用两个键。

以我自己的使用经验来看,对于频繁使用两个手指的组合键操作,我的内心其实是抵触的。

这个时候就引入了姿势三:

姿势三:ctrl+左键 跳转到函数B的实现 --> 查看完函数B代码-->鼠标右键直接跳转回来。

修改方法就是,在上面说的KeyAssignment里面,搜索Go Back,选择Assign New Key,然后点击鼠标右键。

如果你的Keystrokes栏目里面有R Click,就表示设置成功了。

并且,右键往回跳转这个也是多级的。比如,你可以从A-B-C-D-E-F,一路调用栈跟踪阅读下去,然后从F开始依次点鼠标右键跳回到E D C B A。

大多数时候,鼠标右键菜单里面的功能其实根本没必要使用。最常见的无非就是复制粘贴。我们当然应该选择ctrl+C/V大法...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容