搜档网
当前位置:搜档网 › Source_Insight使用教程

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菜单→Pref erences→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等, 写到该行末按回车,则新行自动相对上一行缩进两列。

勾掉I ndent Open Brace和Indent Close Brace的效果∶继上一段,在相对缩进行里, 如果输入"}", 则自动和上一行列对齐(好像勾不勾都会有这个功能);而输入"{"时,不会与下面的行对齐(这是勾上Indent Open Brace时的效果)。

2、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器)

有个同事比较生猛,得整汇编代码,但在SIS里建立PR OJ ECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都包含进来,只加了.inc和.asm后缀的,.s后缀的没有。而且用SIS打开.s的文件,一片黑白没有色彩,感觉回到DOS的EDIT时代了……解决方法是在Op tions->Documen t Op tions里面,点左上的Documen t Type下拉菜单,选择x86 Asm Source File,然后在右边的File f il ter里*.asm;*.inc;的后面加上*.s;接着CLOSE就可以了。上面两个问题解决了,但注意加入*.s后还需要重新ADD TREE一遍才能把这些汇编加到PR OJ ECT里面。

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 找到Sc roll Half Page Up,取消小键盘/;通过关键词Scroll 找到Scroll Half Page Down取消小键盘*;通过关键词Function找到Function Up,取消小键盘-,通过关键词Function找到Function dow n,取消小键盘+。5、恢复c trl+a的全选功能

通过关键词save 找到save all,更改为ctrl+shif t+a,通过关键词select找到select all,更改为ctrl +a

6、解决字符等宽对齐问题。

SIS默认字体是VER DANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,VER DANA字体是不等宽的。比如下面两行

llllllllll

MMMMMMMMMM

同样10个字符,长度差多了.用VER DANA来看程序,有些本应该对齐的就歪了。解放方法是使用等宽的字体,但肯定比较丑。可以用DOS 字体,也就是记事本里的默认字体sysfixed 很丑,要有心理准备。比较推荐的是用Courier New。

SourceInsight提供的功能

1、解析日志信息时非常有用的Source Link

总地说来,SourceLink根据特定的搜索模式,把当前文件中满足模式的行、链接到由该行指定的其他源文件中。

所谓特定的搜索模式,共有两种"File, then line"和"Line, then file",其中前后两部分依靠正则表达式的组的概念来予以分割。如果当前文件具有匹配行,比如"Error d:tcsrcq5.c 18: Lvalue required in f unction j sSort",那么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上下文敏感的智能重命名(Con text-Sensitive Smar t Rename)

Smart Rename命令、快捷键是Ctrl+',是上下文敏感的全局搜索替换。它可以智能地重命名全部项目文件中的一个标示符。SourceInsight 的搜索索引(search index)使得搜索过程进行地非常快。而且,使用Smart Rename所做的替换会被记录在Search Results窗口中,每一条替换记录旁有一个SourceLink链接到替换发生地文件。

Smart Rename可以用来重命名标记(symbol)。如果勾选了Smart Ref erence Matching选项,Smart Rename就只在正确的上下文范围内进行重命名。它可以智能地重命名全部项目文件中的一个标示符;它可以重命名函数本地变量,类或结构体成员、函数。

在弹出的Smart Rename窗口中有下面几项∶

【使用心得列表】

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

(2)如果勾掉Smart Reference Matching,会搜索全部项目文件,并且Old Name框中不显示完全限定名;如果勾选Smart Ref erence 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 j sSort

则我们要匹配"d:tcsrcq5.c18"部分,进一步地,按照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,我的j ava源文件放于d:j avasrc中,并命名为qn.j ava或qtn.j ava(其中n=1,2,…)。

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

D:j avasrcQ3.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.sodocs.net/doc/5211859097.html,/Jupin/archive/2005/02/04/281020.aspx

说明:

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

使用说明:

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

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

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

/*附上宏定义文件*/

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

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

*InsFileHeader -- insert the inf ormation of f ile

*

*modification history

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

