kwseeker

学编程:找代码,读代码,改代码,写代码;少看书。但少看不是不看,看一本书要限制在一天内。任务是通读书中主要的概念,明白大致是干什么用的,形成一个大概的框架;然后一周内干掉书中全部代码,代码不理解再浏览书中相关章节,注意是浏览。或者刷博客。代码实在刷不懂,可以先刷后面,待日后重新刷;因为书中代码有些部分可能出自后面的章节。代码总是在多次刷过之后,拨开乌云见日月的。。。

导航

SourceInsight使用入门与技巧(转)

 

1 sourceinsight screen font 的默认字体是Verdana的,它是一直变宽字体。在Document style中可以将字体改为定宽的Courier 
2   document options->auto indent 去掉indent Open Brace和Indent Close Brace的效果: 继上一段,在相对缩进行里, 如果输入"{"或"}", 则自动和上一行列对齐

3 今天把一个用sourceinsight排版整齐的C文件,偶然用VC打开一看,全乱了。研究了半天,发现SI对每个字符的宽度不太一致。

    发现选上"view --> draft view", 就可以让每个字符的宽度一致了。快捷键是 "Alt + F12"4选中几行代码按tab键或者shift+tab可以左右移动代码,调整代码时很有用。配置成简单好用的c/java代码编辑器
1、缩进与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à Editing 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、向项目中添加文件时,添加特定类型的文件(文件类型过滤器)
添加.pc文件和makefile文件,类型分别为C++,和Make File

Options -> Document Options... Alt-T    -> 点击Document Type的下拉框,然后选择Make File,在右边的File Filter中,在原先的*.mak后面加上一个分号,即多个不同过滤规则以分号间隔开,再加上*makefile,变成 *.mak;*makefile,并且选中Include when adding to projects,这样,以后再新建工程的时候,就可以识别makefile或Makefile了(好像此处Source Insight并不区分大小写)。

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,通过关键词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

Source Insight设置

1、背景色选择 
    要改变背景色Options->preference->windows background->color设置背景色 
2、解决字符等宽对齐问题。
    SIS默认字体是VERDANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,VERDANA字体是不等宽的。比如下面两行
    llllllllll
    MMMMMMMMMM
    同样10个字符,长度差多了.用VERDANA来看程序,有些本应该对齐的就歪了。解放方法是使用等宽的字体,但肯定比较丑。比较推荐的是用Courier New。 
3、解决TAB键缩进问题
    Options-> Document Options里面的右下角Editing Options栏里,把Expand tabs勾起来,然后确定。OK,现在TAB键的缩进和四个空格的缩进在SIS里面看起来就对齐咯

4、SI中的自动对齐设置:
    在C程序里, 如果遇到行末没有分号的语句,如IF, WHILE, SWITCH等, 写到该行末按回车,则新行自动相对上一行缩进两列。
    Option->Document option下的Auto Indient中Auto Indient Type有三种类型 None,Simple,Smart。个人推荐选用Simple类型。
5、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器)
    编辑汇编代码时,在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里面。 
6、添加文件类型
    用户可以定义自己的类型,Options->Document Options->add type,定义文件类型名以及文件名后缀。
    勾选include when adding to projects在添加目录下文件到工程是该类文件就会添加进SI的工程。
    如果需要将所有文件添加进SI的工程,可以定义一种文件类型*.*。   
7、恢复ctrl+a的全选功能
    通过关键词save 找到save all,更改为ctrl+shift+a,通过关键词select找到select all,更改为ctrl +a

Source Insight常用的快捷键:
    Ctrl+= :Jump to definition
    Alt+/ :Look up reference 
    F3 : search backward
    F4 : search forward
    F5: go to Line
    F7 :Look up symbols
    F8 :Look up local symbols
    F9 :Ident left
    F10 :Ident right
    Alt+, :Jump backword
    Alt+. : Jump forward
    Shift+F3 : search the word under cusor backward
    Shift+F4 : search the word under cusor forward
    F12 : incremental search
    Shift+Ctrl+f: search in project
    shift+F8 : 标亮所有文本中光标所在位置的单词
    
