没错,本文介绍的就是饱受众多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大法...