*01a, 23mar2003, added DES CRIPTION by t357

*01a, 05mar2003, t357 w ritten

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

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

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

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

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

T his actually w orks 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 s zMyName = "t357" ########

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

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

szMyName = ""

// Get current time

szTime = GetSysTime(1)

Day = szTime.Day

M onth = szTime.Month

Y ear = s zTime.Year

if (Day < 10)

szDay = "0@Day@"

else

szDay = Day

szMonth = NumToName(Month)

hBuf = GetCurrentBuf()

szpathName = GetBuf Name(hBuf)

szfileName = GetFileName(szpathName)

nlength = StrLen(szf ileName)

szInf = Ask("Enter the information of f ile:")

s zDescription = Ask("Enter the description of f ile:")

hbuf = GetCurrentBuf()

// begin assembling the title string

InsBuf Line(hbuf, 0, "/******************************************************************************")

InsBuf Line(hbuf, 1, " *@szf ileName@ - @szInf@")

InsBuf Line(hbuf, 2, " *")

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

InsBuf Line(hbuf, 4, " *")

InsBuf Line(hbuf, 5, " *DES CRIPTION: - ")

InsBuf Line(hbuf, 6, " * @szDescription@")

InsBuf Line(hbuf, 7, " *modification history")

InsBuf Line(hbuf, 8, " * --------------------")

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

InsBuf Line(hbuf, 10, " * --------------------")

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

SetBuf Ins(hbuf, 1, nlength + strlen(szInf) + 8)

}

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

*InsFunHeader -- insert function's inf ormation

*

*modification history

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

*01a, 23mar2003, added DES CRIPTION by t357

*01a, 05mar2003, t357 w ritten

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

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

{

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

// I f the variable doesn't exist, then the ow ner field is skipped.

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

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

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

####### for example s zMyName = "t357" ########

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

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

szMyName = ""

// Get a handle to the current file buff er 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

M onth = szTime.Month

Y ear = s zTime.Year

if (Day < 10)

szDay = "0@Day@"

else

szDay = Day

szMonth = NumToName(Month)

szInf = Ask("Enter the information of f unction:")

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

// begin assembling the title string

sz = "/******************************************************************************" InsBuf Line(hbuf, ln, s z)

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

InsBuf Line(hbuf, ln + 2, " *DES CRIPTION: - ")

I nsBuf Line(hbuf, ln + 3, " * @szDescription@ ")

// remove by t357. CutWord(szDescription)

InsBuf Line(hbuf, ln + 4, " *Input: ")

InsBuf Line(hbuf, ln + 5, " *Output: ")

InsBuf Line(hbuf, ln + 6, " *Returns: ")

InsBuf Line(hbuf, ln + 7, " *")

InsBuf Line(hbuf, ln + 8, " *modification history")

InsBuf Line(hbuf, ln + 9, " * --------------------")

InsBuf Line(hbuf, ln + 10, " * 01a, @szDay@@sz Month@@Year@, @szMy Name@ written")

InsBuf Line(hbuf, ln + 11, " * --------------------")

InsBuf Line(hbuf, ln + 12, "

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

SetBuf Ins(hbuf, ln + 1, strlen(szFunc) + strlen(szInf) + 8)

}

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

*

*modification history

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

*01a, 05mar2003, t357 w ritten

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

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

{

if (Month == 1)

return "j an"

if (Month == 2)

return "f eb"

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 new line

*

*modification history

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

*01a, 24mar2003, t357 f ix some bug

*01a, 05mar2003, t357 w ritten

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

******************************************************************************/ 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 = GetBuf LnCur()

while (i < nlength)

{

/* remove by t357

nrow = 0

sz = ""

while (nrow < 80)

{

if (nlength < 0)

break

sz = Cat(sz, szI nf[nrow])

nrow = nrow + 1

nlength = nlength - 1

}

InsBuf Line(hbuf, nline, sz)

szInf = s zInf[nrow]

}

*/

c = szI nf[i]

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

{

pre = i

}

else if (" " == @c@)

{

s zOutput = ""

k = begin /*loop control */

while (k < pre)

{

s zOutput = Cat(szOutput, szInf[k])

k = k + 1

}

I nsBuf Line(hbuf, ncurLine, s z)

ncurLine = ncurLine + 1

begin = pre

}

i = i + 1

}

if (h != i - 1)

{

s zOutput = ""

k = begin /* loop control */

while (k < pre)

{

s zOutput = Cat(szOutput, szInf[k])

k = k + 1

}

I nsBuf Line(hbuf, ncurLine, s z)

ncurLine = ncurLine + 1

}

}

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

}