Source Insight的窗口操作:

   Ctrl+W 关闭当前文件窗口
   Ctrl+Tab 切换文件窗口
    project window Ctrl+O打开 
    symbol window Alt+F8打开和关闭
    Contex Window 自定义键打开和关闭
    Relation Window 自定义键打开 先锁定再刷新联系
汇总其他小技巧:

让{ 和 } 不缩进:

Options->Document Options->Auto Indent->Indent Open Brace/Indent Close Brace

hao space: SourceInsight 小技巧
1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。

2、今天把一个用sourceinsight排版整齐的C文件,偶然用VC打开一看,全乱了。研究了半天,发现SI对每个字符的宽度不太一致。
    请教同事发现选上"view --> draft view", 就可以让每个字符的宽度一致了。快捷键是 "Alt + F12"

3、"shift+F8" 标亮所有文本中光标所在位置的单词

4、跳到某一行:"ctrl + g"
=========================source insight 快捷键大全=======================

剪切一个字                            : Ctrl+,
剪切行                   :Ctrl+U
复制一行                                : Ctrl+K
剪切该位置右边的该行的字符              : Ctrl+;
激活语法窗口                         : Alt+L
激活工程文件窗口                         : Alt+R(自定义的)

退出程序                                : Alt+F4
重画屏幕                                : Ctrl+Alt+Space
完成语法                                : Ctrl+E

恰好复制该位置右边的该行的字符          : Ctrl+Shift+K
复制到剪贴板                         : Ctrl+Del
剪切一行                                : Ctrl+U

剪切到剪贴板                         : Ctrl+Shift+X

左边缩进                                : F9
右边缩进                                : F10
插入一行                                : Ctrl+I
插入新行                                : Ctrl+Enter
加入一行                                : Ctrl+J
从剪切板粘贴                         : Ctrl+Ins
粘贴一行                                : Ctrl+P
重复上一个动作                      : Ctrl+Y
重新编号                                : Ctrl+R
重复输入                                : Ctrl+\
替换                                       : Ctrl+H 
智能重命名                             : Ctrl+' 
关闭文件                                : Ctrl+W
关闭所有文件                         : Ctrl+Shift+W
新建                                       : Ctrl+N
转到下一个文件                      : Ctrl+Shift+N
打开                                       : Ctrl+O
重新装载文件                         : Ctrl+Shift+O
另存为                                    : Ctrl+Shift+S
显示文件状态                         : Shift+F10

