退出程序
重画屏幕
完成语法
复制一行
恰好复制该位置右边的该行的字符
复制到剪贴板
剪切一行
剪切该位置右边的该行的字符
剪切到剪贴板
剪切一个字
左边缩进
右边缩进
插入一行
插入新行
加入一行
从剪切板粘贴
粘贴一行
重复上一个动作
重新编号
重复输入
替换
智能重命名
关闭文件
关闭所有文件
新建
转到下一个文件
打开
重新装载文件
另存为
显示文件状态
激活语法窗口
回到该行的开始
回到选择的开始
到块的下面
到块的上面
书签
到选择部分的尾部
到下一个函数
上一个函数
后退
后退到索引
向前
转到行
转到下一个修改
转到下一个链接
回到前一个修改
跳到连接(就是语法串口列表的地方)
跳到匹配
选择一行
选择句子(直到遇到一个 . 为止)
从当前位置选择到文件结束
从当前位置选择到行结束
从当前位置选择到行的开始
从当前位置选择到文件顶部
选择一个单词
选择左边单词
选择右边单词
排列语法窗口(有三种排列方式分别按1,2,3次)
移除文件
同步文件
增量搜索(当用Ctrl + F 搜索,然后按F12就会转到下一个匹配)
替换文件
向后搜索
在多个文件中搜索
向前搜索
搜索选择的(比如选择了一个单词,shift+F4将搜索下一个)
快捷键集锦:
Ctrl+= :Jump to definition
Alt+/ :Look up reference
F9 :Jump to next reference
F7 :Look up symbols
F8 :Look up local symbols
F9 :Ident left
F10 :Ident right
Alt+, :Jump backword
Alt+. : Jump forward
F2: switch to next page
F3 : search backward
F4 : search forward
F5: Jump to line ?
Ctrl+,/Ctrl+. Jump to last/past
Shift+F3 : search the word under cursor backward
Shift+F4 : forward
F12 : incremental search
Shift+Ctrl+f : search in project
Others(Common in Windows system)
Shift+Tab: Moving foward(After text selected)
Tab:Moving backward(After text selected)
Shift+(Up,Down,Left,Rght):Select code,do not have to using mouse cursor
1.sourceinsight screen font 的默认字体是Verdana的,它是一直变宽字体。在Document style中可以将字体改为定宽的Courier
2.
3.今天把一个用sourceinsight排版整齐的C文件,偶然用VC打开一看,全乱了。研究了半天,发现SI对每个字符的宽度不太一致。发现选上"view --> draft view", 就可以让每个字符的宽度一致了。快捷键是 "Alt + F12"
1、缩进与tab
(1)Options菜单PreferencesTyping卡,勾掉下面两项∶
Typing tab indents line,regardless of selection,空行按tab无法前进
Typing tab replaces current selection,选定部分内容、再按tab时会清除所选
(2)Options菜单Document Options(针对不同文件类型,分别进行设置)下拉左上文件类型框、选择合适类型(c源文件)Editing Options框中,tab width=2Editing Options框中,勾选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 OptionsEditing Options框中,勾掉Allow auto-complete(局部设置)
上面两项必须全部勾选,才能启用Auto Completion功能
4、恢复小键盘的“+,-,*,/”功能
Options菜单Key assignments,通过关键词Scroll 找到Scroll Half Page Up,取消小键盘/;通过关键词Scroll 找到Scroll Half Page Down取消小键盘*;通过关键词Function找到Function Up,取消小键盘-,通过关键词Function找到Function down,取消小键盘+。
5、恢复ctrl+a的全选功能
通过关键词save 找到save all,更改为ctrl+shift+a,通过关键词select找到select all,更改为ctrl +a
6、解决字符等宽对齐问题。
SIS默认字体是VERDANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,VERDANA字体是不等宽的。比如下面两行
llllllllll
MMMMMMMMMM
同样10个字符,长度差多了.用VERDANA来看程序,有些本应该对齐的就歪了。解放方法是使用等宽的字体,但肯定比较丑。可以用DOS字体,也就是记事本里的默认字体sysfixed 很丑,要有心理准备。比较推荐的是用Courier New。
SourceInsight提供的功能
1、解析日志信息时非常有用的Source Link
总地说来,SourceLink根据特定的搜索模式,把当前文件中满足模式的行、链接到由该行指定的其他源文件中。
所谓特定的搜索模式,共有两种“File, then line”和“Line, then file”,其中前后两部分依靠正则表达式的 组的概念来予以分割。如果当前文件具有匹配行,比如“Error d:tcsrcq5.c 18: Lvalue required in function jsSort”,那么SourceInsight在该行创建SourceLink、把该行链接到由该行指定的文件中(即d:tcsrcq5.c,第18行)。
1.1 创建SourceLink
运行Search菜单的Parse Source Links…命令,在弹出的框中、选择搜索模式、并填入相应的正则表达式串,点OK,SIS就会解析当前文件,如果有匹配,就创建SourceLink。
1.2 在解析日志信息时,使用SourceLink
可以打开日志信息,运行Parse Source Links命令,日志中能够匹配模式的每一行(通常是含有错误信息的行)、就会被设置上一个SourceLink
1.3在解析自定义命令输出时,使用SourceLink
首先勾选Custom Command 中的“Parse Links in Output”,然后选择特定的搜索模式,最后填入合适的正则表达式。这样,Source Insight把输出信息作为当前搜索用文件;并且,如果有匹配行(通常即编译错误信息行),SIS为该行创建SourceLink、并把每一个错误信息中给定的文件(和行号)作为link目的地,这对于我们修改源代码错误非常有帮助。
2、替换(Replace)VS 上下文敏感的智能重命名(Context-Sensitive Smart Rename)
2.1 替换(Replace)
目前来说,普通的替换命令、快捷键为ctrl+H,足以已满足工作要求。
在弹出的替换窗口中,在Search框中勾选Selection来只在所选文本区域中替换(当然这时你要先选定区域然后再按ctrl+H)、勾选WholeFile来在整个当前文件内替换、两者都不勾选来从当前光标处替换至文件末尾;点右边的Files…按钮,可选择替换多个文件的内容。
2.2上下文敏感的智能重命名(Context-Sensitive Smart Rename)
Smart Rename命令、快捷键是Ctrl+’,是上下文敏感的全局搜索替换。它可以智能地重命名全部项目文件中的一个标示符。SourceInsight的搜索索引(search index)使得搜索过程进行地非常快。而且,使用Smart Rename所做的替换会被记录在Search Results窗口中,每一条替换记录旁有一个SourceLink链接到替换发生地文件。
Smart Rename可以用来重命名标记(symbol)。如果勾选了Smart Reference Matching选项,Smart Rename就只在正确的上下文范围内进行重命名。它可以智能地重命名全部项目文件中的一个标示符;它可以重命名函数本地变量,类或结构体成员、函数。
在弹出的Smart Rename窗口中有下面几项∶
Old Name填旧名称。光标下的词会被自动加载;光标的位置非常重要,这是因为Source Insight会根据本地上下文背景、准确地确定你想要重命名哪一个标记。
推荐只填单个词、而不是字符串。
如果你在命名成员变量、或本地变量(),Old Name框中会显示完全标记名、即上层容器名+标记名。例如,框中的“DocDraw.paintStruc”代表DocDraw是函数名,paintStruc是函数的本地成员变量。
New Name填新名称。只填标记名,不填上层容器名。
Output Search Results如果勾选,搜索替换结果日志会被输出到Search Results窗口中。可以通过Windows菜单来切换,或ctrl+tab切换察看。并且每一条记录旁会有SourceLink链接到替换发生地文件。
Confirm Each Replacement每次替换询问。
Skip Comments不重名注释部分。
【使用心得列表】
(1)如何用Smart Rename重命名数组的数组名?如果只选取数组名,会报错!
(2)如果勾掉Smart Reference Matching,会搜索全部项目文件,并且Old Name框中不显示完全限定名;如果勾选Smart Reference Matching,无法重命名数组名,而且鼠标位置不正确时会报错。应该如何应对?
3、在SourceInsight中提供的正则表达式
3.1在SourceInsight中提供的正则表达式
正则表达式,是用来匹配复杂模式的特殊搜索用字符串。正则表达式串中,许多字符具有特殊的含义。例如,有个特殊的字符代表“行首”。
下面是SourceInsight提供的所有可用特殊字符∶
Table 4.3: Regular Expression Characters
Character Matches
^ (at the beginning only) beginning of line 。如^Hello,匹配Hello在句首。
. any single character
[abc] any single character that belongs to the set abc
[^abc] any single character that does not belong to the set abc
* zero or more occurrences of the precedingcharacter
+ one or more occurrences of the precedingcharacter
t a tab character
s a space character
w white space (a tab or a space character)
$ the end of the line 。如TRUE$,匹配TRUE在句尾。
转义字符。如果在它后面有元字符,取消其特殊含义。
可利用“(”和“)”、把正则表达式分割成不同的 组;模式中的每个组自左向右指定为Group #n,n=1,2,…; 组的概念在替换时很有用。
例如∶
abc(xyz)可匹配abcxyz,其中xyz被认为是group#1,
利用21来替换(abc)(xyz),替换结果为xyzabc。
3.2 正则表达式在配置tc编译器中的应用∶
正则表达式格式与源代码文件路径相对应,这里我的tc安装目录为d:tc,tc源文件放在d:tcsrc下,并命名为qn.c或qtn.c(其中n=1,2,…)。
观察Tc编译器某一次输出错误信息的格式∶
Error d:tcsrcq5.c 18: Lvalue required in function jsSort
则我们要匹配“d:tcsrcq5.c 18”部分,进一步地,按照SourceInsight捕捉输出并加以解析时的要求,要以组的形式、分别匹配“d:tcsrcq5.c 18”中的文件部分和行号部分∶
行号([1-9][0-9]*)
空格行号s([1-9][0-9]*)
文件名(d:tcsrc[qQ][tT][1-9][0-9]*.[cC])
全部加起来为∶
(d:tcsrc[qQ][tT]*[1-9][0-9]*.[cC])s([1-9][0-9]*)
3.3 正则表达式在配置javac编译器中的应用∶
我的JAVA_HOME是c:jdk,我的java源文件放于d:javasrc中,并命名为qn.java或qtn.java(其中n=1,2,…)。
观察JDK编译器某一次输出错误信息的格式∶
D:javasrcQ3.java:3: ';' expected
正则表达式为∶
([dD]:javasrc[qQ][tT]*[1-9][0-9]*.java):([1-9][0-9]*)
4、自定义命令
自定义命令与项目相关,在一个项目中定义的所有自定义命令属于该项目、只对该项目有效(包括快捷键等)。
自定义命令类似于命令行批处理文件。SIS允许自定义命令在后台运行;并可以捕捉自定义命令的输出、放置于文件中、或粘贴入当前光标插入点。
分别利用上面SIS对输出信息的处理方式,自定义命令对集成编译器相当有用,可以捕捉编译器输出并创建SourceLink寻错;自定义命令对于文本过滤也相当有用,可选中待过滤区块、运行Sort自定义命令、粘贴回选定区块、即完成文本过滤。
请按下面步骤创建自定义命令∶
Options菜单Custom Command
点右边Add钮、填入新自定义命令名称,或下拉左边Commands、选择命令进行修改
Run框、填入待执行命令行,可含有特殊元字符,见后面的元字符表 Dir框、执行命令行时应处的目录,如不填,以源代码文件所在目录为命令执行目录
勾选Output框的Capture Output、输出被捕捉,如果勾选Paste Output,输出被粘贴
勾选Control Group框中的Save Files First、SIS会在运行命令前先检查文件是否保存
勾选Control Group框中的Pause When Done、SIS会在命令结束后暂停、方便检查
勾选Source Links in Output框中的Parse Source Links,?/p> 文章分类: 开发工具