Source_Insight使用教程大全

Source_Insight使用教程大全
Source_Insight使用教程大全

作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是 Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困难。。。

当然Linux下的vim和emacs编辑程序并不是没有提供变量、函数搜索,彩色显示程序语句等功能。它们的功能是非常强大的。比如,vim和emacs就各自内嵌了一个标记程序,分别叫做ctag 和etag,通过配置这两个程序,也可以实现功能强大的函数变量搜索功能,但是由于其配置复杂,linux附带的有关资料也不是很详细,而且,即使建立好标记库,要实现代码彩色显示功能,仍然需要进一步的配置(在另一片文章,我将会讲述如何配置这些功能),同时,对于大多数爱好者来说,可能还不能熟练使用vim和 emacs那些功能比较强大的命令和快捷键。

为了方便的学习Linux源程序,我们不妨回到我们熟悉的window环境下,也算是“师以长夷以制夷”吧。但是在Window平台上,使用一些常见的集成开发环境,效果也不是很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows 平台的函数不能彩色显示。于是笔者通过在互联网上搜索,终于找到了一个强大的源代码编辑器,它的卓越性能使得学习Linux内核源代码的难度大大降低,这便是Source Insight3.0,它是一个Windows平台下的共享软件,由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在 linux平台上将/usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。下面主要讲解如何使用Source Insight,考虑到阅读源程序的爱好者都有相当的软件使用水平,本文对于一些琐碎、人所共知的细节略过不提,仅介绍一些主要内容,以便大家能够很快熟练使用本软件,减少摸索的过程。

安装Source Insight并启动程序,可以进入图1界面。在工具条上有几个值得注意的地方,如图所示,图中内凹左边的是工程按钮,用于显示工程窗口的情况;右边的那个按钮按下去将会显示一个窗口,里边提供光标所在的函数体内对其他函数的调用图,通过点击该窗体里那些函数就可以进入该函数所在的地方。

图1 Source Insight界面图

由于Source Insight实质上是一个支持多种开发语言(java,c ,c++等等)的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,而被我们当成源代码阅读工具使用。所以,为了有效的阅读源程序,首先必须选择功能菜单上的“Project”选项的子菜单“New Project”新建一个项目,项目名称可以自由选定,当然也可以选择删除(Remove)一个项目。当删除一个项目的时候,并不删除原有的源代码文件, 只是将该软件生成的那些工程辅助文件删除。设定之后,将会弹出一个对话框如图2,接受默认选择,如果,硬盘空间足够,可以将第一个复选框选上,该选项将会需要与源代码大致同等的空间来建立一个本地数据库以加快查找的速度。

图2 工程设置

点击“OK”按钮,接受选择后,将会有一个新的对话框弹出,在这个对话框里,可以选择将要阅读的文件加入工程,一种方式是通过在File Name中输入要阅读源代码文件的名称,点击“Add”按钮将其加入,也可以通过其中“Add All”和“Add Tree”两个按钮可以将选中目录的所有文件加入到工程中,其中“Add All”选项会提示加入顶层文件和递归加入所有文件两种方式,而“Add Tree”相当于“Add All”选项的递归加入所有文件,可以根据需要使用,就我来说,更喜欢“Add Tree”一些。由于该程序采用了部分打开文件的方式,没有用到的文件不会打开,所以,加入数千个文件也不用担心加入的文件超出程序的所能容忍的最大值,我就是采用“Add Tree”的方式将Linux2.4内核的四千五百九十一个文件加入的。

图3 添加文件

加入文件后,点击一个文件,可以出现使用界面,如图4所示,其中,右边的那个窗口(Linux Project,即工程窗口)缺省按照字母顺序列出当前工程中所有的文件。

图4 工作窗口

点击一个文件就可以打开该文件,显示如图5所示,进入到右边的那个窗口分别可以以文件列表的方式,列出所有的文件,每个窗体下边有一排按钮,左边的窗口(21142.c)从左至右分别为:按字母顺序排列所有标记、按照文件中行数顺序排列标记、按照类型排列标记、浏览本地文件标记、标记窗口属性。右边的窗口(Linux Project)从左至右分别为:按字母顺序文件列表、显示文件夹、按照文件类型归类文件、全部文件的所有标记列表、按照标记类型归类标记、跳转到定义处、显示标记信息、浏览工程标记、查找函数调用、工程属性,其中全部文件的所有标记列表选项可能要一段时间抽取标记,同步到数据库去,如果开始选择了建立标记数据库,将会在今后节省同步时间,最有用的莫过于浏览标记信息和查找函数调用,前者可以通过“Jump”按钮在不同的地方查找同样的标志,还可以通过“Reference”按钮结合后者进行全局的标记查找。

Reference 功能是Source Insight的特色之一,它可以在速度极快的在整个工程中找到所有的标记,并且在该行程序的前边加上红色箭头的小按钮链接上。图6是一个 Reference搜索后的结果,它可以有两种模式,一种集中显示结果,图6显示的就是这种模式,在这种模式下,可以通过前边的红色箭头小按钮进入另外一种模式,该标记的具体的所在处,也可以通过标记的具体所在处点击红色箭头小按钮进入警种模式,还可以通过工具条上的两个红色小箭头直接在第二种模式下前后移动,察看相应信息。它的这个强大的功能使得阅读Linux源程序有如神助。但是要注意的是,当进行了第二次“Reference”时,它会提示你将结果集附加在第一个结果集的后边还是取代第一个结果集。如果选择前者,不能对结果集根据前后两次搜索结果进行分类,然后在其子类里进行移动,只能在整个结果集里移动;如果,选择后者,结果集将会被替换为第二次搜索的结果,略微有些不方便。

图6 Reference的搜索结果

当然,Source Insight 还提供了一些其他常见的便利。比如:右键菜单几乎包含了程序的所有功能,可以在编辑窗口为程序加上行号,还可以统计整个工程的程序行数,当然还有功能强大却用不上自动完成功能,似乎连它的30天试用期也是别有用心――可以迫使你尽可能快速的阅读源程序,其他一些技巧大家可以在使用过程中慢慢摸索。怎么样?爱好读源代码的朋友,不妨马上去下载一个,去开始我们的Linux内核探险之旅吧!

SourceInsight使用技巧

2008/05/19 16:44[学习研究 ]

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、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器)

有个同事比较生猛,得整汇编代码,但在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,通过关键词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窗口中有下面几项∶

【使用心得列表】

(1)如何用Smart Rename重命名数组的数组名?如果只选取数组名,会报错!