/****************************************************************************** *ReturnTrue OrFalse -- Inserts"Returns True or False" at the c urrent line

*

*modification history

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

*01a, 05mar2003, t357 w ritten

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

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

{

szReturns = "return True if successf ul or False if errors."

hbuf = GetCurrentBuf()

ln = GetBuf LnCur(hbuf)

szCurLine = GetBuf Line(hbuf, ln)

DelBuf Line(hbuf, ln)

InsBuf Line(hbuf, ln, "@sz CurLine@@szReturns@")

SetBuf Ins(hbuf, ln, StrLen(szReturns) + StrLen(szCurLine) + 3)

}

/****************************************************************************** *InsHeaderDef -- Inserts the header def ine in the headerf ile

*

*modification history

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

*01a, 05mar2003, t357 w ritten

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

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

{

hBuf = GetCurrentBuf()

szpathName = GetBuf Name(hBuf)

szfileName = GetFileName(szpathName)

szfileName = toupper(szfileName)

nlength = StrLen(szf ileName)

i = 0 /*loop control */

szdef ineName = ""

while (i < nlength)

{

if (s zf ileName[i] == ".")

szdef ineName = Cat(szdef ineName, "_")

else

szdef ineName = Cat(szdef ineName, szfileName[i])

i = i + 1

}

szdef ineName = Cat("_", s zdefineName)

I f defineSz(szdefineName)

}

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

else

szDay = Day

szMonth = NumToName(Month)

hbuf = GetCurrentBuf()

ln = GetBuf LnCur(hbuf)

szCurLine = GetBuf Line(hbuf, ln)

DelBuf Line(hbuf, ln)

InsBuf Line(hbuf, ln, "@sz CurLine@ @szDay@@szMonth@@Year@")

SetBuf Ins(hbuf, ln, StrLen(szCurLine) + 10)

}

// Ask user for if def condition and wrap it around current

// s election.

// 28mar2003, modif ied by t357.

// 26mar2003, modif ied by t357.

macro InsI f def()

