烤鸭的Source Insight学习笔记

时间:2021-12-02 08:59:52

如果你觉得这网页排版不好看,可以去下载我上传的word版:《烤鸭的Source Insight学习笔记.doc》 http://download.csdn.NET/detail/benkaoya/4888311

1.前言

写这份文档时,我用的SI版本是:Version 3.5。

2.常用设置

2.1.缩进

Options菜单DocumentOptions选择合适的文件类型点击右边中间的Auto Indent钮在弹出的框中,左边选中点Simple。这样在输入函数回车后"{"不会缩进,而是和函数名称对齐。

2.2.TAB与空格

Options菜单DocumentOptions Editing Options框中,tab width= 4 EditingOptions框中,勾选Expand tabs(这样,按tab键、等价于输入4个空格)在严格的编码规范中不可以使用Tab,要使用空格。这个是节省工作的符合编码规范的好方法。

2.3.可视化制表符和空格导致乱码

Options > Document Options对话框中同时勾选了“VisiableTabs”和“Visiable spaces”两个选项,会导致tab和空格字符乱码

2.4.中文注释间有空格

用Source Install写代码的时候,中文注释的每个汉字间都会有一个空格,这样看起来相当的不习惯。打开options->styleproperties对话框,找到如下style:

comment

commentTo Do

里面的font->font name设置为“Fixedsys”或其它中文字体就可以了。

2.5.等宽字体的调整

Source Insight 菜单栏选择Options->DocumentOptions(或者直接Alt+T),打开DocumentOptions对话框,点击Screen Fonts,在新打开的字体对话框中设置为Fixedsys就OK啦。

Alt+F12可以将视图切换至草稿视图风格(draft view),可以有不同的视觉效果,试试吧。

2.6.不支持UTF-8

让我疑惑的是,广受欢迎的Source insight竟然不支持UTF-8,导致很多中文会显示乱码。转为ANSI格式即可正常显示。可以用记事本打开源代码,再另存为ANSI格式的文件来进行转化。

2.7.Options->Perferences菜单配置

2.7.1.General

把Misc->Use stricterconfirmation dialog选项去掉可以使确认时不输入"yes"。

2.7.2.Typing

Auto Completion->Use detailedcompletion window,选上后,联想时可以出现该函数的详细信息。如下图所示:

烤鸭的Source Insight学习笔记

图表2‑1 Typing

2.7.3.Display

Show exact caseof file names。如果看不惯si把所有的文件名首字母都大写就勾上这个选项吧。

Trim long pathnames with ellipses。这个建议不要选中。事实上这个主要影响标题栏,但一般来说标题栏上的空间是充裕的,选上之后往往会令我们不知道所编辑文件的具体位置。

2.7.4.SyntaxFormatting

Basics->Useonly color formatting,个人还是习惯勾选这个,效果比较好。

3.SI宏

本章节介绍的宏文件,可以到我在CSDN上传的资源《Source Insight宏库.rar》去下载:http://download.csdn.Net/detail/benkaoya/4888265

3.1.使用宏

这里举个例子。首先要有宏文件(如SuperBackspace.em),至于宏的基础知识不在本文讨论范围内。文件中有个宏Marco: SuperBackspace,该宏的作用是在删除中文时,增加了对双字节汉字的支持,我们要将该宏绑定到BackSpace键。那操作步骤如下:

①    将文件SuperBackspace.em复制入SourceInsight安装目录;

②    打开SI,选择菜单 Project→Open Project,打开Base项目(Base项目是SI安装是就有的);

③    将复制过去的SuperBackspace.em添加入Base项目;

④    重启SourceInsight;(不重启好像看不到宏Marco: SuperBackspace)

⑤    选择菜单Options→Key Assignments,将Marco:SuperBackspace绑定到BackSpace键;

3.2.官方宏库

http://www.sourceinsight.com/public/macros/

这里有很多例子值得学习。

3.3.我的宏库

宏文件(*.em)

宏名

我的快捷键/菜单

功能描述

CompleteWord.em

Macro: CompleteWord

Alt+E

字符补全功能(虽然SI在你输入时,能列出一个可选列表,但往往很多词他没法列出),这个宏非常好用。

AutoExpand.em

Macro: AutoExpand

Ctrl+Q

◆C语句自动扩展,如输入if后按快捷键Ctrl+Q即可实现自动扩展。