(2)如果勾掉Smart Reference Matching,会搜索全部项目文件,并且Old Name框中不显示完全限定名;如果勾选Smart Reference Matching,无法重命名数组名,而且鼠标位置不正确时会报错。应该如何应对?

3、在SourceInsight中提供的正则表达式

3.1在SourceInsight中提供的正则表达式

正则表达式,是用来匹配复杂模式的特殊搜索用字符串。正则表达式串中,许多字符具有特殊的含义。例如,有个特殊的字符代表"行首"。

下面是SourceInsight提供的所有可用特殊字符∶

可利用"("和")"、把正则表达式分割成不同的组;模式中的每个组自左向右指定为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])

全部加起来为∶

3.3 正则表达式在配置javac编译器中的应用∶

我的JAVA_HOME是c:jdk,我的java源文件放于d:javasrc中,并命名为qn.java或qtn.java(其中n=1,2,…)。

观察JDK编译器某一次输出错误信息的格式∶

D:javasrcQ3.java:3: ';' expected

正则表达式为∶

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>

source insight常用宏

转自:https://www.360docs.net/doc/0112192462.html,/Jupin/archive/2005/02/04/281020.aspx

说明:

该宏文件实现一些编码程中能会到的功能, 如添加文件头、函数说明和宏定义等, 使用时能自动添加文件名、函数名和当前日期.

使用说明:

1. Project->Open Project... 打开Base工程(该工程一般在"我的文档\Source Insight\Projects\Base"中);

2. Project->Add and Remove Project Files... 加入宏文件(即Gaoke.em);

3. Options->Menu Assignments 打开Menu Assignments窗口, 在Command中输入Macro, 选中要使用的宏, 添加到合适的菜单中.

/*附上宏定义文件*/

/* t357.em - a small collection of useful editing macros */

/******************************************************************************

* InsFileHeader -- insert the information of file

*

* modification history

* --------------------

* 01a, 23mar2003, added DESCRIPTION by t357

* 01a, 05mar2003, t357 written

* --------------------

******************************************************************************/

/*-------------------------------------------------------------------------

I N S E R T H E A D E R

Inserts a comment header block at the top of the current function.

This actually works font-size: 12px;"> To use this, define an environment variable "szMyName" and set it

to your email name. eg. set szMyName=raygr

-------------------------------------------------------------------------*/

macro InsFileHeader()

{

/*#########################################################

#########################################################

####### Set szMyName variable to your name ########

####### for example szMyName = "t357" ########

#########################################################

#########################################################*/

szMyName = ""

// Get current time

szTime = GetSysTime(1)

Day = szTime.Day

Month = szTime.Month

Year = szTime.Year

if (Day < 10)

szDay = "0@Day@"

else

szDay = Day

szMonth = NumToName(Month)

hBuf = GetCurrentBuf()

szpathName = GetBufName(hBuf)

szfileName = GetFileName(szpathName)

nlength = StrLen(szfileName)

szInf = Ask("Enter the information of file:")

szDescription = Ask("Enter the description of file:")

hbuf = GetCurrentBuf()

// begin assembling the title string

InsBufLine(hbuf, 0, "/******************************************************************************") InsBufLine(hbuf, 1, " * @szfileName@ - @szInf@")

InsBufLine(hbuf, 2, " * ")

InsBufLine(hbuf, 3, " * Copyright 1998-2003 Guangzhou Gaoke Communication Technology Co.,Ltd.")

InsBufLine(hbuf, 4, " * ")

InsBufLine(hbuf, 5, " * DESCRIPTION: - ")

InsBufLine(hbuf, 6, " * @szDescription@")

InsBufLine(hbuf, 7, " * modification history")

InsBufLine(hbuf, 8, " * --------------------")

InsBufLine(hbuf, 9, " * 01a, @szDay@@szMonth@@Year@, @szMyName@ written")

InsBufLine(hbuf, 10, " * --------------------")

InsBufLine(hbuf, 11, " ******************************************************************************/") // put the insertion point inside the header comment

SetBufIns(hbuf, 1, nlength + strlen(szInf) + 8)

}

/******************************************************************************

* InsFunHeader -- insert function's information

*

* modification history

* --------------------

* 01a, 23mar2003, added DESCRIPTION by t357

* 01a, 05mar2003, t357 written

* --------------------

******************************************************************************/ macro InsFunHeader()