{

sz = Ask("Enter ifdef condition:")

if (s z != "")

{

// I f def Sz(sz);

hwnd = GetCurrentWnd()

sel = GetWndSel(hwnd)

hbuf = GetWndBuf(hwnd)

// get line the selection (insertion point) is f ont-size: 12px;"> InsBuf Line(hbuf, sel.lnFirst, "")

I nsBuf Line(hbuf, sel.lnFirst + 1, "@ich@#ifdef @sz@")

I nsBuf Line(hbuf, sel.lnFirst + 2, "@ich@" # chTab)

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

SetBuf I ns(hbuf, sel.lnFirst + 2, StrLen(ich) + StrLen(chTab))

}

}

// Wrap ifdeinef .. endif around the current selection

macro I f defineSz(sz)

{

hwnd = GetCurrentWnd()

lnFirst = GetWndSelLnFirst(hwnd)

lnLast = GetWndSelLnLast(hwnd)

hbuf = GetCurrentBuf()

InsBuf Line(hbuf, lnFirst, "#ifndef @sz@")

InsBuf Line(hbuf, lnFirst + 1, "#def ine @sz@")

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

SetBuf Ins(hbuf, lnFirst + 2, 0)

}

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

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

A utomatically expands C statements like if, for, w hile, s witch, etc..

To use this macro,

1. Add this f ile to your proj ect or your Base proj ect.

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

convenient keystroke to the "AutoExpand" command.

3. Af ter typing a keyw ord, press the AutoExpand keystroke to have the

statement expanded. The expanded statement w ill contain a ### s tring

which represents a f ield where you are supposed to type more.

T he ### 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 "f or" + AutoExpand key

2. this is inserted:

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

{

###

}

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

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

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

*AutoExpand - Automatically expands C statements

*

*DES CR IPTION: - Automatically expands C statements like if, f or, while,

*s w itch, etc..

*

*Input:

*Output:

*Returns:

*

*modification history

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

*01a, 27mar2003, t357 modified

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

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

macro AutoExpand()

{

// get w indow, sel, and buff er 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 f ont-size: 12px;"> // parse w ord just to the left of the insertion point wordinfo = GetWordLeft Of Ich(sel.ichFirst, szLine)

ln = sel.lnFirst;

chTab = CharFromAscii(9)

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

// keep w hite 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.sodocs.net/doc/5211859097.html,/上边下载30天试用版本。由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在linux平台上将 /usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。 下面主要讲解如何使用Source Insight,考虑到阅读源程序的爱好者都有相当的软件使用水平,本文对于一些琐碎、人所共知的细节略过不提,仅介绍一些主要内容,以便大家能够很快熟练使用本软件,减少摸索的过程。 安装Source Insight并启动程序,可以进入图1界面。在工具条上有几个值得注意的地方,如图所示,图中内凹左边的是工程按钮,用于显示工程窗口的情况;右边的那个按钮按下去将会显示一个窗口,里边提供光标所在的函数体内对其他函数的调用图,通过点击该窗体里那些函数就可以进入该函数所在的地方。

iPhone手机使用手册—“照片”操作说明

查看照片和视频删除照片和视频幻灯片显示共享照片和视频拷贝并粘贴照片和视频从电子邮件信息、彩信或网页存储图像将照片指定给联系人墙纸常见问题 iPhone手机使用手册—“照片”操作说明 iPhone 可让您随身携带照片,从而使您可以与家人、朋友和同事共享它们。在 iPhone 上查看照片,或者通过 AirPlay (IOS4.2)在使用 Apple TV 的电视机上查看它们。您可以从电脑同步照片和视频、查看用IPHONE拍摄的照片和视频、将照片用做墙纸,或者指定照片以识别来电的联系人。您还可以用电子邮件和彩信发送照片和视频,将照片和视频上传到MobileMe 画廊,以及打印照片。 【注】视频功能仅在 iPhone 3GS或新款机型上可用。 一、与电脑同步照片和视频 iTunes 可以使照片和视频与以下应用程序来同步: Mac: iPhoto 4.0.3(苹果电脑的图片管理软件,同步视频需要iPhoto 6.0.6或更新版本),或者 Aperture(apple公司图片处理软件,仅限照片) PC: Adobe Photoshop Elements 8.0或更高版本(仅限照片)。 您还可以从电脑上包含图像的任何文件夹同步照片和视频。 创建 iPhone 版本的视频 iPhone 支持 H.264 和 MPEG-4 视频格式(带 AAC 音频)。如果在将视频同步到 iPhone 时遇到问题,您可以使用 iTunes 创建一个 iPhone 版本的视频。 1、将视频拷贝到您的 iTunes 资料库。 2、在 iTunes 中,从“资料库”列表中选择“影片”,然后选择您想要同步的视频。 3、选取“高级”>“创建 iPod 或 iPhone 版本”。 二、查看照片和视频 您可以在“照片”中浏览从电脑上同步来的照片。您还可以查看使用 iPhone 的内建摄像头拍摄的照片和录制的视频。 使用 iPhone 拍摄的照片和视频、从电脑同步的照片和视频,或者从电子邮件或彩信存储的照片和视频可在“照片”中查看。如果使照片与 iPhoto 8.0(iLife 09 的一部分)或更高版本同步,则可以按您所识别的事件和面孔查看您的照片和视频。如果标记了位置数据,您还可以看到照片和视频的拍摄地点。 操作步骤: 1、在“照片”中,轻按相簿。轻按屏幕底部的按钮,以按事件、面孔或地点(如果适用)

91手机助手For iPhone(苹果)详细使用教程

91手机助手For iPhone详细使用教程 91手机助手(iPhone版)是由网龙公司开发的一款PC端使用的iPhone手机第三方管理工具,以其美观的界面,方便的操作为一直以来iPhone手机没有方便的配套PC端使用工具提供了一套完美的解决方案,给您带来全新的操作体验。 91手机助手For iPhone 点击下载 一、91手机助手For iPhone版简介 91手机助手(iPhone版)是由网龙公司开发的一款PC端使用的iPhone手机第三方管理工具,以其美观的界面,方便的操作为一直以来iPhone手机没有方便的配套PC端使用工具提供了一套完美的解决方案,给您带来全新的操作体验。 iPhone版手机助手功能列表: 固件支持:iPhone 1.X | 2.X | 3.X |4.X 固件 ; 操作系统:支持32位和 64位的Windows XP / Vista / Windows 7 资料管理:联系人管理、电脑收发管理短信、定制日程、管理任务 媒体娱乐:轻松编辑设置手机铃声、手机主题、壁纸 阅读管理:几十万免费电子书在线/本地化管理;新闻RSS订阅等 软件管理:本地软件管理;海量手机软件免费安装 系统管理:系统信息查阅;进程管理;注册表管理等 备份还原:备份还原短信、通话记录、主题铃声、联系人等十几种信息 为什么要使用91手机助手? FREE/免费-都是免费的,91手机助手免费,软件游戏电子书也是免费的 轻松管理智能手机-还有什么比把智能机当傻瓜机玩更开心的呢? 海量资源尽情下载使用-真的是海量,几万手机软件,几十万电子书 完美个性体验-从界面到功能打造最安全最轻松的智能手机PC端管理工具

最新苹果iPad2使用说明书完整超详细

苹果iPad2平板电脑新手使用教程 有需求请下载,因为超详细 最近关于苹果最火的无非就是iPad2的发售,之前用过iPhone的朋友对iPad2的使用还算了解,但也有没用iPhone但入手iPad2的朋友,这样对苹果官方的套件iTunes就不是很熟悉了,小编有幸入手了一台iPad2,这里给刚入手iPad2但又不是很熟悉不太会用的朋友一个简单的初级入门iPad2使用教程。 什么是iTunes iTunes是苹果所有移动设备的PC套件,不管是iPod、iTouch、iPhone还是今天要说的iPad2,都要使用iTunes 来安装应用程序。 下载完毕后,安装好下载的iTunes,把iPad2用数据线连上电脑,iTunes就会识别了。 同步程序 因为现在iPad2的越狱还没有高人放出,大家只能花钱购买正版或者是免费的试玩版的游戏或者软件了。 注册好了之后,找到你喜欢的一个应用程序,比如我选的这个 点开之后是这个界面,然后点击这里的免费字样

然后就会显示正在下载 下载好了之后,在应用程序选项卡,就会看到刚刚下载的游戏。 这时点击设备中的应用程序选项卡,然后选中要同步的程序

接着点击右下角的同步字样,等待同步完毕即可。 这样就同步完毕之后就会在iPad2的桌面上看到刚刚下载的网球游戏了,QQ等其他一些免费的软件也是一样的道理。 下面是我用iPad2专用的QQ上的一些截图,看着确实很过瘾。

同步音乐 同步音乐其实也是很简单的,首先先把你电脑中要同步到iPad2中的音乐添加到iPad2的资料库中。 这样iPad2中的资料库的音乐标签里就会显示 然后找到设备中的音乐标签,选中要同步的音乐,

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”。

苹果Mac操作系统使用教程

Mac使用教程 Mac使用教程(基础篇) 如果您是计算机新手,或只是需要一些教学课程,帮助您将Mac的功能发挥到淋漓尽致,那么您就来对地方了。我们将带领您以最有效率的方式使用Mac。无论您想知道如何操作使用Mac桌面(或只是要知道什么是桌面)、找出连接打印机、iPod、数字相机或其他设备的方式、搜寻电子邮件和Internet、认识各种功能的操作方式、学习如何使用Mac随附的软件,或在无法得心应手地操作时需要协助指点,这种种问题的答案,我们都为您准备好了。准备好了吗?请把您的问题告诉我们:第一课:Mac基础操作如果您是初次接触计算机,才刚开始学习各项操作技巧,不用紧张,其实操作Mac不过就是靠一连串的点选动作。这一课将为您介绍与计算机界面互动的基本方式,也会教您如何在Mac上完成一些基本工作。让我们进入课程内容吧! 第一次使用Mac吗?那就从学习Mac基础操作开始吧!点点选选轻松操作如果您对Mac桌面和Finder视窗的操作不是很熟练,建议您从这里开始学起,如果已经很熟悉了,可以直接跳到“建立帐号”那部分。我们先来谈谈计算机操作的基本技巧。移动鼠标时(iBook或PowerBook的使用者是以手指在触

控式轨迹板上滑动),您会看到有个箭头(即光标)在屏幕上四处游移。您可以利用这个箭头选取或操作屏幕上的项目,像是选取档案、按下按钮、拖移滑杆等等。有时候在执行不同的操作或应用程式时,箭头会变成手、十字型、I型或其他图像。举例来说,如果您用Safari来浏览这个网页,并在网页上移动箭头,您会发现,当箭头移到文字或文字栏位(如Google文字框或URL栏位)上的时候,它会变成I型光标(有点像字母"I"的形状),通常这表示您可以与文字或栏位有所互动(例如输入或拷贝文字)。当箭头移到按钮或链接上,它会变成手的形状,告诉您这个项目可以点选。有时候Mac忙于工作时,箭头会暂时变成旋转中的彩色圆盘(有的Mac使用者称之为海滩球或风车),这代表某项工作正在执行中。 在您执行不同的工作或应用程式时,箭头(图中最左边)可能会以不同的样子出现。按一下鼠标(或触控式轨迹板按钮)可以选取箭头指向的项目。换句话说,如果箭头落在档案图像上,按一下即可选取该档案;如果箭头落在按钮或链接上,按一下可以启用该按钮或链接;要是落在文字栏位上,按一下可以反白该栏位并输入文字。对话框里出现蓝色按钮时(可参考“打印”或“储存”对话框),您可以按下Return键来选取该按钮,不一定要用鼠标。若想开启档案、档案夹或应用程式,请按两下鼠标按钮。通常您需要按两下Finder视窗或桌面上的项目才能将其开启,不过Dock里的项目除外,想开启Dock里的项目,按其图像一下即可。

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

[完整版]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", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。

iphone使用方法

Itunes 安装成功。 如何注册APPLE ID (iphone 软件下载账号) 注册iphone 账号的必备条件: 将itunes 在电脑上安装完成,能够正常运行; 需要用户有一个正常使用的Email (电子邮件地址) 步骤: 1,将itunes 安装成功后,双击打开,在主界面左侧面菜单栏中选择单击itunes store 打开页面在右侧找到免费应用软件,点击查看全部,选择需要的免费软件(点击‘免费’) 弹出创建APPLE ID 对话框; 2,点击 创建新账户 点击 继续 出现iphone 协议条款界面,选择 我已阅读并同意以上条款与条件,单击 继续 出现创建itunes store (APPLE ID) 账户界面按提示填写完成: 输入电子邮件地址:(例如:unicom33@https://www.sodocs.net/doc/5211859097.html, ) 为账号设置密码:********(此ID 密码必须由大写字母,小写字母,阿拉伯数字组成8位以上)再次输入密码进行确认,输入提示问题和答案(用汉语拼音例如:问题,wodemingzi ;答案,mingzi )输入用户出生日期,点击继续,进入提供付款方式界面,付款方式选择“无”输入用户姓名,称谓,地址,城市,邮编,省份,电话,点击继续进入验证您的账户界面,点击完成将链接文件发送至用户电子邮箱。 3,用户进入电子邮箱(与用户申请APPLE ID 地址相同)打开收到的APPLE 邮件点击 立 itunes 安装在电脑上,双击右面图标 在电脑上按提示进行安装,安装 完毕后如下图 如何下载itunes 软件 输入网址: https://www.sodocs.net/doc/5211859097.html,/itunes/download/ 显示界面

source insight代码格式化

source insight代码格式化(Astyle) GNU的astyle是一个免费的代码格式化工具,能够格式化c/c++等代码,我们可以将Astyle.exe外挂到SourceInsight中,具体步骤如下: 1、下载Astyle工具 在网站https://www.sodocs.net/doc/5211859097.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.sodocs.net/doc/5211859097.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.sodocs.net/doc/5211859097.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.sodocs.net/doc/5211859097.html,3

https://www.sodocs.net/doc/5211859097.html, 4 图7 图8

1password怎么用windows版iphone版使用教程

1password 怎么用windows 版+iphone 版使用教程 (阿香婆硬盘维护工具)Ashampoo HDD Controlv3.00.50 绿色便携版 类型:磁盘工具大小:18.8M 语言:中文评分:5.0 标签: 立即下载iOS8 升级后支持浏览器插件,1Password 终于可以直接在Safari 中使用了,这是很大的进步。1Password 一款国外的付费的,从来没正式进入中国进行推广的效率类应用在免费后,能冲进中区App Store 前10 名,实属罕见! windows 版1password 怎么用?1Password 有什么优势很简单,使用1Password 这个软件,你可以给每个不同的网站设置不同的登陆密码,而且每个网站的登陆密码你自己都不需要记住(可以设置的无比强大),让1Password 来帮你记住所有网站的密码。当然,你需要给1Password 来设置一个复杂的、并且要牢记的主密码,因为如果你忘了这个主密码就意味着你所有的网站都不能登陆。那么有人可能会问,让1Password 来帮助自己记密码,那么1Password 这个软件本身是安全的吗?答案自然是肯定的,1Password 会将你所有网站的登陆密码以你你在 1Password 中记录的信息保存在一个 经过高强度加密的文件里,即便1Password 的员工或者其他人得到

了这个文件,也必须要使用你设置的主密码才能解密,只要你不将主 密码泄露,那么就是非常安全的。当然,世界上没有100% 安全的密码,我们每个人都只是应该将安全风险降到最低而已。安装并配置 1Password(forMac )这 里我们使用Mac 版1Password 为例进行讲解,Windows 版本的使用方法也基本类似。首先,从1Password 官方网站下载30 天试用版本,或者直接从MacApPStore 中购买正式版本并安装。初次运行1Password 的界面如上图所示,如果你之前没有使用过〔Password,应该直接选择” NewDataFile (新建数据文件)”,以后你的密码数据都会保存在这个数据文件里面。如果你之前有使用过IPassword并且已经保存了数据,那么就应该选择” FindExisting (查找已有文件)”,这里我们只是向新用户介绍如何使用。点击” NewDataFile ”之后首先要给这个数据文件设置主密码,这个密码必须足够强大,而且一定要牢记的密码,并且必须输入密码提示(否则不能进入下一步)。设置主密码之后,你就已经成功建立一个数据文件了,虽然这个数据文件里还没有保存你的任何资料。下一步首先是让你输入主密码,只有输入主密码之后,才能查看数据文件里面的所有资料(包括你给其他网站设置的密码都会在这里面)由于是新用户,所以输入主密码进入之后你可以看到还没有任何 数据。不过先别急,我们还需要一点点 小配置。首先要做的是进入1Password 的偏好设置,Mac 用 户可以点击菜单栏的〔Password ------ Preferences,在“ General”

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了

教程iphone新手基本操作介绍,使用方法

教程iphone新手基本操作介绍,使用方法 iPhone新手基本操作介绍 现在看到很多新手买了手机之后,每天都在问怎么用怎么用,却懒的动手搜索,有的却不知道怎么用搜索引擎,(各位老大不要笑,真的有人不知道怎么用 , 我就认识几个人不会用的)其实我也只用了几个月,在这里只想帮助一下新手,说的不对请各位大人拍砖 基础篇: ihone 拿到手后肯定是先装卡开机啦!(观众:废话) iphone 和别的机子不一样,装手机卡的地方在它的顶部,找个牙签或细铁丝找到顶上一个小洞洞,在开机键的旁边(什么你不知道哪个是开机键, ........ 算我没说)用铁丝插进去斜一点挑上来,有人说捅一下会自己弹出来,我试了很多遍都不行,不知道是不是人品问题还要个体差异。然后就开机吧,因为 iphone 用的是苹果 OS 智能系统,所以开机速度有点慢,不要认为是死机啦!新买的机器肯定是破解好的,要不你也用不了,有的商家你买的时候就给你装了很多软件,但是有的却没有,我的买的时候就没有,只能打电话发短信,谁叫咱人品不好呢,付过钱之后商家的电脑上不了网,不能装软件,郁闷!!!只好拿个空机子回家了 硬件篇:充电的问题,经常看到有的兄弟问关机怎么冲不了,关机状态下一插冲电器就自动开机了,这个是正常的,苹果就是这样设计的,想关机充电的先把机子关了再把插头插上就行了不过充电速度慢了点 PS: 我都是开机冲的软件篇:机器要装软件的话有几种方式,我只说说我的用法,第一: iTunes 这个肯定要装的,不然的话 iphone pc suite 这个软件是用不了的。软件到苹果官方网就有。装完之后,(大家要注意的是到编辑 - 偏好设置 - 常规里面把自动核查更新前面的勾去掉,同步里面 - 禁用所有 iphone 和 ipod 自动同步前面的勾打上)

sourceinsight宏配置与使用

sourceinsight宏配置与使用指引 kaka/赵肖云 blog: https://www.sodocs.net/doc/5211859097.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、去掉功能强大但是无用的自动完成功能

苹果版MT4使用教程

苹果版MT4使用教程 一、手机版MT4下载介绍 MT4下载及安装 打开手机的“App Store”,搜索界面输入MT4,选择“MetaTrader4”进行下载安装,安装成功后“打开”MT4,如下图所示: 二、手机版MT4注册及登录介绍 1)注册模拟账户 第一步 打开MT4软件,找到“打开个人模拟账户”,进入“选择服务器”页面,输入“cityoflondonmarkets”,选择后缀“Demo”的服务器,进入注册页面。如下图所示

第二步 填写注册信息(名称、电话、邮箱以及“入金”金额,此处的“入金”为模拟,金额可随意选择),如下图所示: 第三步 注册信息填写完整,点击“注册”,即可注册成功,页面随即出现“模拟账号、密码以及只读密码”等账户信息,并自动登录成功。

2)登录真实账户 第一步 打开MT4软件,找到“登录一个已有账户”,进入“服务器”页面,输入“cityoflondonmarkets”,选择后缀“Live”的服务器,进入登录页面。“登录”处输入MT4实盘交易帐号,“密码” 处输入MT4交易密码(“保存密码”处可自行勾选)。点击“登录”如下图所示:

三、苹果版MT4界面介绍 (一)菜单 1)打开mt4,可以看到的页面下方有“行情”、“图表”、“交易”、“历史”、“设置”菜单,如下图所示: 2)如上图所示,点击左上角,可以进入页面拖动和删除页面显示货币对,如下图所示:

3)点击右上角,可以添加交易品种和查看产品规格,如下图所示: (二)行情 打开MT4软件,首先看到的便是“行情”页面,即“市场报价”,点击简单与高级,可以切换是否显示点差和日线最低价和最高价

相关主题