可支持有:for、while、do、switch、#if、#ifndef、#ifdef、{等

◆文件头注释块、函数头注释块模板自动扩展。输入/*或者/**按快捷键;

◆头文件要写防止重复编译的预编译处理时,可以输入#ifndefh,按快捷键自动完成。

Switch_cpp_hpp.em

Macro: switch_cpp_hpp

Alt+O

在同名的cpp和h文件之间切换

Home.em

Macro: Home

Macro: ShiftHome

Home

Shift+Home

SI自带快捷键Shif+Home的Navigation: Select To Start Of Line会把行首的空白字符也选进来。我还是更习惯于把行首非空白字符作为第一个字符。同样的Home是也如此

ChineseCharacters.em

Macro: SuperBackspace

绑定到

BackSpace

使SI对中文按一个字符操作(如删除,左右移),但鼠标拖动选中中文还是会出现乱码。

Macro: SuperDelete

绑定到

Del

Macro: SuperCursorLeft

绑定到

Left

Macro: SuperCursorRight

绑定到

Right

Macro: SuperShiftCursorLeft

绑定到Shift+Left

Macro: SuperShiftCursorRight

绑定到Shift+Right

说明:

◆CompleteWord.em

字符补全的关键字所在文件要处于打开的状态,否则无效。按以下顺序查找关键字:

①    光标位置向上搜索(当前文件)

②    光标位置向下搜索(当前文件)

③    其他文件从开始位置搜索

CompleteWord按以上顺序搜索显示,CompleteWordBack则在CompleteWord搜索出来列表的基础上反方向显示。

4.常用快捷键

默认快捷键

我的快捷键

说明

Ctrl + L Click (select)

Symbol: Jump To Definition

Ctrl + R Click (select)

Symbol: Symbol Info...

F3

向后搜索

F4

向前搜索

F5

Ctrl + g

Go to line

F12

向前搜索,到文件尾后会回到文件头

Shift+F3

向后搜索当前光标所处的字符串;

无须调出搜索对话框,而且使用过后就能用F3、F4、F12了

Shfit+F4

类似Shift+F3,只是向前搜索而已

Ctrl + m

Bookmark

Ctrl + home

Top of File

Ctrl + End

Bottom of File

Ctrl+9

跳至圆括号左边

Ctrl+0

跳至圆括号右边

Ctrl+Shift+{

跳至当前代码块所在的{,

鼠标可以置于{}块中的任一位置

Ctrl+Shift+}

跳至当前代码块所在的},

鼠标可以置于{}块中的任一位置

单击编辑窗口左边选择栏

Shift+F6

选择整行

双击编辑窗口左边选择栏

Select the whole enclosing symbol definition.

相当于双击symblo窗口中的symblo选中整个symblo,

可用于全选整个函数、整个结构体,以及其他类型的symblo

Ctrl + 单击编辑窗口左边的选择栏

全选(整个文件)

Ctrl + - (不能用小键盘的-号)

选择大括号、圆括号内的内容

鼠标可以置于匹配范围内任一地方

在匹配符前面,双击或者Alt+=

即可选中{}、()、<>、[]、“”匹配范围;

注意:鼠标一定要放在以上符号前面执行动作

Alt+]

跳至匹配的字符{}、()、<>、[];

注意:SI默认的命令Jump To Match要求鼠标一定要放在以上符号前面执行动作

Shift+Tab

Back Tab

Ctrl+S

File: Save

Ctrl+A

File: Save All

Alt + (KeyPad) +

Navigation: Go To Next Change

Alt + (KeyPad) -

Navigation: Go To Previous Change

Alt + L Click

Navigation: Make Column Selection

Shift+F1

Windows: Select Previous Window

Shift+F2

Windows: Select Next Window

Shift+F8

View: Highlight Word

Ctrl+Tab

Windows: Last Window

Ctrl+Shift+]

到块的下面

Ctrl+Shift+[

到块的上面

 

5.CustomCommands

5.1.自定义命令

自定义命令可以让你很容易的执行外部shell批处理程序或者window程序,自定义一个命令后,你可以给该命令定义一个快捷键或者一个菜单项,以方便调用。自定义命令的完整步骤如下:

◆Source Insight菜单Options->CustomCommands...在弹出的Custom Commands对话框中点击Add按钮新建一个自定义命令(名称自己随便取个,如Editwith UE);

◆添加完新命令后,回到Custom Commands对话框界面,在Run编辑框中输入完整的命令,包括应用程序路径,程序条用的参数,如:"C:\Program Files\UltraEdit-32/uedit32" %f(意思是:在ultriEdit中编辑SI当前文件)。可以点击Run按钮来试运行下效果。

◆你还可以按Menu或Keys按钮来给刚自定义的命令关联一个菜单或者快捷键。

烤鸭的Source Insight学习笔记

图表5‑1 Custom Commands

5.2.我的自定义命令

以下几个自定义命令我把他们关联到了菜单。

自定义的菜单名

功能

Run编辑框内容

Explore File

打开资源管理器并选中当前文件

ShellExecute open explorer /e,/select,%f

Edit with UE

在ultriEdit中编辑

"C:\Program Files\UltraEdit-32/uedit32" %f

Edit with VIM

在vim中编辑并定位到当前行

"C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f

AStyle_C

格式化当前文件(后面章节会介绍)

"C:\AStyle\bin\AStyle.exe" --options="C:\AStyle\bin\c.opt" %f

Trim Whitespace

删除整个文件每行行末尾的空白字符

这个是从Edit: Trim Whitespace从加进来的,是SI自带的功能,只是没有放到菜单上来而已。

关于这些%f、%l等参数什么意思,这是SI的通配符,可以搜索下SI帮助文档“Command Line Substitutions”章节,里面有详细的介绍。我这里列举几个:

Character

Expands to

Example

%f

full path name of the current file *

c:\myproj\file.c

%r

path name of current file relative to the project source directory *

file.c

%n

leaf name of the current file *

file.c

%d

directory path of the current file

c:\myproj

%h

directory path of current file without the drive letter

\myproj

%b

leaf name of current file w/o extension *

file

%e

extension of the current file

c

%c

drive letter of the current file

c:

%p

the current project name

c:\myproj\myproj

%j

the source directory of the current project

c:\myproj

%J

the data directory of the current project

C:\Documents and Settings\Jim Smith\My Documents\Source Insight\Projects\Base

%v

the drive letter of the current project’s source directory

c:

%o

leaf name of the project without path

myproj

%l

the current line number

any number

%w

first word in the selection, or the word under the cursor

any word

%s

name of a temp file where the current selection is saved while the custom command runs.

d:\tmp\vt0004.

%a

the current date

2005-12-2

%t

the current time

8:23

%1 - %9

user is prompted for arguments

any strings

6.代码格式化

Source Insight本身没有对代码进行格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。

很可惜的是:SI只能格式化整个文件,我还没找到可以格式化部分选中行的方法。如果有谁知道了,请告知我下。

6.1.AStyle下载路径

AStyle为开源项目,支持C/C++、C#、Java的代码格式化

Home Page: http://astyle.sourceforge.net/

Project Page:  http://sourceforge.net/projects/astyle/

下载最新Windows版本的AStyle,解压到C盘根目录,如C:\AStyle\bin\AStyle.exe

6.2.自定义命令集成Astyle工具

添加新的自定义命令Astyle_C,参数设置为:

“C:\AStyle\bin\AStyle.exe” --style=Linux -s4 -S -N -L -m0 -M40 --suffix=none --convert-tabs %f

你还可以把AStyle定制的选项放在一个配置文件里:

“C:\AStyle\bin\AStyle.exe” --options=”C:\AStyle\bin\c.opt” %f

配置文件C:\AStyle\bin\c.opt文件的内容大致如下:

#大括号的样式

--style=ansi

 

#缩进样式(用tab还是space)

--indent=tab=4

 

#有的if语句没有{},自动补全

--add-brackets

 

#定义指针变量时,*号紧贴变量名

--align-pointer=name

这里只是做个简介,详细的参数说明可以看AStyle安装目录的帮助文档,如C:\AStyle\doc\index.html,或者看在线帮助文档:http://astyle.sourceforge.net/astyle.html

6.3.其他工具

也可以用其他格式化工具,可以选自己喜欢的用。比如:

工具

官网

indent

http://www.gnu.org/software/indent/

http://mirror.bjtu.edu.cn/gnu/indent/

[for windows]

http://gnuwin32.sourceforge.net/packages/indent.htm

uncrustify

http://sourceforge.net/projects/uncrustify/files/

7.插件

7.1.TabSiPlus

作者博客 :http://blog.csdn.net/orbit/article/details/7702472

下载地址1:http://www.winmsg.com/download/TabSiPlus_0_99b2_1749.rar

下载地址2:http://www.winmsg.com/download/TabSiPlus_0_99b2_1510.rar

这是个文件标签的插件,蛮好用的,谁用谁知道。效果如下图所示:

烤鸭的Source Insight学习笔记

图表7‑1 TabSiPlus效果图

8.其他

8.1.ProjectWindow

比如要快速查找autoexp.em文件,可以在编辑框中输入*.em回车。如果要再次显示全部文件,输入**回车。如果你要查看非项目里的文件输入点‘.’回车。

烤鸭的Source Insight学习笔记的更多相关文章

  1. 【Source Insight 】之marco学习笔记1

    我们学习编程语言都是从Hello World!,现在我们学习marco也不例外 打开C:\Users\%USERPROFILE%\Documents\Source Insight 4.0\Projec ...

  2. Nginx学习笔记4 源码分析

    Nginx学习笔记(四) 源码分析 源码分析 在茫茫的源码中,看到了几个好像挺熟悉的名字(socket/UDP/shmem).那就来看看这个文件吧!从简单的开始~~~ src/os/unix/Ngx_ ...

  3. delphi操作xml学习笔记 之一 入门必读

    Delphi 对XML的支持---TXMLDocument类       Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocum ...

  4. Hadoop学习笔记—22&period;Hadoop2&period;x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  5. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  6. redis 学习笔记&lpar;6&rpar;-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  7. bootstrap学习笔记--bootstrap安装环境

    Bootstrap 安装是非常容易的.此文是本人的学习汇总,便于以后查询学习,同时也希望给大家带来帮助. 下载 Bootstrap 您可以从 http://getbootstrap.com/ 上下载 ...

  8. WeX5学习笔记

    目录 WeX5学习笔记... 1 1.轻松看透WeX5产品能力和技术... 1 2.WeX5可以怎么玩?... 3 一.纯本地App. 3 二.关联一个网站,希望默认就打开某页... 4 三.UI设计 ...

  9. OpenCV学习笔记(一)——OpenCV3&period;1&period;0&plus;VS2015开发环境配置

    摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的, ...

随机推荐

  1. 小菜学习设计模式(一)—模板方法(Template)模式

    前言 设计模式目录: 小菜学习设计模式(一)—模板方法(Template)模式 小菜学习设计模式(二)—单例(Singleton)模式 小菜学习设计模式(三)—工厂方法(Factory Method) ...

  2. Linux&lpar;Ubuntu 14&period;04&rpar; setting up OpenGL

    1. Install c/c++ compilation package. 2. install openGL and freeGlut library sudo apt-get install me ...

  3. mysql解决自动断开8小时未曾用过的链接

    今天有运维的同事反映,发布关键词不太稳定,点了没反应.就去线上看了一下日志,发现数据库没有链接,就查了一下问题 关于mysql自动断开的问题研究结果如下,在mysql中有相关参数设定,当数据库连接空闲 ...

  4. 1051&colon; &lbrack;HAOI2006&rsqb;受欢迎的牛

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2276  Solved: 1190[Submit][Sta ...

  5. Seasar2框架:AOP

    Seasar2是由日本人开发的一个框架.它通过自己定义的规约,很大程度上地减少了设定代码.但是由于这个原因,导致了框架学习初期会有比较大的跨越. AOP例子: Greeting.java packag ...

  6. JTree实例

    JTree实例 private void createTreeByXdDdt() { DefaultComboBoxModel boxModel = (DefaultComboBoxModel) cm ...

  7. STL的容器算法迭代器的设计理念

    1) STL的容器通过类模板技术,实现数据类型和容器模型的分离. 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了统一性. 3) STL的函数对象实现了自定义数据类型的算法运算 ...

  8. 为harbor部署swagger-ui

    有了swagger,所有REST API就一览无余了. Harbor官方已经准备好了部署脚本,部署起来其实特别简单,这里仅作记录. 1.下载部署脚本和swagger文件到本地harbor目录. # c ...

  9. JS继承封装

    <script> var extend = function (subClass, superClass) { //1.继承类的中间类 var Tmp = function() {}; / ...

  10. 算法笔记&lowbar;143&colon;构造无向图的欧拉回路&lpar;Java&rpar;

    目录 1 问题描述 2 解决方案   1 问题描述 具体链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Item ...