没错,本文介绍的就是饱受众多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主题。
大体的思想就是简化代码的颜色配色,突出自己最想要的信息。比如我看到一个函数,最关心的就是它里面调用了哪些函数。
大家也可以根据自己的需求和审美,制作自己的主题配色。
快捷键
我直接列出我的快键键设置。
F1-F12已经全部被我用满:
F1 -- 高亮
F2 -- 剪切整行 (被我拿来当作“删除当前行”来用)
F3 F4 -- 对光标当前的语义,向前查找跳转或向后查找跳转
F5 -- 跳到特定行
F6 -- 注释光标所在行,或注释被选中区域所在的几行(可以google到的SI宏插件,自行搜索)
F7 -- 工程全局symbol查找窗口
F8 -- 当前文件symbol查找窗口
F9 F10 -- 代码的缩进调节
F11 -- 自动打开当前文件所在的文件夹窗口(可以google到的SI宏插件,自行搜索)
F12 -- 全局搜索
ctrl+o -- 自动跳转光标到project window
ctrl+h -- 替换
这两个按键,搭配F12全局搜索使用
ctrl+M -- 设置书签(频繁在几个固定的地方跳转调试)
修改配置快键键的地方
这个设置的原则是,高频使用的功能,就要放在容易被手按到的地方。
能一个键搞定的事情,就不要用两个组合按键来折磨自己。
像F1高亮,F2删除整行,F3 F4这样如此高频的功能,我个人每天在工作中不知道要按这些功能几十上百次。
你难道真的要用SI原生的那样,shift+F8,鼠标选中当前行再按删除键, shift+F3/F4来代替吗?这不是自找麻烦?
文末大招! 鼠标右键!
把鼠标右键设置为往回跳转,搭配ctrl+鼠标左键使用!
这个功能我第一次在我同事那边看到的时候,直接被它的便捷给吸引到。
在编程的时候,最高频的操作是什么?就是跳转到这个函数的定义,看一下它的内部实现。看完了,再跳回来。相信大家都熟悉ctrl+鼠标左键,这个就是跳转到函数的定义。但是再跳回来呢?这里有一些朋友居然不知道alt+<的快键键。最麻烦的操作就是:阅读函数A,A内部调用了B,跳转到了函数B的定义。B看完了,想回到A,接着刚刚的地方往下看。这个时候往往B和A在不同的文件里,于是他们点开SI的上方的window条目跳回到之前A所在的文件。
然后再在SI的symbol window里面敲... 去搜索刚刚A函数的名字。
终于找到了! 然而,如果这个时候A函数很长... 长达几百行,还得从函数头开始往下找,找到刚刚调用B函数的地方....
至此,不仅仅浪费了时间效率,程序员也已经付出了极大的“身心成本”... 阅读代码的思维也被这种繁琐的操作打断 ... 处理一个简单的小bug这样倒腾3、4回,你就会觉得自己被掏空了一半;一个中等难度的bug就会让你感觉被100%掏空;一个上等难度的bug会让你想死。而且往往会给你一种错觉,真麻烦,真累,所以等于“自己今天已经很努力了”...
如果会用alt+<,就可以直接跳转回来。
如果是把alt+<的功能也放到鼠标右键上,不要更爽。你就瘫在座位上,ctrl+左键跳到B的实现,看完右键一键返回原处,多爽!阅读代码起来简直和看微信文章《震惊!不转不是中国人》一样easy。(当然,博大精深的算法代码除外)。
并且,右键往回跳转这个也是多级的。比如,你可以从A-B-C-D-E-F,一路调用栈跟踪阅读下去,然后从F开始依次点鼠标右键跳回到E D C B A。
大多数时候,鼠标右键菜单里面的功能其实根本每必要使用。最常见的无非就是复制粘贴。热衷提高操作效率的你肯定应该选择ctrl C/V大法...
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。