{

// Get the owner's name from the environment variable: szMyName.

// If the variable doesn't exist, then the owner field is skipped.

/*#########################################################

#########################################################

####### Set szMyName variable to your name ########

####### for example szMyName = "t357" ########

#########################################################

#########################################################*/

szMyName = ""

// Get a handle to the current file buffer and the name

// and location of the current symbol where the cursor is.

hbuf = GetCurrentBuf()

szFunc = GetCurSymbol()

ln = GetSymbolLine(szFunc)

// Get current time

szTime = GetSysTime(1)

Day = szTime.Day

Month = szTime.Month

Year = szTime.Year

if (Day < 10)

szDay = "0@Day@"

else

szDay = Day

szMonth = NumToName(Month)

szInf = Ask("Enter the information of function:")

szDescription = Ask("Enter the description of function:")

// begin assembling the title string

sz = "/******************************************************************************" InsBufLine(hbuf, ln, sz)

InsBufLine(hbuf, ln + 1, " * @szFunc@ - @szInf@")

InsBufLine(hbuf, ln + 2, " * DESCRIPTION: - ")

InsBufLine(hbuf, ln + 3, " * @szDescription@ ")

// remove by t357. CutWord(szDescription)

InsBufLine(hbuf, ln + 4, " * Input: ")

InsBufLine(hbuf, ln + 5, " * Output: ")

InsBufLine(hbuf, ln + 6, " * Returns: ")

InsBufLine(hbuf, ln + 7, " * ")

InsBufLine(hbuf, ln + 8, " * modification history")

InsBufLine(hbuf, ln + 9, " * --------------------")

InsBufLine(hbuf, ln + 10, " * 01a, @szDay@@szMonth@@Year@, @szMyName@ written")

InsBufLine(hbuf, ln + 11, " * --------------------")

InsBufLine(hbuf, ln + 12, "

******************************************************************************/") // put the insertion point inside the header comment

SetBufIns(hbuf, ln + 1, strlen(szFunc) + strlen(szInf) + 8)

}

/****************************************************************************** * NumToName -- change the month number to name

*

* modification history

* --------------------

* 01a, 05mar2003, t357 written

* --------------------

******************************************************************************/ macro NumToName(Month)

{

if (Month == 1)

return "jan"

if (Month == 2)

return "feb"

if (Month == 3)

return "mar"

if (Month == 4)

return "apr"

if (Month == 5)

return "may"

if (Month == 6)

return "jun"

if (Month == 7)

return "jul"

if (Month == 8)

return "aug"

if (Month == 9)

return "sep"

if (Month == 10)

return "oct"

if (Month == 11)

return "nov"

if (Month == 12)

return "dec"

}

/****************************************************************************** * CutWord -- auto newline

*

* modification history

* --------------------

* 01a, 24mar2003, t357 fix some bug

* 01a, 05mar2003, t357 written

* --------------------

******************************************************************************/ macro CutWord(ncurLine, szInf)

{

LENGTH = 63

nlength = StrLen(szInf)

i = 0 /* loop control */

begin = 0 /* first character's index of current line */

pre = 0 /* preceding word's index */

hbuf = GetCurrentBuf()

// nline = GetBufLnCur()

while (i < nlength)

{

/* remove by t357

nrow = 0

sz = ""

while (nrow < 80)

{

if (nlength < 0)

break

sz = Cat(sz, szInf[nrow])

nrow = nrow + 1

nlength = nlength - 1

}

InsBufLine(hbuf, nline, sz)

szInf = szInf[nrow]

}

*/

c = szInf[i]

if (" " == @c@ && (i - b < LENGTH))

{

pre = i

}

else if (" " == @c@)

{

szOutput = ""

k = begin /* loop control */

while (k < pre)

{

szOutput = Cat(szOutput, szInf[k])

k = k + 1

}

InsBufLine(hbuf, ncurLine, sz)

ncurLine = ncurLine + 1

begin = pre

}

i = i + 1

}

if (h != i - 1)

{

szOutput = ""

k = begin /* loop control */

while (k < pre)

{

szOutput = Cat(szOutput, szInf[k])

k = k + 1

}

InsBufLine(hbuf, ncurLine, sz)

ncurLine = ncurLine + 1

}

}

/****************************************************************************** * GetFileName -- get the filename font-size: 12px;"> return name

}

/****************************************************************************** * ReturnTrueOrFalse -- Inserts "Returns True or False" at the current line

*

* modification history

* --------------------

* 01a, 05mar2003, t357 written

* --------------------

******************************************************************************/ macro ReturnTrueOrFalse()

{

szReturns = "return True if successful or False if errors."

hbuf = GetCurrentBuf()

ln = GetBufLnCur(hbuf)

szCurLine = GetBufLine(hbuf, ln)

DelBufLine(hbuf, ln)

InsBufLine(hbuf, ln, "@szCurLine@@szReturns@")

SetBufIns(hbuf, ln, StrLen(szReturns) + StrLen(szCurLine) + 3)

}

/****************************************************************************** * InsHeaderDef -- Inserts the header define in the headerfile

*

* modification history

* --------------------

* 01a, 05mar2003, t357 written

* --------------------

******************************************************************************/ macro InsHeaderDef()

{

hBuf = GetCurrentBuf()

szpathName = GetBufName(hBuf)

szfileName = GetFileName(szpathName)

szfileName = toupper(szfileName)

nlength = StrLen(szfileName)

i = 0 /* loop control */

szdefineName = ""

while (i < nlength)

{

if (szfileName[i] == ".")

szdefineName = Cat(szdefineName, "_")

else

szdefineName = Cat(szdefineName, szfileName[i])

i = i + 1

}

szdefineName = Cat("_", szdefineName)

IfdefineSz(szdefineName)

}

/****************************************************************************** * PrintDate - print date mailto:0@Day">0@Day@"

else

szDay = Day

szMonth = NumToName(Month)

hbuf = GetCurrentBuf()

ln = GetBufLnCur(hbuf)

szCurLine = GetBufLine(hbuf, ln)

DelBufLine(hbuf, ln)

InsBufLine(hbuf, ln, "@szCurLine@ @szDay@@szMonth@@Year@")

SetBufIns(hbuf, ln, StrLen(szCurLine) + 10)

}

// Ask user for ifdef condition and wrap it around current

// selection.

// 28mar2003, modified by t357.

// 26mar2003, modified by t357.

macro InsIfdef()

{

sz = Ask("Enter ifdef condition:")

if (sz != "")

{

// IfdefSz(sz);

hwnd = GetCurrentWnd()

sel = GetWndSel(hwnd)

hbuf = GetWndBuf(hwnd)

// get line the selection (insertion point) is font-size: 12px;"> InsBufLine(hbuf, sel.lnFirst, "") InsBufLine(hbuf, sel.lnFirst + 1, "@ich@#ifdef @sz@")

InsBufLine(hbuf, sel.lnFirst + 2, "@ich@" # chTab)

InsBufLine(hbuf, sel.lnFirst + 3, "@ich@#endif /* @sz@ */")

SetBufIns(hbuf, sel.lnFirst + 2, StrLen(ich) + StrLen(chTab))

}

}

// Wrap ifdeinef .. endif around the current selection

macro IfdefineSz(sz)

{

hwnd = GetCurrentWnd()

lnFirst = GetWndSelLnFirst(hwnd)

lnLast = GetWndSelLnLast(hwnd)

hbuf = GetCurrentBuf()

InsBufLine(hbuf, lnFirst, "#ifndef @sz@")

InsBufLine(hbuf, lnFirst + 1, "#define @sz@")

InsBufLine(hbuf, lnLast + 3, "#endif /* @sz@ */")

SetBufIns(hbuf, lnFirst + 2, 0)

}

/* A U T O E X P A N D */

/*-------------------------------------------------------------------------

Automatically expands C statements like if, for, while, switch, etc..

To use this macro,

1. Add this file to your project or your Base project.

2. Run the Options->Key Assignments command and assign a

convenient keystroke to the "AutoExpand" command.

3. After typing a keyword, press the AutoExpand keystroke to have the

statement expanded. The expanded statement will contain a ### string

which represents a field where you are supposed to type more.

The ### string is also loaded in to the search pattern so you can

use "Search Forward" to select the next ### field.

For example:

1. you type "for" + AutoExpand key

2. this is inserted:

for (###; ###; ###)

{

###

}

3. and the first ### field is selected.

-------------------------------------------------------------------------*/

/******************************************************************************

* AutoExpand - Automatically expands C statements

*

* DESCRIPTION: - Automatically expands C statements like if, for, while,

* switch, etc..

*

* Input:

* Output:

* Returns:

*

* modification history

* --------------------

* 01a, 27mar2003, t357 modified

* --------------------

******************************************************************************/

