为什么要用Source Insight呢?
貌似是因为比完整的IDE要更快一些,比较利于查看大量的代码。 软件的安装很简单,设置好安装目录。
配置好文档路径,当然这个也可以在Options里面改,选Options->Preferences…里面的Folders标签就行。
Project的建立和工作区域
在菜单中选择Project->New Project…可以建立新的工程,自定义工程名,选择保存路径,然后新建。
新建确定之后,在接下来的菜单中,需要选择Project Source Directory: the main location of your source files. 比如我可以选最新的Android API 19的源码目录。
选定之后会出现Add and Remove Project Files的对话框,这时候可以选择刚才目录中的文件,然后添加进来。
Load完成之后close对话框就可以了。
可以加不同路径的代码进来。
完成之后,Project Window就出现在右边了,点击其中任意一个文件,内容就显示在中央编辑区域了。
左边是Symbol Window,可以快速定位函数、变量定义等。
下面是Context Window,显示有用的上下文相关信息。
可以通过View菜单调出或者关闭各种窗口。比如Relative Window可以显示出方法中调用的方法。
同步
在编辑区域中,键盘按下Ctrl,用鼠标单击变量或方法时,会跳到变量或方法的定义。
如果某个变量或者方法是黑色字体表示的,说明它还没有被定义。
当然有时候也不是因为没定义,需要同步一下,Project->Synchronizing Files。
查看定义
可以选中一个变量,然后右键,Jump to Definition,跳转到定义。 当然,上面提过,也可以直接Ctrl+鼠标点击。
在编辑区域内选中变量或者方法,过一两秒,Context Window会自动显示定义。
查找引用
选择一个变量或方法后右键Lookup References…就可以进行查找。
查找结果显示在一个框里,点击每条查找结果前面的红色标记(两个红色的相背的三角形),可以该条结果对应代码文件,进入代码编辑状态;
再点击代码中的查找对应行开头的红色标记可以转回查找结果页面。
工具栏上有相应的图标进行上一条和下一条的跳转。
Lookup References弹出的对话框里可以进行查询的选项配置。比如是否大小写敏感,是不查找注释还是只在注释里查找。
另外Search Method也可以选是字符串、正则、关键字、还是引用类型。
查找调用
这个是针对方法的,选中方法名,然后右键Jump to Caller,如果只有一次调用,则直接跳转,如果多次调用,则显示一个列表框,选择一项就会跳转过去。
文件中的查找可以通过菜单Search。
Source Insight常用快捷键
1.Ctrl + 鼠标单击 进入定义.
2.Alt + F12可以切换,让字符宽度变得一致,或者是大小不同地显示。
3.Shift + F8 标亮文本中光标所在的单词。
4.Ctrl + G (或者F5) 跳转到某一行。
5.Ctrl + O 搜索文件,找到回车打开,找不到ESC退出
6.Alt + G (或者F7) 打开Symbol Window.
7.Alt +, 后退;Alt+.前进.
8.Ctrl + F 查找关键字。
context window 在看程序时很有用,当用户指向某个函数或变量时,在context window中都会有该变量或函数的定义;
但有时会为了增加程序的容量或者不小心,将context window变成独立窗口,sourceinsight没有简单的菜单来恢复它。
.sourceinsight 中context window找回的另两种方法:
a.万能法:
到配置文件所在文件夹中(setting文件夹)下,将其下的所有文件(也就是二个文件),统统删除,再重启sourceinsight,这时会自动生成默认配置文件。
b.当context window成为独立窗口后,不要关闭它,也不要最大化;让它保持从嵌入窗口成为独立窗口时的样式,向下拉动,直到它自动成为嵌入窗口中。
SourceInsight中字体大小设置:
option->Document options->screen fonts (主要是这个菜单)
背景色菜单:
options->preference->color->windowbackqourd
SourcInsight中的标签
在看程序时,有时会作比较,当在程序中看到相似处;或者修改程序时,要从一处搬代码到另一处且添加代码与源代码不在一个页面时,如何快速切换,这是个问题。
运用组合快捷键Ctrl+M,可以在一处记下一个书签,如果下一次想跳到这个地方来时,再次按下Ctrl+M,找到相应的书签,就可以快速的切换。
缩进与tab
(1)Options菜单àPreferencesàTyping卡,勾掉下面两项∶
Typing tab indents line,regardless of selection,空行按tab无法前进
Typing tab replaces current selection,选定部分内容、再按tab时会清除所选
(2)Options菜单àDocument Options(针对不同文件类型,分别进行设置)à下拉左上文件类型框、选择合适类型(c源文件)àEditing Options框中,tab width=2àExpand tabs(这样,按tab键、等价于输入2个空格)
(3)Options菜单àDocument Optionsà选择合适的文件类型à点击右边中间的Auto Indent钮à在弹出的框中,左边一定要点Smart,右边有两个复选框Indent Open Brace和Indent Close Brace,具体效果可以看SIS的HELP。按照部门里的编程风格要求,最方便的就是把两个复选框都取消掉,然后点OK。
勾选Auto Indent之SMART的效果∶在C程序里,,如IF, WHILE, SWITCH等, 写到该行末按回车,则新行自动相对上一行缩进两列。
勾掉Indent Open Brace和Indent Close Brace的效果∶继上一段,在相对缩进行里,"}","{"时,不会与下面的行对齐(这是勾上Indent Open Brace时的效果)。
2、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器)
有个同事比较生猛,得整汇编代码,但在SIS里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都包含进来,只加了.inc和.asm后缀的,.s后缀的没有。而且用SIS打开.s的文件,一片黑白没有色彩,感觉回到DOS的EDIT时代了…… 解决方法是在Options->Document Options里面,点左上的Document Type下拉菜单,选择x86 Asm Source File,然后在右边的File filter里*.asm;*.inc;的后面加上*.s;接着CLOSE就可以了。上面两个问题解决了,但注意加入*.s后还需要重新ADD TREE一遍才能把这些汇编加到PROJECT里面。
3、去掉功能强大但是无用的自动完成功能
Options菜单àPreferencesàTyping卡àAuto Completion框,勾掉Use automatic symbol completion window(这里是SIS的全局设置)
Options菜单àDocument OptionsàEditing Options框中,勾掉Allow auto-complete(局部设置)
上面两项必须全部勾选,才能启用Auto Completion功能
4、恢复小键盘的“+,-,*,/”功能
Options菜单àKey assignments,通过关键词ScrollScroll Half Page Up,取消小键盘/;通过关键词ScrollScroll Half Page Down取消小键盘*;通过关键词Function找到Function Up,取消小键盘-,通过关键词Function找到Function down,取消小键盘+。
5、恢复ctrl+a的全选功能
通过关键词savesave all,更改为ctrl+shift+a,通过关键词select找到select all,ctrl
SourceInsight 小技巧
1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。
2、今天把一个用sourceinsight排版整齐的C文件,偶然用VC打开一看,全乱了。研究了半天,发现SI对每个字符的宽度不太一致。
请教同事发现选上"view --> draft view", 就可以让每个字符的宽度一致了。快捷键是 "Alt + F12"
3、"shift+F8" 标亮所有文本中光标所在位置的单词
4、跳到某一行:"ctrl + g"