发芽汽车资讯网

您现在的位置是: 首页 > 汽车大全

文章内容

insight 怎么用_insight怎么用

ysladmin 2024-05-31
insight 怎么用_insight怎么用       insight 怎么用是一个非常重要的话题,可以从不同的角度进行思考和讨论。我愿意与您分享我的见解和经验。1.如何在so
insight 怎么用_insight怎么用

       insight 怎么用是一个非常重要的话题,可以从不同的角度进行思考和讨论。我愿意与您分享我的见解和经验。

1.如何在source insight中使用astyle的代码整理功能

2.如何用source Insight查看.s文件

3.Source Insight 如何添加.c文件?

4.如何在Source Insight等编辑器中使用表达式查找替换字符串

5.source insight查看函数的上一级调用

6.source insight能直接调用GCC编译吗?怎么用调用

insight 怎么用_insight怎么用

如何在source insight中使用astyle的代码整理功能

       用source insight 编辑代码时,苦于source insight没有集成的代码格式化工具, GNU的astyle是一个免费的代码格式化工具,能够整理符合c/c++规范。

       我们可以将astyle.exe外挂到SourceInsight中。详细步骤如下:

       1:从 /astyle sourceforge net上下载AStyle_2.01_windows.zip (开放源码,可以仔细阅读);

       2:解压缩后将bin文件夹下的astyle.exe放到source insight目录下(自己可以放在任意位置)

        在SourceInsight菜单栏里,Options-->Custom Commands界面上选择:Add,在弹出对话框写入 Astyle.

       3:在run中添加astyle.exe --style=ansi %f,其中,如果astyle.exe所在路径中有空格,必须用""括起来,参数--style=ansi 代表ansi C 格式(如果你需要格式化java代码,这个地方改为:--style=java),"%f"是指作用于当前文件,这个必须的.其它命令参数可以参考astyle的帮助参数可以查看网页

       4:此外,在此界面上还可以为这个命令设置快捷键,点击"keys",添加你觉得方便的按钮;

       5:在SourceInsight菜单栏里,Options-->Menu Assignments界面上,将这个命令名称为Astyle添加到某工具栏下,我是依然放在了view下,在左面的Command列表里找到我们刚才添加的"Astyle",在右面的Menu中选择你要加到那个菜单下,这里我加到"view"下,可以在"Menu Contents"选择适当位置,点击"insert"即可。

       1. 格式化从根开始的整个项目

       AStyle.exe -A1 -R ./*.c ./*.h -bt4 -Sw -fpxHU -Jk3 -n %f

       参数 意义

       Predefined Style Options

       -A1 代表 --style = ansi or allman模式

       Tab and Bracket options

       -b 代表 语句块之前加上空格

       -t4 代表 each tab as 4 spaces

       Indentation options

       -S 代表 switch开关语句,以便于使case x: 对自动对齐

       -w 代表 用逗/地对齐多行参数

       Padding options

       -f 代表 不相关的代码之间加空行

       -p 代表 双目运算符前后加上空格,如:+ - * /

       -x 代表 删除相关语句之是的空行. 如:if, else语句间的空行

       -H 代表 在if, for, while关键字与括号()之间加上空格

       -U 代表 移除括号两边不必要的空格

       Formatting options

       -J 代表 为单行语句加上{}

       -k3 代表 指针及引用(*, &)符号,挨着变量名

       Other option

       -n 代表 不生成备份。默认生成 .orig文件

       -R 代表 目录递归

       注:

        格式化从根开始的整个项目,指的是把整个项目里的所有.c .h文件都格式化。打开工程目录,插件会自动识别出项目的根目录的。格式化后,这个项目就会全部更改。而且在格式化的过程中,会很消耗时间。

        造成的后果:在进行SVN提交时,由于先前的SVN代码与此不同,会进行大面积的更改。如果修改了格式化选项,还会造成代码的重新提交。如果大量文件产生格式问题,会把实际修改的内容掩盖掉,在回溯记录进行问题确认时,会产生麻烦。容易忽略了主要问题。

       建议:尽量少用此选项。如果为了使用整个项目更规范,可以使用此选项。提交单个文件时最好不要使用此选项。

        2. 格式化当前目录下的.c文件

       AStyle.exe -A1 -R ./test/*.c -bt4 -Sw -fpxHU -Jk3 -n %f

       参数意义从略,看上面.

       -R 后面添加所修改工程的路径,及文件名,就可以执行只格式化该目录下的.c文件。路径中的是用逗/地 or 逗/地都可以录找到路径。

       建议:在进行工程项目部分模块开发时,如果为了使这部分项目模块更规范,可以使用此选项。对于频繁修改少量多个文件。可以使用此选项,以实现批处理文件的功能。

       3. 格式化单个文件

       AStyle.exe -A1 -bt4 -Sw -fpxHU -Jk3 -n %f

       参数从略,看上面

       只进行当前修改文件的格式化处理。只针对单个文件起作用。这样很容易使所写文件更加的规范。在编写代码过程中,可以省去很多调整代码结构的时间,是最常用的选项。

       建议:在平时编写代码时,尽量使用此选项。只对单个文件进行处理,不会影响其它文件。

       在SVN进行提交时,影响最小。

       下面是各选项的效果,如果个人有需要,可以按其效果进行更改参数,可能会造成多人编写代码的样式不同。

       --recursive / -r / -R

       在每个目录下执行命令。可以处理所有子目录下的文件。当用此选项时,文件名应当包含通配符,应当指名路径,名称。以便shell会执行。 e.g. "$HOME/src/*.cpp"

       --brackets=break / -b

       void Foo(bool isFoo)

       {

        if (isFoo)

        {

        bar();

        }

        else

        {

        anotherBar();

        }

       }

       --indent=tab / --indent=tab=# / -t / -t#

       对齐使用tab字符。每个tab 代表 # 个spaces ( e.g. -t6 / --indent=tab=6) #必须在2-20之间, 如果不设置,就当作4个spaces.

       --indent-switches / -S

       switch开关语句,以便于使case x: 对自动对齐。

       switch (foo)

       {

       case 1:

        a += 1;

        break;

       case 2:

       {

        a += 2;

        break;

       }

       }

       becomes:

       switch (foo)

       {

        case 1:

        a += 1;

        break;

        case 2:

        {

        a += 2;

        break;

        }

       }

       --indent-preprocessor / -w

       用逗/地对齐多行参数

       #define Is_Bar(arg,a,b) /

       (Is_Foo((arg), (a)) /

       || Is_Foo((arg), (b)))

       becomes:

       #define Is_Bar(arg,a,b) /

        (Is_Foo((arg), (a)) /

        || Is_Foo((arg), (b)))

       --break-blocks / -f

       在关键字if, for, while与()之间填充空格,在不相关代码之间加上空行

       isFoo = true;

       if (isFoo) {

        bar();

       } else {

        anotherBar();

       }

       isBar = false;

       becomes:

       isFoo = true;

       if (isFoo) {

        bar();

       } else {

        anotherBar();

       }

       isBar = false;

       --pad-oper / -p

       在各双目运算符的前后分别加上空格,行末会保持原样。

       if (foo==2)

        a=bar((b-c)*a,d--);

       becomes:

       if (foo == 2)

        a = bar((b - c) * a, d--);

       --delete-empty-lines / -x

       删除函数里边的空行。函数外面的空行不会被删除。

       void Foo()

       {

        foo1 = 1;

        foo2 = 2;

       }

       becomes:

       void Foo()

       {

        foo1 = 1;

        foo2 = 2;

       }

       --pad-header / -H

       在关键字 ‘if’,‘for’, ‘while’..与括号之间填充空格。任何行注释的末尾都会保留原始列。

       if(isFoo(a, b))

        bar(a, b);

       becomes:

       if (isFoo(a, b))

        bar(a, b);

       --unpad-paren / -U

       移除括号里边和外边的的无用空间

       if ( isFoo( a, b ) )

        bar ( a, b );

       becomes (with no padding option requested):

       if(isFoo(a, b))

        bar(a, b);

       --add-one-line-brackets / -J

       为 ‘if’, ‘for’, ‘while’里的单行语句加上{}。这条语句只能和{}在同一行。如果相变成不同行,需要手动修改。

       if (isFoo)

        isFoo = false;

       becomes:

       if (isFoo)

        { isFoo = false; }

       --align-pointer=type / -k1

       --align-pointer=middle / -k2

       --align-pointer=name / -k3

       对齐指针,引用(* or &)的标号位置,使其位于变量类型一侧或变量名一侧,也可以处在类型与名称之间。

       char *foo1;

       becomes (with align-pointer=type):

       char* foo1;

       char* foo2;

       becomes (with align-pointer=middle):

       char * foo2;

       char & foo3;

       becomes (with align-pointer=name):

       char &foo3;

       --suffix=none / -n

       不保留文件的备份文件。文件在格式化之后,原始文件会清除

如何用source Insight查看.s文件

       这是我重新修改以前的内容而改写的,工作后学到了许多公司中编写代码快速的方法,从而放弃了那种 ”搞linux 应该把vi使用到精通的地步“思想,发现无论我怎么练习vi,还是没有使用source insight编写代码速度快,因为vi的查找定义让很多人头痛,即使对源码工程使用ctag等操作,而我看到网上很多对sourceInsight的讲解,很多都是讲解一些非常不适用的,所以说,我还是在这啰嗦几句。

       1.“同步”或者“重编译”工程

       很重要的一步,在创建和添加工程以及这些都设定完后,需要进行“同步操作”或者“重编译工程”(推荐使用第二种,这样可以建立一个与路径无关的工程,也就是这个工程哪拿到哪都可以使用,而同步不可以),可以对代码进行调用关系等的一个内部进行初始化。

       设置步骤(我的版本是英文的):

       同步:project->synchronize projcet ..->出来的对话框中你可以选择:Remove missing files from projcet和Suppress warning messages,或者再加上Force all files to be re-parsed,然后点击ok,之后工程中的源码就可以进行关联了。

       重编译工程:project->rebuild project.. ->出来的对话框中,只选择第三项:Re-Create the whole project from scratch,然后点击ok就可以了。

       2.搜索字符操作:

        2.1 在当前文件中搜索字符串

       这是我自己摸索的方法,但却是挺方便的,将鼠标放在你想搜索的字符串上,然后同时按下“shift +F4",这样话,会从当前位置,向后搜索,第一次,需要同时按下,如果接着搜索的话,在按F4就可以了,如果想向前搜索的话,使用”F3“就可以了。但是第一次都需要同时按下”shift“

        2.2 在工程中搜索字符串:

        使用工具栏中的有一个字符为”R“的按钮(不要说你看不到,呵呵),点击后,出来一个对话框,为了说明白,还是贴一个图吧:

       看到了,第一个框中是输入查找的字符串的,下面的那个”Search In"中,你可以选择,是所有工程,还是当前文件(这个我们在2.1中介绍了更简单的方法),还有其他的选项,你自己可以查看,一般我是使用这个在所有工程中查找字符的,而下面还有一个options选项,是选择:大小写敏感,全词匹配,可以直接按照我设置的来设置就可以了,然后点击ok,就会显示搜索到的包含改字符串的行和文件信息,如下:

       可以看到,搜索出了结果,你可以点击左边的“红色的小按钮”就可以展开内容,而我使用最多的是点击工具栏中的对应的按钮,这样更方便些,而工具栏中的按钮下面还有一个红色的“向左的箭头”和“向右的箭头”,标明一个向前,一个向后依次打开,相当方便。

       3.查找定义

        相信搞linux编程的人使用sourceInsight的目的就是可以很方便的查找字符的定义和 关键字的不同色彩显示,

        可以使用“ctl +鼠标左键”来快速的查找定义。

       4.添加和删除文件:

       其实,上面的操作你会后,你就可以很好的使用了,不过有时候还需要添加和删除文件,如,你在某个目录下新添加了一个文件的源码时。

        在“第三个框”(相信你应该知道,里面显示了工程所有的文件列表)中点击 鼠标右键,选择“Remove files from the project..." 或者”Add or remove files from the project ..."就可以删除添加相应的文件了(下面的你自己摸索吧,相信你会的)

       一般删除或者添加后,最好再次 同步 或者 重编译 一下工程。

       5.其他使用方法。

        其他的不介绍了 ,呵呵,因为我只用这么多就感觉就够用了,因为写完代码后保存后,会自动和文件内容同步的。。。

Source Insight 如何添加.c文件?

       方法/步骤

       1

       首

       先,选择菜单options->Document Options,点Document Type下拉菜单,选择x86 Asm Source

       File,然后在File filter里*.asm;*.inc的后面加上*.s和*.S(注意以(;)号隔开);

       这样软件会在下次加入文件夹时将.s和.S文件加入到工程中。

       2

       接着,点Document Type下拉菜单,选择C Source File,然后在右边的File filter里*.c;*.h;的后面加上*.s和*.S; 这样软件会对.s和.S文件进行语法高亮。

       3

       接

       着,选择菜单中的Project->add and remove project

       files,在弹出窗口中,将包含.s文件最底层文件夹的工程树去掉,然后再重新加上。接着选择菜单中的Project->Synchronize

        files,对工程进行重新同步。

       4

       这样在工程中就可以找到.s文件,并进行语法高亮显示了。

如何在Source Insight等编辑器中使用表达式查找替换字符串

       设置Options -> Document Options 在弹出的对话框中,看看File filter里面是否有*.c;*.h; 如果没有*.c,手动填上,注意填写格式不能错,逗号和分号千万别写错了。

       1.首先Source Insight默认可以识别的文件类型比较少,只有*.c *.h *.cpp *.txt 等比较常见的文本文件,首先需要明确你说的工程文件的后缀名是否是以上说的比较常见的文本文件。

       2.如果是的话,直接将此文件拖拽到Source Insight的窗口内,就可以进行编辑了,编辑后保存(Ctrl+S)就是直接覆盖了原来的文件。

       3.这是将Source Insight作为普通文本编辑工具的使用方式,还有一种使用方式,是使用Source Insight建立一个工程,然后将你需要修改的文件都添加为此新建工程的工程文件。

       4.这样每次打开此Source Insight工程后都可以在工程文件列表中查看到所有你添加了的文件,建立Source Insight工程时会问你保存工程文件的位置,选择一下既可。

       5.建立工程的话选择菜单中的Project ->New Project 既可,以上这两种方式都可以在修改保存后覆盖你原来的文件,如果需要同时编辑多个文件第二种方式最常用。

source insight查看函数的上一级调用

       VS2005的正则表达式帮助仅供参考:

       正则表达式是查找和替换文本模式的一种简洁而灵活的表示法。Visual Studio “查找和替换”窗口的“查找内容”字段中可使用一组特定的正则表达式。

       在“快速查找”、“在文件中查找”、“快速替换”或“在文件中替换”操作中,要在“查找内容”字段中使用正则表达式,请选择“查找选项”下的“使用”选项然后选择“正则表达式”。

       “查找内容”字段旁的三角形“表达式生成器”按钮将可用。单击此按钮显示最常用正则表达式的列表。当从“表达式生成器”中选择任何项时,该项将插入到“查找内容”字符串中。

       注意

       “查找内容”字符串中可使用的正则表达式与 .NET Framework 编程中的有效正则表达式有语法上的区别。例如,在“查找和替换”中,大括号表

       示法 {} 用于带标记的表达式。因此,表达式 zo{1} 匹配所有 zo 后跟有标记 1 的搜索项,例如 Alonzo1 和 Gonzo1。但

       在 .NET Framework 中,{} 表示法用做限定符。因此表达式 zo{1} 匹配所有 z 后仅跟有一个 o 的搜索项,例如 zone,

       而 zoo 则不匹配。

       用于“查找和替换”的正则表达式

       以下是“引用列表”中可用的正则表达式。

       表达式 语法 说明

       任一字符

        .

        匹配除分行符外的任何一个字符。

       零个或更多个

        *

        匹配前面表达式的零个或多个搜索项,寻找所有可能匹配。

       一个或更多个

        +

        匹配前面表达式的至少一个搜索项。

       行首

        ^

        将匹配字符串锚定到行首。

       行尾

        $

        将匹配字符串锚定到行尾。

       词首

        <

        仅当词在文本中的此位置开始时才匹配。

       词尾

        >

        仅当词在文本中的此位置结束时才匹配。

       换行符

        \n

        匹配与平台无关的换行符。在“替换”表达式中,插入换行符。

       集中的任何一个字符

        []

        匹配 [] 内的任何一个字符。要指定字符的范围,请列出由短划线 (-) 分隔的起始字符和结束字符,如 [a-z] 中所示。

       集中没有的任何一个字符

        [^...]

        匹配跟在 ^ 之后的不在字符集中的任何字符。

       或

        |

        匹配 OR 符号 (|) 之前或之后的表达式。最常用在分组中。例如,(sponge|mud) bath 匹配“sponge bath”和“mud bath”。

       转义符

        \

        按原义匹配反斜杠 (\) 之后的字符。这使您可以查找在正则表达式表示法中使用的字符,如 { 和 ^。例如,\^ 搜索 ^ 字符。

       带标记的表达式

        {}

        匹配以带括号的表达式标记的文本。

       C/C++ 标识符

        :i

        匹配表达式 ?([a-zA-Z_$][a-zA-Z0-9_$]*)。

       带引号的字符串

        :q

        匹配表达式 (("[^"]*")|('[^']*'))。

       空格或制表符

        :b

        匹配空格或制表符。

       整数

        :z

        匹配表达式 ?([0-9]+)。

       “查找”和“替换”操作中所有有效正则表达式的列表,比“引用列表”中可显示的列表长。您还可将以下任意正则表达式插入到“查找内容”字符串中:

       表达式 语法 说明

       最少 — 零个或更多个

        @

        匹配前面表达式的 0 个或更多搜索项,匹配尽可能少的字符。

       最少 — 一个或更多个

        #

        匹配前面表达式的一个或更多搜索项,匹配尽可能少的字符。

       重复 n 次

        ^n

        匹配前面表达式的 n 次出现。例如,[0-9]^4 匹配任意 4 位数字的序列。

       分组

        ()

        将子表达式分组。

       第 n 个带标记的文本

        \n

        在“查找”或“替换”表达式中,指示第 n 个带标记的表达式所匹配的文本,其中 n 是从 1 至 9 的数字。

       在“替换”表达式中,\0 插入整个匹配的文本。

       右对齐字段

        \(w,n)

        在“替换”表达式中,将字段中第 n 个带标记的表达式右对齐至少 w 字符宽。

       左对齐字段

        \(-w,n)

        在“替换”表达式中,将字段中第 n 个带标记的表达式左对齐至少 w 字符宽。

       禁止匹配

        ~(X)

        当 X 出现在表达式中的此位置时禁止匹配。例如,real~(ity) 匹配“realty”和“really”中的“real”,而不匹配“reality”中的“real”。

       字母数字字符

        :a

        匹配表达式 ?([a-zA-Z0-9])。

       字母字符

        :c

        匹配表达式? ([a-zA-Z])。

       十进制数字

        :d

        匹配表达式 ?([0-9])。

       十六进制数

        :h

        匹配表达式 ?([0-9a-fA-F]+)。

       有理数

        :n

        匹配表达式 (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+))。

       字母字符串

        :w

        匹配表达式? ([a-zA-Z]+)。

       转义符

        \e

        Unicode U+001B。

       Bell

        \g

        Unicode U+0007。

       Backspace

        \h

        Unicode U+0008。

       制表符

        \t

        匹配制表符,Unicode U+0009。

       Unicode 字符

        \x#### 或 \u####

        匹配 Unicode 值给定的字符,其中 #### 是十六进制数。可以用 ISO 10646 代码点或两个提供代理项对的值的 Unicode 码位指定基本多语种平面(即一个代理项)外的字符。

       下表列出按标准 Unicode 字符属性进行匹配的语法。两个字母的缩写词与 Unicode 字符属性数据库中所列的一样。可将这些指定为字符集的一部分。例如,表达式 [:Nd:Nl:No] 匹配任何种类的数字。

       表达式 语法 说明

       大写字母

        :Lu

        匹配任何一个大写字母。例如,:Luhe 匹配“The”但不匹配“the”。

       小写字母

        :Ll

        匹配任何一个小写字母。例如,:Llhe 匹配“the”但不匹配“The”。

       词首大写字母

        :Lt

        匹配将大写字母和小写字母结合的字符,例如,Nj 和 Dz。

       修饰符字母

        :Lm

        匹配字母或标点符号,例如逗号、交叉重音符和双撇号,用于表示对前一字母的修饰。

       其它字母

        :Lo

        匹配其他字母,如哥特体字母 ahsa。

       十进制数字

        :Nd

        匹配十进制数(如 0-9)和它们的双字节等效数。

       字母数字

        :Nl

        匹配字母数字,例如罗马数字和表意数字零。

       其它数字

        :No

        匹配其他数字,如旧斜体数字一。

       开始标点符号

        :Ps

        匹配开始标点符号,例如左方括号和左大括号。

       结束标点符号

        :Pe

        匹配结束标点符号,例如右方括号和右大括号。

       左引号

        :Pi

        匹配左双引号。

       右引号

        :Pf

        匹配单引号和右双引号。

       破折号

        :Pd

        匹配破折号标记。

       连接符号

        :Pc

        匹配下划线标记。

       其他标点符号

        :Po

        匹配 (,)、?、"、!、@、#、%、&、*、\、(:)、(;)、' 和 /。

       空白分隔符

        :Zs

        匹配空白。

       行分隔符

        :Zl

        匹配 Unicode 字符 U+2028。

       段落分隔符

        :Zp

        匹配 Unicode 字符 U+2029。

       无间隔标记

        :Mn

        匹配无间隔标记。

       组合标记

        :Mc

        匹配组合标记。

       封闭标记

        :Me

        匹配封闭标记。

       数学符号

        :Sm

        匹配 +、=、~、|、< 和 >。

       货币符号

        :Sc

        匹配 $ 和其他货币符号。

       修饰符号

        :Sk

        匹配修饰符号,如抑扬音、抑音符号和长音符号。

       其它符号

        :So

        匹配其他符号,如版权符号、段落标记和度数符号。

       其他控制

        :Cc

        匹配类似 TAB 和 NEWLINE 这样的 Unicode 控制字符。

       其他格式

        :Cf

        格式控制字符,例如双向控制字符。

       代理项

        :Cs

        匹配代理项对的一半。

       其他私用

        :Co

        匹配私用区域的任何字符。

       其它未分配字符

        :Cn

        匹配未映射到 Unicode 字符的字符。

       除标准 Unicode 字符属性外,还可以指定下列附加属性作为字符集的一部分。

       表达式 语法 说明

       Alpha

        :Al

        匹配任何一个字符。例如,:Alhe 匹配“The”、“then”、“reached”等单词。

       Numeric

        :Nu

        匹配任何一个数或数字。

       标点

        :Pu

        匹配任何一个标点符号,如 ?、@、' 等等。

       空白

        :Wh

        匹配所有类型的空格,包括印刷和表意文字的空格。

       Bidi

        :Bi

        匹配诸如阿拉伯文和希伯来文这类从右向左书写的字符。

       朝鲜文

        :Ha

        匹配朝鲜文和组合朝鲜文字母。

       平假名

        :Hi

        匹配平假名字符。

       片假名

        :Ka

        匹配片假名字符。

       表意文字/汉字/日文汉字

        :Id

        匹配表意文字字符,如汉字和日文汉字

       请参见

       参考

       通配符 (Visual Studio)

       “查找和替换”窗口 ->“快速查找”

       “查找和替换”窗口 ->“快速替换”

       “查找和替换”窗口 ->“在文件中查找”

       “查找和替换”窗口 ->“在文件中替换”

       带参数的 Visual Studio 命令

       其他资源

       查找和替换

source insight能直接调用GCC编译吗?怎么用调用

       在source insight的view菜单中点出relation window,然后右键点relation window,选relation window properties,然后把view relation里所有的下拉选项全部选成references,这时候relation window里显示的就是当前函数和调用他的函数的关系了。另外,在view relation上面有一个level,你可以填数字,填几就可以显示此函数向上的几级调用。比如填2,就可以看到向上两级的调用关系图

       使用Source Insight可以将调用编译器编译的命令行写到Source Insight的Custom Commands中。

       菜单中选Option -> Custom Commands ,在Run框中输入编译时候的命令行语句,然后点Add按钮,给此Command起个名字,然后按Keys可以给此Command分配快捷键,按Menu可以将此Command插入到Source Insight菜单中。

       好了,今天我们就此结束对“insight 怎么用”的讲解。希望您已经对这个主题有了更深入的认识和理解。如果您有任何问题或需要进一步的信息,请随时告诉我,我将竭诚为您服务。