一、建立工程、界面介绍

  1. 打开Source Insight,选择Project 菜单->New Project
  2. 在出现的对话框中选择并选择存放工程文件的文件夹,输入工程名(比如McuSystem),点击“保存”;
  3. 又出现一个对话框,在 Configuration 部分可以选择这个工程使用全局配置文件还是自己单独的配置文件,这个无所谓,(不过最好选择单独的配置文件),再点击“OK”;
  4. 再次出现一个对话框,这是选择文件添加到 Project 中,通过左边的树状图找到你想添加的文件,点击Add 就可以了。你可以将不通路径下的文件添加到同一个工程中,而不用拷贝源文件。选择完后点击Close;
      这样工程就建立好了,文件列表就出现在Project Window 中(如果Project Window 被关闭了,可以选中View菜单->Project Window)。点击Project Window 中任意一个文件,文件的内容出现在中央的编辑区了。

注意:

  如果某个函数或变量是小黑字显示,那么这个函数或者变量在这个工程内就还

没有定义(如下图)。这便于检查程序中未定义的函数、变量。当然啦,如果是诸如printf这样的库函数,你可以不用管,编译器自己会找到这个函数。

source insight链接到远程仓库_Click

有时候可能会出现明明定义了的函数或者变量,却仍然是小黑字,这时你可以点击
Project菜单->Synchronize Files,让文件重新同步一下。

工具栏上有两个蓝黑色的向前

source insight链接到远程仓库_宏定义_02

、向后

source insight链接到远程仓库_sourceinsi_03

图标,它可以让编辑区转到你前一次、后一次编辑过的地方,这在源文件很多的时候特别有用。比如说你先后修改了3 个文件中的3个函数,现在又想回过头来再改改第一个函数,只要点击“向前”图标三次就可以回到第一个函数那里。

source insight 查询功能

查找定义

编辑区内,选中任意一个变量、函数、宏等,点击右键->Jump Definition

 如果只有一个定义,编辑区就会自动转到这个变量、函数、宏定义处;
 如果有多个定义比如 McuSystem 中的msg_queue_out()函数,根据宏定义不同,对应不同函数,将会出现一个定义列表,选择不同表项,编辑区就会转到相应的定义处。

或者,在编辑区内,选中这个变量、函数、宏等,过了1、2秒钟,Context Window会自动显示这个变量、函数、宏定义、或者多个定义列表。

查找:
  1. 在编辑区内,选中要查找的变量、函数、宏等,点击右键->Lookup Reference
  2. 出现Lookup Reference 对话框,(关于Option 选项,我们后面再说),点击Search
  3. 接下来的对话框是选择查询结果的存放、显示方式,一般选择 Replace(你可以试试其它选项的效果);(如果将查找结果列表窗口关闭,这个对话框就不出现)
  4. 接下来就出现了查询结果列表窗口。
  5. 点击任意一条结果前的红色图标,编辑区就转到了程序中相应的部分;在编辑
    区点击语句开头的红色图标就又回到查询结果列表;或者点击任务栏中红色向左、向右图标,就可以在不同查询结果之间转换。

现在我们在说说前面提到的 Lookup Reference 对话框的关于Option 选项。

source insight链接到远程仓库_宏定义_04

  • Case Sensitive:查找时区分大小写;
  • Skip Inactive Code:诸如#if 0 .... #endif内的代码,因为是Inactive的,所以不在查找之列;
  • Skip Comments:注释内的代码不在查找之列
  • Search Only Comments:只查找注释内的代码
      当Search Method 选中Simple String 时,还可以选中或者取消Whole Words Only 选项。当取消Whole Words Only 时,就不再按照整字查询,举个例子,当你查询“int”时,“interrupt”也会被查到。

查找调用

编辑区内,选中函数名,点击右键->Jump to Caller

如果这个变量、函数、宏等在工程中只被调用了一次,编辑区会直接转到该处;

如果被调用了多次,就会出现查询结果列表对话框,选择不同表项,编辑区就会转到相应的调用处。

这里说的 Jump to Caller 和前面说的Lookup Reference 很相似,Jump to Caller查询条件更加严格,定义、声明、注释等都不在它的查询之列。

`Jump to Caller` 有这种情况存在:
如果函数A 中多次调用函数B,使用`Jump to Caller` 时,A 中的B 函数只会被列出一次。
所以我个人更加喜欢用`Lookup Reference`。
小细节

凡是修改了、还没有保存的语句,前面都用黄色标注。

source insight链接到远程仓库_搜索_05

修改了保存了的语句,前面用绿色标注。

source insight链接到远程仓库_宏定义_06

二、常用使用技巧

  1. 按住"ctrl", 再用鼠标指向某个变量(或函数),点击一下,就能进入这个变量(或
    函数)的定义
  2. 快捷键 "Alt + F12",可以让显示界面中的每个字符宽度一致。
  3. "shift+F8" 标亮所有文本中光标所在位置的单词。
  4. 跳到某一行:F5 或者"ctrl + g"
  5. "Ctrl + o"跳转至Project Window的查找入口,"回车"大开相应文件并关闭查找窗口;如果找不到直接使用ESC键也可关闭该查找窗口。

快捷键

按键

作用

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

hilight word

退出程序

Alt+F4

重画屏幕

Ctrl+Alt+Space

完成语法

Ctrl+E

复制一行

Ctrl+K

恰好复制该位置右边的该行的字符

Ctrl+Shift+K

复制到剪贴板

Ctrl+Del

剪切一行

Ctrl+U

剪切该位置右边的该行的字符

Ctrl+;

剪切到剪贴板

Ctrl+Shift+X

剪切一个字

Ctrl+,

左边缩进

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

激活语法窗口

Alt+L

回到该行的开始

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

浏览本地语法(弹出该文件语法列表窗口,如果你光标放到一个变量/函数等,那么列出本文件该变量/函数等

信息)

浏览工程语法

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

窗口操作

窗口

按键

作用

project window

Ctrl+O

打开

symbol window

Alt+F8

打开和关闭

Contex Window

自定义键

打开和关闭

Relation Window

自定义键打开

先锁定再刷新联系

三、常用问题解决

  1. 文件过滤器
  2. 颜色选择
  3. 解决字符大小不一
  4. 解决缩进问题
  5. 解决汉字注释操作半删半移问题
  6. 恢复Ctrl + a的全选功能