macro AutoExpand()

{

// get window, sel, and buffer handles

hwnd = GetCurrentWnd()

if (hwnd == 0)

stop

sel = GetWndSel(hwnd)

if (sel.ichFirst == 0)

stop

hbuf = GetWndBuf(hwnd)

// get line the selection (insertion point) is font-size: 12px;"> // parse word just to the left of the insertion point wordinfo = GetWordLeftOfIch(sel.ichFirst, szLine)

ln = sel.lnFirst;

chTab = CharFromAscii(9)

// prepare a new indented blank line to be inserted.

// keep white space font-size: 12px;"> szLine = strmid(szLine, 0, ich)

sel.lnFirst = sel.lnLast

SourceInsight和UltraEdit技巧

Source Insight使用技巧 默认情况下,SI已经定义了很多非常实用的快捷键: F5 指定行号,实现行跳转,在遇到编译错误的时候,能特别方便的找到出错行。Shift+F8 高亮显示指定标识,快速浏览标识的使用情况。 Ctrl+鼠标点击标识 直接跳转至标识定义处。 Ctrl+F 本文件内查找。 F3 本文件查找结果的上一个。 F4 本文件查找结果的下一个。 F7 打开Browse Project Symbols窗口,快速浏览工程内标识定义。 Ctrl+M 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里面所有汇编文件都包含进来

Source Insight用法精细

Source Insight实质上是一个支持多种开发语言(java,c ,c 等等) 的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,常被我 们当成源代码阅读工具使用。 作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困难。 当然Linux下的vim和emacs编辑程序并不是没有提供变量、函数搜索,彩色显示程序语句等功能。它们的功能是非常强大的。比如,vim和emacs就各自内嵌了一个标记程序,分别叫做ctag和etag,通过配置这两个程序,也可以实现功能强大的函数变量搜索功能,但是由于其配置复杂,linux附带的有关资料也不是很详细,而且,即使建立好标记库,要实现代码彩色显示功能,仍然需要进一步的配置(在另一片文章,我将会讲述如何配置这些功能),同时,对于大多数爱好者来说,可能还不能熟练使用vim和emacs那些功能比较强大的命令和快捷键。 为了方便的学习Linux源程序,我们不妨回到我们熟悉的window环境下,也算是“师以长夷以制夷”吧。但是在Window平台上,使用一些常见的集成开发环境,效果也不是很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows平台的函数不能彩色显示。于是笔者通过在互联网上搜索,终于找到了一个强大的源代码编辑器,它的卓越性能使得学习Linux内核源代码的难度大大降低,这便是Source Insight3.0,它是一个Windows平台下的共享软件,可以从https://www.360docs.net/doc/0112192462.html,/上边下载30天试用版本。由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在linux平台上将 /usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。 下面主要讲解如何使用Source Insight,考虑到阅读源程序的爱好者都有相当的软件使用水平,本文对于一些琐碎、人所共知的细节略过不提,仅介绍一些主要内容,以便大家能够很快熟练使用本软件,减少摸索的过程。 安装Source Insight并启动程序,可以进入图1界面。在工具条上有几个值得注意的地方,如图所示,图中内凹左边的是工程按钮,用于显示工程窗口的情况;右边的那个按钮按下去将会显示一个窗口,里边提供光标所在的函数体内对其他函数的调用图,通过点击该窗体里那些函数就可以进入该函数所在的地方。

教你叠各种折纸

教你叠各种折纸 玫瑰、莲花灯、雪花、樱花、青苹果……!(推荐转载收藏)建议先转到自己空间以后慢慢学习. 下面就教你简单玫瑰花的折法图解大家动手吧~ 莲花灯的制作方法工具/原料2:1的长方形彩纸粉色12张,绿色4张。尺寸相同,大小自定 步骤/方法 把长方形彩纸对折起来 四个角向内折 将上下两端沿中线折 .再向后折叠起来 将另外三张纸也折成同样的形状 绿色折纸要求按照相同折法做到第4步 不同的是绿色折纸需要往反方向中间对折 3片花瓣和一片叶子为一组 将这一组如图所示重叠起来中间用回形针暂时固定

按照以上方法做好3组 将固定用的回形针拿掉,用细线把这四组紧紧的拴在一起 整理开来 将最上面一层向中间折起来 陆续把其余的三层也向中间折起来 叶子部分不用折起来,展开即可 一朵漂亮的祈福莲花就完成了 中间放上蜡烛即可成为中秋节的莲花灯哦雪花的折法纸折的雪花,是不是很漂亮纸雪花的折法下面是具体的步骤:教你如何折樱花十步教你折出漂亮的樱花。 材料:纸一张,浆糊 步骤: 折叠一次 看图,不废话 这里也很简单 这里考验你的眼力了 怎么样有点成就感了吧 抹上胶水,定型即可。 用花色纸叠出的更好看(⊙o⊙)哦 成品图,用多种颜色,不同的花色的纸张折叠

出的樱花更多彩: 卷卷花球的折法今天要做的卷卷花球。 步骤1: 正方形纸,需要30张,我选了五种颜色每样6张步骤2: 如图对折,后打开,另一面也对折 步骤3: 三角形打开后,如图向底边对折 步骤4: 折成图上的大三角 步骤5: 用牙签卷起一边,向中线卷,卷数越多越好 步骤6: 其余几边同样卷法 步骤7: 提起一边,把五种不同颜色的纸卷在一起 步骤8: 依照三角五角的组合方式,把30个组合在一起,就完成了 折法图解如下:

SourceInsight3.5软件安装流程.V1.0.0

文档类型开发文档 保密级别公开 技术报告 名称:SourceInsight3.5软件安装流程 编号: 版本号:V1.0.0 负责人:董磊 成员: 日期:2016年06月01日

目录 目录 (1) 版本 (2) 1文档目的 (3) 2安装SourceInsight3.5 (3) 3配置SourceInsight3.5 (9) 4使用SourceInsight3.5新建工程 (11) 图表目录 (16)

版本

1文档目的 Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++,C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。Source Insight不仅仅是一个强大的程序编辑器,它还能显示reference trees,class inheritance diagrams和call trees。Source Insight提供了最快速的对源代码的导航和任何程序编辑器的源信息。Source Insight提供了快速和革新的访问源代码和源信息的能力。与众多其它编辑器产品不同。 本文档详细介绍了SourceInsight3.5软件的安装流程、配置以及使用方法。2安装SourceInsight3.5 解压SourceInsight3.5压缩包并打开此文件夹,运行“InsightSetup”,当弹出如下图所示界面时,点击“Agree”,表示同意条款。 图2-1 当弹出如下图所示界面时,点击“Next”。

图2-2 当弹出如下图所示界面时,点击“Next”。 图2-3 当弹出如下图所示界面时,保持默认的安装路径,点击“Next”。

蝎子折叠方法等各种折纸方法图解大全 绝对经典

蝎子折叠方法等各种折纸方法图解大全 黄色的小蝎子 原本很可怕的毒蝎子,通过折纸的转换,好像也没有那么的让人害怕了。做法有一点点复杂,不过慢慢的跟着折,多做几次,应该也能顺利的完成。

竖起耳朵的小白兔 兔子眼睛的颜色与它们的皮毛颜色有关系,黑兔子的眼睛是黑色的,灰兔子的眼睛是灰色的,白兔子的眼睛是透明的。那为什么我们看到小白兔的眼睛是红色的呢? 兔子的眼睛有红色,蓝色,茶色等各种颜色,也有的兔子左右两只眼睛的颜色不一样.或许因为兔子是夜行动物,所以它的眼睛能聚很多光,即使在微暗处也能看到东西.另外,由于兔子的眼睛长在脸的两侧,因此它的视野宽阔,对自己周围的东西看得很清楚,有人说兔子连自己的脊梁都能看到.不过,它不能辨别立体的东西,对近在眼前的东西也看不清楚。小白兔身体里不含色素,它的眼睛是无色的,我们看到的红色是血液的颜色,并不是眼球的颜色,所以它的眼睛自然就是红色的了。

鹈鹕-Pelican 鹈鹕是一种大型的游禽,属鹈形目鹈鹕科,又叫塘鹅。在世界上共有8种,大多分布在欧洲、亚洲、非洲等地。我国的鹈鹕共有2种,分别为:斑嘴鹈鹕和白鹈鹕。斑嘴鹈鹕,鸟如其名,在它的嘴上布满了蓝色的斑点,头上被覆粉红色的羽冠,上身为灰褐色,下身为白色。而白鹈鹕主要分布在我国新疆、福建一带,它们通体为雪白色。二者均为我国的二级保护动物。 鹈鹕,让人一眼就能认出它们的是嘴下面的那个大皮囊。鹈鹕的嘴长30多厘米,大皮囊是下嘴壳与皮肤相连接形成的,可以自由伸缩,是它们存储食物的地方。鹈鹕和鸬鹚一样也是也是捕鱼能手。它的身长150厘米左右,全身长有密而短的羽毛,羽毛为桃红色褐鹈鹕(Pelecanus occidentalis)或浅灰褐色。在它那短小的尾羽跟部有个黄色的油脂腺,能够分泌大量的油脂,闲暇时它们经常用嘴在全身的羽毛上涂抹这种特殊的“化妆品”,使羽毛变得光滑柔软,游泳时滴水不沾。

sourceinsight 快捷键 大全

SourceInsight 快捷方式大全 完成语法: 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

蝎子折叠方法等各种折纸方法图解大全绝对经典

蝎子折叠方法等各种折纸方法图解大全

竖起耳朵的小白兔 兔子眼睛的颜色与它们的皮毛颜色有关系,黑兔子的眼睛是黑色的,灰兔子的眼睛是灰色的,白兔子的眼睛是透明的。那为什么我们看到小白兔的眼睛是红色的呢? 兔子的眼睛有红色,蓝色,茶色等各种颜色,也有的兔子左右两只眼睛的颜色不一样.或许因为兔子是夜行动物,所以它的眼睛能聚很多光,即使在微暗处也能看到东西.另外,由于兔子的眼睛长在脸的两侧,因此它的视野宽阔,对自己周围的东西看得很清楚,有人说兔子连自己的脊梁都能看到.不过,它不能辨别立体的东西,对近在眼前的东西也看不清楚。小白兔身体里不含色素,它的眼睛是无色的,我们看到的红色是血液的颜色,并不是眼球的颜色,所以它的眼睛自然就是红色的了。

鹈鹕-Pelican 鹈鹕是一种大型的游禽,属鹈形目鹈鹕科,又叫塘鹅。在世界上共有8种,大多分布在欧洲、亚洲、非洲等地。我国的鹈鹕共有2种,分别为:斑嘴鹈鹕和白鹈鹕。斑嘴鹈鹕,鸟如其名,在它的嘴上布满了蓝色的斑点,头上被覆粉红色的羽冠,上身为灰褐色,下身为白色。而白鹈鹕主要分布在我国新疆、福建一带,它们通体为雪白色。二者均为我国的二级保护动物。 鹈鹕,让人一眼就能认出它们的是嘴下面的那个大皮囊。鹈鹕的嘴长30多厘米,大皮囊是下嘴壳与皮肤相连接形成的,可以自由伸缩,是它们存储食物的地方。鹈鹕和鸬鹚一样也是也是捕鱼能手。它的身长150厘米左右,全身长有密而短的羽毛,羽毛为桃红色褐鹈鹕(Pelecanus occidentalis)或浅灰褐色。在它那短小的尾羽跟部有个黄色的油脂腺,能够分泌大量的油脂,闲暇时它们经常用嘴在全身的羽毛上涂抹这种特殊的“化妆品”,使羽毛变得光滑柔软,游泳时滴水不沾。

各种折纸方法图解大全-幼儿园大班教学用

各种折纸方法图解大全(绝对经典)竖起耳朵的小白兔

鹈鹕-Pelican 鹈鹕是一种大型的游禽,属鹈形目鹈鹕科,又叫塘鹅。在世界上共有8种,大多分布在欧洲、亚洲、非洲等地。我国的鹈鹕共有2种,分别为:斑嘴鹈鹕和白鹈鹕。斑嘴鹈鹕,鸟

如其名,在它的嘴上布满了蓝色的斑点,头上被覆粉红色的羽冠,上身为灰褐色,下身为白色。而白鹈鹕主要分布在我国新疆、福建一带,它们通体为雪白色。二者均为我国的二级保护动物。 鹈鹕,让人一眼就能认出它们的是嘴下面的那个大皮囊。鹈鹕的嘴长30多厘米,大皮囊是下嘴壳与皮肤相连接形成的,可以自由伸缩,是它们存储食物的地方。鹈鹕和鸬鹚一样也是也是捕鱼能手。它的身长150厘米左右,全身长有密而短的羽毛,羽毛为桃红色褐鹈鹕(Pelecanus occidentalis)或浅灰褐色。在它那短小的尾羽跟部有个黄色的油脂腺,能够分泌大量的油脂,闲暇时它们经常用嘴在全身的羽毛上涂抹这种特殊的“化妆品”,使羽毛变得光滑柔软,游泳时滴水不沾。

鼹鼠 鼹鼠的拉丁文学名就是“掘土”的意思。它的身体完全适应地下的生活方式,前脚大而向外翻,并配备有力的爪子,像两只铲子;他的头紧接肩膀,看起来像没有脖子,整个骨架矮而扁,跟掘土机很相似。它的尾小而有力,耳朵没有外廓,身上生有密短柔滑的黑褐色绒毛,

毛尖不固定朝某个方向。这些特点都非常适合它在狭长的隧道自由地奔来奔去。隧道四通八达,里面潮湿,很容易孳生蚯蚓、蜗牛等虫类,便于它经常在地下“餐厅”进餐。鼹鼠成年后,眼睛深陷在皮肤下面,视力完全退化,再加上经常不见天日,很不习惯阳光照射,一旦长时间接触阳光,中枢神经就会混乱,各器官失调,以致于死亡。 “鼹鼠”一词在捷克文里拼作"krtek",在英文中是"mole"。由于鼹鼠善于打洞,现在这个词在媒体报道中已经成了“间谍”的代名词,所以如果你听到说某某国家情报局安全部抓到一只"鼹鼠"可不要真以为他们是抓到了一只打洞的小老鼠。

[完整版]Source_Insight教程及技巧

Source Insight使用简单说明 Source Insight是一个功能十分强大、使用也很方便的程序编辑器。它内置对C/C++、Java 甚至x86汇编语言程序的解析,在你编程时提供有用的函数、宏、参数等提示,因而,Source Insight正在国际、国内众多的IT公司使用。 Source Insight功能强大,它的窗口、菜单初一看来似乎很多,所以刚刚开始使用Source Insight的朋友往往觉得很麻烦。这里本人结合自己的使用经验,简单说说Source Insight的使用。(本文以McuSystem为例,Source Insight 以3.0版本为例。其他版本的Source Insight 大同小异) 和众多程序编辑环境一样,Source Insight中也有Project。 建立工程的方法很简单: 1.打开Source Insight,选择Project菜单->New Project; 2.在出现的对话框中选择并选择存放工程文件的文件夹,输入工程名(比如 McuSystem),点击“保存”; 3.又出现一个对话框,在Configuration部分可以选择这个工程使用全局配置文件还 是自己单独的配置文件,这个无所谓,(不过最好选择单独的配置文件),再点击 “OK”; 4.再次出现一个对话框,这是选择文件添加到Project中,通过左边的树状图找到你 想添加的文件,点击Add就可以了(如图1)。你可以将不通路径下的文件添加到 同一个工程中,而不用拷贝源文件。选择完后点击Close; 图1 这样工程就建立好了,文件列表就出现在Project Window中(如果Project Window被关闭了,可以选中View菜单->Project Window)。点击Project Window中任意一个文件,文件的内容出现在中央的编辑区了。(如图2)

Source Insight中添加自定义功能

在Source Insight中添加自定义功能的步骤如下 1.Source Insight中,Options->Custom Commands...->Add...,New Command name 随便写,我的是"Edit with Vim" 2.Run中写入: "C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f 意思是在当前已经打开的gvim窗口里面打开当前的文件,并且跳转到指定行 %l为当前的行号,%f为文件名 使用--remote-silent 的作用是,如果已经打开了对应文件,就不会打开第二次,而是在已经打开的文件里跳转到对应行 3.还是同一个对话框里面,选择Keys->Assign New Key...->按F12,如果你已经将F12设置给其他命令,选择其他的按键就行了 下面是一些常用自定义功能:( CUSTOM COMMANDS ) 打开资源管理器并选中当前文件 ShellExecute open explorer /e,/select,%f 查看log "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:%f /notempfile /closeonend diff "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend 取得锁定(check out) "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:lock /path:%f /notempfile /closeonend 提交(check in) "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend 更新(update) "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:%f /notempfile /closeonend 更新整个目录(update all) "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:*.* /notempfile /closeonend 取消锁定(undo check out) "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:revert /path:%f /notempfile /closeonend 在ultriEdit中编辑 "C:\Program Files\UltraEdit-32/uedit32" %f 在vim中编辑并定位到当前行 "C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f 汇总其他小技巧: 让{ 和} 不缩进: Options->Document Options->Auto Indent->Indent Open Brace/Indent Close Brace hao space: SourceInsight 小技巧 1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。

手工折纸图解大全——动物篇

竖起耳朵的小白兔 兔子眼睛的颜色与它们的皮毛颜色有关系,黑兔子的眼睛是黑色的,灰兔子的眼睛是灰色的,白兔子的眼睛是透明的。那为什么我们看到小白兔的眼睛是红色的呢?这是因为白兔眼睛里的血丝(毛细血管)反射了外界光线,透明的眼睛就显出红色。 兔子的眼睛有红色,蓝色,茶色等各种颜色,也有的兔子左右两只眼睛的颜色不一样.或许因为兔子是夜行动物,所以它的眼睛能聚很多光,即使在微暗处也能看到东西.另外,由于兔子的眼睛长在脸的两侧,因此它的视野宽阔,对自己周围的东西看得很清楚,有人说兔子连自己的脊梁都能看到.不过,它不能辨别立体的东西,对近在眼前的东西也看不清楚。灰兔子的眼睛是灰色的。小兔是有各种颜色的,它们的眼睛也是有不一样颜色的。那是因为它们身体里有一种叫色素的东西。含有灰色素的小兔,毛和眼睛就是灰色的;含黑色素的小兔,毛和眼睛是黑的。小白兔身体里不含色素,它的眼睛是无色的,我们看到的红色是血液的颜色,并不是眼球的颜色,所以它的眼睛自然就是红色的了。兔子的牙齿有28颗。 一些人还会根据人的长相或者习惯或其它原因给人起外号叫兔子。你的身边有没有叫“兔子”的朋友啊?呵呵 例如: 1.家庭教师hitman reborn的男主角泽田纲吉(性格方面) 2.中国女排队员薛明 3.SuperJunior成员李晟敏

鹈鹕-Pelican 鹈鹕是一种大型的游禽,属鹈形目鹈鹕科,又叫塘鹅。在世界上共有8种,大多分布在欧洲、亚洲、非洲等地。我国的鹈鹕共有2种,分别为:斑嘴鹈鹕和白鹈鹕。斑嘴鹈鹕,鸟如其名,在它的嘴上布满了蓝色的斑点,头上被覆粉红色的羽冠,上身为灰褐色,下身为白色。而白鹈鹕主要分布在我国新疆、福建一带,它们通体为雪白色。二者均为我国的二级保护动物。 鹈鹕,让人一眼就能认出它们的是嘴下面的那个大皮囊。鹈鹕的嘴长30多厘米,大皮囊是下嘴壳与皮肤相连接形成的,可以自由伸缩,是它们存储食物的地方。鹈鹕和鸬鹚一样也是也是捕鱼能手。它的身长150厘米左右,全身长有密而短的羽毛,羽毛为桃红色褐鹈鹕(Pelecanus occidentalis)或浅灰褐色。在它那短小的尾羽跟部有个黄色的油脂腺,能够分泌大 量的油脂,闲暇时它们经常用嘴在全身的羽毛上涂抹这种特殊的“化妆品”,使羽毛变得光滑柔软,游泳时滴水不沾。

source insight代码格式化

source insight代码格式化(Astyle) GNU的astyle是一个免费的代码格式化工具,能够格式化c/c++等代码,我们可以将Astyle.exe外挂到SourceInsight中,具体步骤如下: 1、下载Astyle工具 在网站https://www.360docs.net/doc/0112192462.html,/projects/astyle/下载 2、source insight中挂载Astyle工具 a、将AStyle_2.02_windows.zip解压到D:\lb\目录下(可以放在任意目录)。 b、在SourceInsight菜单栏里,Options-->Custom Commands界面上选择:Add,在弹出对话框写入命令名,在run中添加相应的命令。 1)ansi C格式化当前文件的命令为:"D:\lb\AStyle\bin\Astyle.exe"--style=ansi -s4-S-N-L-m0-M40--convert-tabs--suffix=.pre%f

2)ansi C格式化某个目录下所有文件的命令为:"D:\lb\AStyle\bin\Astyle.exe" Z:\LocalProject\DEZHOU3716/*.c Z:\LocalProject\DEZHOU3716/*.h-- style=ansi-s4-S-N-L-m0-M40--recursive--convert-tabs--suffix=.pre %f c、在SourceInsight菜单栏里,Options-->Custom Commands界面上选择:Keys,在弹出对话框的Command框的列表中找到你定义的命令名,然后点击

Source_Insight 3.5 简明使用教程

https://www.360docs.net/doc/0112192462.html, 1 Source Insight 3.5使用教程 一、建立工程: 1. 在桌面上新建一个保存工程文件的文件夹,文件夹取名为project ,如图1所示。(当然您可以在你任何路径下建立文件夹,文件夹的名称也可随意取。) 2. 将要加入工程中的源文件(*.h,*.c 等),都拷贝到建立的project 文件夹中。 图1 3. 打开Source Insight 3.5软件进入图2界面。 图2

4.点击菜单“Porject→New Project”进入图 3 5.图3中弹出的New Project对话框内,修改您要建立的工程名称,在此我们改成test;再点击Browse选择您要保存的路径,在本例我们选择第1步中建立的project 文件夹,即C:\Documents and Settings\tang03\桌面\project。如图4: 图4 https://www.360docs.net/doc/0112192462.html,2

6.点击图4中的New Project的“OK”按纽后进入新工程设置如图5所示界面,在此我们按图5中的选择进行设置后,点击“OK”确定,进入图6所示界面。 图5 7.在图6中,我们要选择要加入工程中的源文件。在“Add and Remove Project Files”对话框中的“Files Name”栏目下点击选中任一你想加入到工程中的文件,比如:I2C.C 文件,再点击右侧的“ADD”按纽即可将I2C.C文件加入工程,如图7和8所示。 图6 https://www.360docs.net/doc/0112192462.html,3

https://www.360docs.net/doc/0112192462.html, 4 图7 图8

Source_Insight使用教程

作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是 Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困难。 当然Linux下的vim和emacs编辑程序并不是没有提供变量、函数搜索,彩色显示程序语句等功能。它们的功能是非常强大的。比如,vim和emacs就各自内嵌了一个标记程序,分别叫做ctag 和etag,通过配置这两个程序,也可以实现功能强大的函数变量搜索功能,但是由于其配置复杂,linux附带的有关资料也不是很详细,而且,即使建立好标记库,要实现代码彩色显示功能,仍然需要进一步的配置(在另一片文章,我将会讲述如何配置这些功能),同时,对于大多数爱好者来说,可能还不能熟练使用vim和 emacs那些功能比较强大的命令和快捷键。 为了方便的学习Linux源程序,我们不妨回到我们熟悉的window环境下,也算是“师以长夷以制夷”吧。但是在Window平台上,使用一些常见的集成开发环境,效果也不是很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows 平台的函数不能彩色显示。于是笔者通过在互联网上搜索,终于找到了一个强大的源代码编辑器,它的卓越性能使得学习Linux内核源代码的难度大大降低,这便是Source Insight3.0,它是一个Windows平台下的共享软件,由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在 linux平台上将/usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。下面主要讲解如何使用Source Insight,考虑到阅读源程序的爱好者都有相当的软件使用水平,本文对于一些琐碎、人所共知的细节略过不提,仅介绍一些主要内容,以便大家能够很快熟练使用本软件,减少摸索的过程。 安装Source Insight并启动程序,可以进入图1界面。在工具条上有几个值得注意的地方,如图所示,图中内凹左边的是工程按钮,用于显示工程窗口的情况;右边的那个按钮按下去将会显示一个窗口,里边提供光标所在的函数体内对其他函数的调用图,通过点击该窗体里那些函数就可以进入该函数所在的地方。

Source Insight 常用设置和快捷键大全

1.括号配对高亮: “在前括号左侧,后括号左侧”双击鼠标左键,可以选定匹配括号和其中内容(<>,(),L{R},[]之间) 2.让{ 和} 不缩进: Options -> Document Options -> Auto Indenting -> Auto Indent Type 选Simple 还有:让{ 和} 不缩进:options->document options->auto indent 去掉indent Open Brace和Indent Close Brace。(不好使,括号无法配对对齐!) 3.添加文件类型 用户可以定义自己的类型,Options->Document Options->add type,定义文件类型名以及文件名后缀。 勾选include when adding to projects在添加目录下文件到工程是该类文件就会添加进SI的工程。 如果需要将所有文件添加进SI的工程,可以定义一种文件类型*.*。 4.恢复ctrl+a的全选功能 Options -> Key Assignments:通过关键词save 找到save all,更改为ctrl+shift+a,通过关键词select找到select all,更改为ctrl +a 5.设置背景色: Options->preference->color->windows background设置背景色(护眼色:85,90,205) 6.字符大小不一: 方法1:选上"view --> draft view",就可以让每个字符的宽度一致了。快捷键是"Alt + F12" 方法2:解决中文注释字体间距太大: (1).Options->Style Properties (2). 在左边Style Name下找到Comment Multi Line和Comment.在其右边对应的Font属性框下的Font Name中选“Pick...”设置为宋体、常规、小四。确定,退回Style Properties界面,Size设为10。最后设置Clolors框下Foreground,点“Pick...”选择一种自己喜欢的颜色就OK了

sourceinsight宏配置与使用

sourceinsight宏配置与使用指引 kaka/赵肖云 blog: https://www.360docs.net/doc/0112192462.html,/tiananma 深圳桑菲消费通信有限公司

Source insight是一款常用的代码编辑查看管理工具,我们可以利用其本身提供的API函数编写自定义功能的宏,充分体会到它为我们的开发工作带来的便利。 在help,Macro Language Guide中可以看到相关的API:

利用上面的API函数编写一些我们开发工作中常用的宏: 1,打开基础工程,路径通常为: C:\Documents and Settings\tiananma\My Documents\Source Insight\Projects\Base 2,新建*.em文件,编写自定义的宏,如插入文件头,注释等 rebuild projects 3,执行project-? 将自定义的宏加入菜单:option?Menu Assignments 待加入菜单项 或自定义宏 准备加入的位置

上面的画面中,点Keys…可以同时为其分配快捷键,当然也可以执行option?Key Assignments实现 经上述两步操作后,我们自定义的宏已加入菜单并已分配快捷键了 addNormalComment宏 分配的快捷键

接下来,我们可以根据个人喜好设置自己的颜色方案(是不是觉得白色的背景让人看得并不舒服) 在代码查看主窗口点右键,选菜单Style Properties..,当然也可通过主菜单option ?Style Properties…进入如下画面调整各种项目如注释/普通文字的字体/背景色等等。 到此,基本配置过程已完毕,可以导出自己的配置分享给别人使用 执行命令option--?Save configurations….,会生成一个后缀为CF3的文件。 使用时执行命令option--? Load configurations…. 待设定项目 字体属性

SourceInsight使用技巧(转)

SourceInsight 使用技巧(转)
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、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器)
有个同事比较生猛,得整汇编代码,但在 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、去掉功能强大但是无用的自动完成功能

sourceinsight快捷键

1常用操作 Close 关闭文件 : Ctrl+W Close All 关闭所有文件 : Ctrl+Shift+W Replace 替换 : Ctrl+H Go Back 后退 : Alt+< Go Forward 向前 : Alt+> 让选中的字符串高亮显示:Shift+F8 搜索: Ctrl+F 向前搜索 : F4 向后搜索 :F3 Go To Line... 转到指定行 : F5, Ctrl+G Go To Next Change 转到下一个修改 : Alt+(KeyPad) + Go To Previous Change 回到前一个修改 : Alt+(KeyPad) - Jump To Link 跳到连接(就是语法串口列表的地方) : Ctrl+L Go Back Toggle 后退到索引 : Alt+M 2详细操作 Exit 退出程序 : Alt+F4 Redraw Screen 重画屏幕 : Ctrl+Alt+Space Back Tab : Shift+Tab Backspace : Shift+BackSpace Complete Symbol 完成语法 : Ctrl+E Copy Line 复制一行 : Ctrl+K Copy Line Right 恰好复制该位置右边的该行的字符 : Ctrl+Shift+K Copy To Clip... : Ctrl+Del Cut Line 剪切一行 : Ctrl+U Cut Line Right 剪切该位置右边的该行的字符 : Ctrl+; Cut To Clip 剪切到剪贴板 : Ctrl+Shift+X Cut Word 剪切一个字 : Ctrl+, Indent Left 左边缩进 : F9 Indent Right 右边缩进 : F10 Insert Line 插入一行 : Ctrl+I Insert New Line 插入新行 : Ctrl+Enter Join Lines 加入一行 : Ctrl+J Paste From Clip 从剪切板粘贴 : Ctrl+Ins Paste Line 粘贴一行 : Ctrl+P Redo 重复上一个动作 : Ctrl+Y Renumber 重新编号 : Ctrl+R Repeat Typing 重复输入 : Ctrl+\ Replace 替换 : Ctrl+H

SourceInsight的宏语言使用

Source Insight使用进阶篇——宏语言使用Source Insight是阅读和编写代码的好东东,基本上也算得上是经典之作了,虽然还有一点点小bug,不过对于我们这些C程序员来说可是一旦拥有别无所求。但是大家可能很少用到Source Insight的宏语言(Source Insight macro language)。Source Insight中的宏语言类同于MS Office中的VBA,也具有程序化执行用户预定义操作的通用宏语言功能。VBA功能的强大就不用多作说明了,而Source Insight的宏语言也不逊色。以下就以项目中一次实际应用为例进行说明。 Source Insight宏语言语法和C语言类似,包括:顺序、分支和循环的程序结构。同时宏语言可以实现字符操作、文件操作、控制Source Insight文件窗口、访问symbol列表和symbol类型、查找替换等访问控制操作。 在一个移植类项目中,遇到了一个代码整体移植的需求。其中,有一项主要工作为代码复制及主要symbol替换。即给绝大部分全局函数和全局变量追加前缀以便与移植前区别,例如:函数”extern void func();”替换为”extern void prefix_func();”,函数和变量的声明、定义和使用都需进行替换。项目需求示意图如图1: 原有代码需要新生成的代码 图 1 项目需求示意图 这项工作人工进行需要找出需替换的symbol,再做替换操作。由于代码量较大(约几十万行代码总量,其中有5000多个symbol需要替换),人工替换非常繁琐,又易出错。一时又找不到合适的工具,这时我们想到了Source Insight的宏语言。通过Source Insight 的宏语言,访问Source Insight的symbol列表,可以区分函数,全局变量,局部变量等C

Source-Insight使用技巧

sourceinsight使用技巧 1 sourceinsight screen font的默认字体是Verdana的,它是一直变宽字体。在Document style中可以将字体改为定宽的Courier 2 勾掉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、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器) 有个同事比较生猛,得整汇编代码,但在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的全局设置)

相关文档
最新文档