回到该行的开始                      : Home
回到选择的开始                      : Ctrl+Alt+[
到块的下面                             : Ctrl+Shift+]
到块的上面                             : Ctrl+Shift+[
书签                                        : Ctrl+M
到文件底部                             : Ctrl+End, Ctrl+(KeyPad) End
到窗口底部                             : (KeyPad) End (小键盘的END)
到一行的尾部                          : End
到选择部分的尾部                   : Ctrl+Alt+]
到下一个函数                          : 小键盘 +
上一个函数                              :      小键盘 -
后退                                         : Alt+,, Thumb 1 Click
后退到索引                              : Alt+M
向前                                    : Alt+., Thumb 2 Click
转到行                                  : F5, Ctrl+G
转到下一个修改                          : Alt+(KeyPad) +
转到下一个链接                          : Shift+F9, Ctrl+Shift+L
回到前一个修改                          : Alt+(KeyPad) -
跳到连接(就是语法串口列表的地方)        : Ctrl+L
跳到匹配                                : Alt+]
下一页                                  : PgDn, (KeyPad) PgDn
上一页                                  : PgUp, (KeyPad) PgUp
向上滚动半屏                            : Ctrl+PgDn, Ctrl+(KeyPad) PgDn, (KeyPad) *
向下滚动半屏                           : Ctrl+PgUp, Ctrl+(KeyPad) PgUp, (KeyPad) /
左滚                                    : Alt+Left
向上滚动一行                            : Alt+Down
向下滚动一行                            : Alt+Up
右滚                                    : Alt+Right
选择一块                                : Ctrl+-
选择当前位置的左边一个字符              : Shift+Left
选择当前位置右边一个字符                : Shift+Right
选择一行                                : Shift+F6
从当前行其开始向下选择                  : Shift+Down
从当前行其开始向上选择                  : Shift+Up
选择上页                                : Shift+PgDn, Shift+(KeyPad) PgDn
选择下页                                : Shift+PgUp, Shift+(KeyPad) PgUp
选择句子(直到遇到一个 . 为止)           : Shift+F7, Ctrl+.
从当前位置选择到文件结束                : Ctrl+Shift+End
从当前位置选择到行结束                  : Shift+End
从当前位置选择到行的开始                : Shift+Home
从当前位置选择到文件顶部                : Ctrl+Shift+Home
选择一个单词                            : Shift+F5
选择左边单词                            : Ctrl+Shift+Left
选择右边单词                            : Ctrl+Shift+Right
到文件顶部                              : Ctrl+Home, Ctrl+(KeyPad) Home
到窗口顶部                              : (KeyPad) Home
到单词左边(也就是到一个单词的开始)      : Ctrl+Left
到单词右边(到该单词的结束)              : Ctrl+Right
排列语法窗口(有三种排列方式分别按1,2,3次)           : Alt+F7
移除文件                                : Alt+Shift+R
同步文件                                : Alt+Shift+S
增量搜索(当用Ctrl + F 搜索,然后按F12就会转到下一个匹配)         : F12
替换文件                                : Ctrl+Shift+H
向后搜索                                : F3
在多个文件中搜索                        : Ctrl+Shift+F
向前搜索                                : F4
搜索选择的(比如选择了一个单词,shift+F4将搜索下一个)       : Shift+F4
搜索                                    : Ctrl+F
浏览本地语法(弹出该文件语法列表窗口,如果你光标放到一个变量/函数等,那么列出本文件该变量/函数等的信息)       : F8
浏览工程语法                            : F7, Alt+G
跳到基本类型(即跳到原型)                : Alt+0
跳到定义出(也就是声明)                  : Ctrl+=, Ctrl+L Click (select), Ctrl+Double L Click
检查引用                                : Ctrl+/
语法信息(弹出该语法的信息)              : Alt+/, Ctrl+R Click (select)
高亮当前单词                            : Shift+F8
语法窗口(隐藏/显示语法窗口)             : Alt+F8
关闭窗口                                : Alt+F6, Ctrl+F4
最后一个窗口                            : Ctrl+Tab, Ctrl+Shift+Tab

 Source Insight中的文件过滤器

遇到在新建工程的时候,需要加入一些除了.c .h 等之外的文件,比如.s,.scf ,Makefile和ReleaseNotes等文件,而每次新建工程的时候,即使取消了shown only known document types,和在点击Add All之后选择了Recusively add lower sub-directories ,也还是不能正常识别这类文件,也就不能加入进工程,只能我们自己手动双击添加到工程中,如果文件少还无所谓,但是包含了很多子文件夹的大工程,这样实在不可行。

百度了下,终于发现解决办法了:

打开Source Insight,在新建工程之前,进入

Options -> Document Options... Alt-T    -> 点击Document Type的下拉框,然后选择Make File,在右边的File Filter中,在原先的*.mak后面加上一个分号,即多个不同过滤规则以分号间隔开,再加上*makefile,变成 *.mak;*makefile,并且选中Include when adding to projects,这样,以后再新建工程的时候,就可以识别makefile或Makefile了(好像此处Source Insight并不区分大小写)。

类似的原理,给其他你想要加入的不同的类型的文件,分别加入到原先的一些文件类型后面,注意要用分号隔开,或者直接新建一个文件类型,然后写上对应的顾虑规则,比如

点击 Add Type,填入新文件类型的名字Scatter File,File Filter中写上*.scf,注意再选中下面的Include when adding to projects,这样就建立了一个新的文件类型, 以后新建工程加入文件时候,系统就能够识别后缀是scf的文件了。

当然感兴趣的,还可以对你新建立的文件类型进行一些格式化设置。包括Parsing,Tab等等设置。

 

在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 preceding character
 
+
 one or more occurrences of the preceding character
 
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]*)
 

posted on 2015-03-16 22:26  kwseeker  阅读(915)  评论(0编辑  收藏  举报