SourceInsight.doc_第1页
SourceInsight.doc_第2页
SourceInsight.doc_第3页
SourceInsight.doc_第4页
SourceInsight.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 初级应用1.1 选择美丽的界面享受工作虽然不能以貌取人,但似乎从来没有人责备以貌取软件的。SI的华丽界面,绝对符合现代花花世界的人的审美趣味。在SI中,我们可以轻松地把各种类型关键字、变量、标志符、函数、宏、注释等定义为不同的颜色和显示方式(正体或斜体、加粗或正常、加下划线、放大显示等),总有一种方式能让我们一眼就能分辨出这个标识是什么。 1.1.1 字体选择在SI中样式是可以被继承,如果要从根本上改变字体,最简单的方式就是直接修改根样式中的字体,因为其它样式都会由此继承而来。选择Options/Document Options页面内的Font Options中的Screen Fonts字体,即可改变根样式中的字体。SI中的默认配置为Verdana字体,是一种非等宽字体 2 ,为了使编写的代码在各种编辑器中看起来都有良好的对齐效果,这里强烈建议使用等宽字体,Courier、New Courier和宋体等都是较好的选择。 1.1.2 颜色定义毕竟这是见仁见智的东西,所以从来没有统一的标准3。很多人并不喜欢SI提供的默认配置,那么我们就改吧。选择Options/Style Properties页面,就可以在其中修改所有样式了。选择等号(=)表示继承Parent Style,也可以选择Pick(或者ON/OFF等)去配置一个新值。这完全视乎个人喜好。 1.1.3 标识符样式选择在与 颜色定义 一节同样的界面内即可完成此项配置。 1.1.4 背景色选择在希望要改变背景色的窗口点击鼠标右键(假定使用的是右手鼠标 4),选择上下文菜单的 xxx Window Properties项,然后点击弹出窗口的Back Color按钮,即可修改该窗口背景色。对于SI的源码主窗口,只需选择上下文菜单的Special Window Color项即可完成背景色修改。 1.2 配置合理的默认值高效工作1.2.1 使用合理的缩进我始终认为最容易获得认同的是关于这个选项的配置了。选择Options/Document Options页面,点击其内的Auto Indent按钮,在弹出的Auto Indenting窗口中,默认配置为 Auto Indent Type选择Smart,且勾选了Smart Indent Options中的两个可选项,这样得到的默认缩进效果为 while (1) I 每次都要手工去调整其缩进,其实只要把两个勾选项去掉,就可以得到 while (1) I 何乐而不为呢? 1.2.2 显示坐标通常情况下在窗口状态栏左下方,最会显示当前光标所在行列信息,但我总觉得不够明显,于是通常我们作如下配置: 选择Options/Document Options页面,勾选其中的Show line numbers。同时勾选其中的Show right margin,我们就可显示一条右边界,随时提醒我们是否该行代码写得过长了。 1.3 创建便捷的快捷键快乐工作1.3.1 几个较常用的快捷键默认情况下,SI已经定义了很多非常实用的快捷键: F5指定行号,实现行跳转,在遇到编译错误的时候,能特别方便的找到出错行。 Shift+F8高亮显示指定标识,快速浏览标识的使用情况。 Ctrl+鼠标点击标识直接跳转至标识定义处。 Ctrl+F本文件内查找。 F3本文件查找结果的上一个。 F4本文件查找结果的下一个。 F7打开Browse Project Symbols窗口,快速浏览工程内标识定义。 Ctrl+M创建或查找书签,方便下次找回此位置。 1.3.2 自定义快捷健选择Options/Key Assignments,在弹出的Key Assignments窗口中可自由添加自己喜欢的快捷键。比较值得推荐的有如下几个快捷键定义: Edit: Drag Line Down光标当前行下移。 Edit: Drag Line Up光标当前行下移。 Edit: Join Lines当前行和下一行连接成一行。 1.3.3 更多的快捷键如果你正好对SI的Marco语言(下文将会介绍)有研究,那么还可以定义更多有用的快捷键,比如添加文件头、函数头、注释等(下文在介绍Marco语言时会介绍如何实现)。 2 小技巧-中级应用2.1 查找与替换在SI中支持多种查找及替换方式,除了上文提到的文件内查找外,还支持工程范围内查找、目录查找、指定多文件查找等等。 2.1.1 查找1. Loopup References我们最常用的一种查找方式是选择Search/Lookup References或按Ctrl+/组合键再或者鼠标点 R 按钮,在弹出的Loopup References窗口进行查找操作。 在Search Method中有四种可选的查找方式:Simple String、Regular Expression、 Keyword Expression和Look Up Reference。其中Simple String是最普通的查找方式,可以查找文件中出现的任意字符或字符,甚至可以查找 _upap | u 这样的字符串,但是在工程较大时,查找过程会较慢。 Regular Expression查找方式将在后面讲述正则表达时会介绍到,这里暂时按下不表。 Keyword Expression和Look Up Reference查找的结果基本相同,但是显示方式略有差异。这两种方式都是使用SI预先建立的数据库,查找起来速度相当快。但通常这种速度只对在查找标识符时有明显效果。对于像函数名,变量名等的查找,强烈建议使用这两种方式进行查找。 2. Search Files选择Search/Search Files或按Ctrl+Shift+F组合键,在弹出的Search Files窗口进行查找操作。 在File Name框中可以填入文件名或文件夹。注意当要查询的文件夹双包含子文件夹时,可以勾选Options中的Include Subdirectiories,实现对各层文件的递归搜索。 3. Search Project选择Search/Search Project,在弹出的Search Project窗口进行查找操作。操作与Loopup References几乎完全一致,它们各自保存上次搜索的配置。 2.1.2 替换1. 单文件替换选择Search/Replace或按Ctrl+H组合键,在弹出的Replace窗口进行查找操作。在Search项目里勾选Selection则仅对当前选中的文档部分进行替换。另外如果勾选了Confirm Replacements则是逐个确认替换,否则会同时替换所有符合替换条件内容。 2. 多文件替换选择Search/Replace Files或按Ctrl+Shift+H组合键,在弹出的Replace Files 窗口进行查找操作。除了增加New框(替换后的内容)外,其余均与Search Files窗口相同,可参照查找部分的说明进行操作。 2.2 列操作虽然开篇时就说过,SI的列操作功能比较弱,但不等于没有。先按下Alt键,接着就可用鼠标进行列选择,然后就可以删除指定的列。 2.3 无名技巧这里介绍一些小技巧,大多数情况下我们可以无视它们的存在。但如果我们知道这些,某些时候,会有效提高工作效率。 Smart Rename在上下文件菜单中选Smart Rename或按Ctrl+组合键,即可弹出Smart Rename窗口。它有很强大的功能,但最便捷的使用方式是更改函数内局部变量的名字,操作只作用于函数内部,速度非常快。 Renumber使用Ctrl+R将弹出Renumber窗口,这个用于处理数字顺序排列的情况相当有效,比如数组下标。例如现有代码 array0 = 1; array1 = 2; array2 = 3;现在要改为 array0 = 0; array1 = 1; array2 = 2; array3 = 3;当然可以一个个修改,但最快的方式是在array0 = 1;之前添加array0 = 0;,然后列选数组下标,使用Renumber功能以 0为起始值重填数值。 Edit Condition很多代码尤其是驱动代码,当中有大量的预编译定义,以实现对不同硬件配置的支持。在阅读这样的代码时最痛苦的是不能简单判断程序实际执行的代码分枝。大量分枝同时存在,常常会混淆我们的视听。比如对于下面的代码: #ifdef DEV1 #else #endif如果确定我们当前分析的是DEV1的执行情况 5,那么可以选择上下文件菜单的Edit Condition 选项,在弹出的Conditional Parsing窗口中把DEV1的值设置为True,那么 #ifdef DEV1就等价于#if 1了,相当注释掉了#else分枝的代码。反之,设置为Flase时,则注释掉#ifdef DEV1分枝的代码。 3 学会偷懒-高级应用4 附录1-SI中正则表达式由于在查找及替换中,经常会使用用正则表达式6,这里对SI的正则表达式进行简单介绍。 4.1 通配符正则表达式通配符总表: CharacterMatches (在表达式开始处)行的开始部分.任意单个字符abc任意属于集合 abc 的单个字符abc任意不属于集合 abc 的单个字符*前面字符的0个或多个重复+前面字符的1个或多个重复t一个 tab 字符s一个空格符w一个空白符(包括 tab 符和空格符)$行的结束部分4.2 表达式中的组在执行替换操作时,组将大有用武之地。正则表达式的各个部分可以用(和)进行分隔,分隔得到的每一项就是一个组。在进行替换时可通过组从匹配内容中抽取出特定串。在正则表达式中每个组都有一个编号,自左至右编号从1开始。 例如:abc(xyx)将能匹配 abcxyz ,此时组1就包含了 xyz 串。在进行替换操作时,就可以通过在替换后内容框中填入1来取出这个字符串。推而广之,可以使用来取得组所包含的串。 例如:当设定把(abc)(xyz)替换为21的替换规则时,对于 abcxyz 被替换串,则组1包含 abc,组2包含 xyz,而替换后的内容定义为组2内容后跟组1内容(21),因此将得到 xyzabc。 举个真实的使用例子,相信会增加大家的兴趣。有时为方便调试,代码中到处流浪着各种形式的mytrace调用 mytrace(Create parameter list. );有时希望把它们全部注释掉,而有些时候又希望把它们全部恢复回来。这是个简单的例子,可以使用 (.*)(/*)(.*mytrace.*)(*/)_FCKpd_6nbsp;= 13把它们恢复回来,而使用 (.*)(mytrace)(.*)_FCKpd_7nbsp;= 1则完成把它们全部注释掉。 5 附录2-SI中的宏语言我始终认为这是SI中最有趣的部分,这是一种功能强大的编程语言,几乎可以实现在编程过程可能使用到的各种功能。 这里不准备对如何实用宏语言进行编程作介绍(可参阅SI帮助文档。),只介绍如何使用已编好程序。为方便使用,我已把这些程序都集中放在utils.em文件中,下文就此文件进行论述。 该宏文件实现了一些在编码过程中可能会用到的功能, 如添加文件头、函数说明(使用时能自动添加文件名、函数名和当前日期)和宏定义,代码补全等。 使用说明: 1. Project/Open Project.打开Base工程(该工程一般在我的文档/Source Insight/Projects/Base中); 2. Project/Add and Remove Project Files.加入宏文件(即utils.em); 3. Options/Menu Assignments打开Menu Assignments窗口,在Command中输入Macro,选中要使用的宏,添加到合适的菜单中. 推荐使用的宏:InsFileHeader、InsFunHeader、InsHeaderDef、InsIfdef和AutoExpand (为代码自动补全功能,建议建快捷键)。 关于AutoExpand的举例说明, 当你输入了 switch 且光标正处于switch后面,运行该宏则会得到 switch (#) case break; default: 对于InsFunHeader宏,如果有如下函数体 int nOpenConfigFile(char *pchMemConfig, char *pchFlashConfig, int nSize, int nMode) I 光标在函数体内时运行该宏,那么将会在函数体上方得到 其中的函数名及编写日期自动按实际情况填充,T357串可通过修改utils.em文件,改成你需要的名字。 Source Insight中集成Uncrustify格式化代码 我们在编写代码时一定会对代码进行格式化,清晰整洁的代码,完备的注释信息,大大地提高了程序的维护和阅读。Uncrustify是一个代码美化工具可用于C,C+,C#,D和Java源代码的美化。它能够利用空格,tab与空格或只有tab进行缩排,添加或删除换行,排列代码等,并且Uncrustify具有高配置性,易于修改的特点,配合Source Insight 使用堪称完美。 工作环境:编辑器:Source Insight3.5;插件:Uncrustify-0.56-win32。 0.安装Source Insight 3.5 首先当然是安装SI,网上很多地方可以下载。1.安装uncrustify-0.56-win32官方地址:Uncrustify Code Beautifier:/projects/uncrustify/默认下载的没有下图中画红线的三个文件,可以到我的CSDN下载:/source/2617787 file_footer:文件尾部标识文件; file_header:文件头标识文件; func_header:函数头标识文件; 下载uncrustify-0.56-win32之后解压到c盘根路径,如下图:2.配置source insight2.1打开SourceInsight,选择菜单“Options-Custom Commands-Add”,输入uncrustify2.2 Run中输入:不产生backup文件C:uncrustify-0.56-win32uncrustify.exe -c C:uncrustify-0.56-win32amxmodx.cfg -no-backup %f2.3 Dir留空,将“Capture Output”和“File,then Line”打上勾;2.4然后点对话框中右侧的按钮“Keys.”设置快捷键“Ctrl+F8”;2.5打开要格式化的文件,“Ctrl+F8”即可对当前文件格式化;3.配置文件Uncrustify具有高配置性,易于修改的特点,从2.2中可以看出,我们在格式化代码的时候用到了amxmodx.cfg文件,实际上我们只需要更改以下几个文件: amxmodx.cfg:主要配置文件,所有的配置项都在此文件中,可根据您的需要定制,每项都有注释; file_footer:文件尾部标识文件; file_header:文件头标识文件; func_header:函数头标识文件;4.格式化效果呵呵,都设置好了,按住“Ctrl+F8”就可以格式化当前文件了。效果还不错吧。重要软件特性 Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C+, C#和Java等程序的分析。Source Insight能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。 Source Insight不仅仅是一个强大的程序编辑器,它还能显示reference trees,class inheritance diagrams和call trees。Source Insight提供了最快速的对源代码的导航和任何程序编辑器的源信息。 Source Insight提供了快速和革新的访问源代码和源信息的能力。与众多其它编辑器产品不同,Source Insight能在你编辑的同时分析你的源代码,为你提供实用的信息并立即进行分析。技术特点: 介绍 Source Insight是如今最好用的语言编辑器,支持几乎所有的语言, 如C、C+、ASM、PAS、ASP、HTML等常见的,还支持自己定义关键字,如果您 是一个程序员或者网页制作人,这个软件对您都是有帮助的! Source Insight为您提供了可快速访问源代码和源信息的功能。Source Insight不象其它的编辑器产品,它还可以帮您分析源代码,并在您编辑的同时立刻提供给您有用的信息和分析。Up-To-Date Information (improved!) 更新的信息(增强!)Source Insight自动创建并维护它自己高性能的符号数据库,包括函数、method、全局变量、结构、类和工程源文件里定义的其它类型的符号。Source Insight 可以迅速地更新您的文件信息,即使在您编辑代码的时候。而且,符号数据库的符号可以自动创建倒您的工程文件中。动态类型分解(Type Resolution)(新!)Source Insight 可以将变量类型动态分解。符号窗口(增强!) 符号窗口显示在每个源窗口的旁边,可以动态更新。 动态Context窗口(增强!)Source Insight 2.0增加了一个新特点引进了Context 窗口。Context 窗口在背景中更新,并且追踪您正在的任务。您只要点击标识符,Context 窗口就会自动显示符号的定义。若标识符是个变量,Context 窗口则会显示给您它的基础结构(base structure)或类型。Context 窗口也可以在工程窗口中自动显示所选定的文件,相关窗口的符号和Clip窗口中选定的Clip. 语法格式化(Syntax Formatting) (新!)语法格式化是Source Insight的重要的新功能。它提供了许多先进的显示功能,包括带有用户定义功能的文本格式等。 与上下文相关的智能化重命名(新!) Source Insight的索引帮助您有效地重新为变量、函数和其它标识符命名以极其简单的方式。混合语言编辑(Mixed Language Editing )(新!) Source Insight支持含内置脚本的HTML和Active Server Page文件(ASP和JSP)。关键字搜索(Keyword Searches) (新!) Source Insight的项目搜索命令支持关键字搜索方式,类似于Internet搜索引擎。符号的自动完成(Symbolic Auto-Completion) (新!) 当您准备打印标识符名称时,Source Insight会弹出一系列标识符的名称来供您选择。 快速访问所有的符号和文件 编程项目支持 团队编程支持 快速查找参考文献(增强!) 源链接(Source Links) 源链接(Source Links)帮助您在感兴趣的领域之间快速切换。 在整个项目中快速搜索和替换(增强!) 项目窗口(Project Window) 同外部编译器和工具结合 Clip 窗口 您可以利用clip窗口轻松重新排列代码及插入样板文件。 极具特色的编辑器 拖放编辑 Two-Stage Line Revision Marks 和可选择的 Line Restoration 可扩展的文件类型和语言(增强!) 应急修复(Crash Recovery)提供了全部时间的防护 持久稳固的工作空间 可定制的菜单和键盘(增强!) 支持Windows 2000(新!) 突出的Windows用户界面 系统需求:操作系统: Windows 2000 Pro or Server Windows NT 4.0 SP3 Windows Me Windows 98 Windows 95 with Internet Explorer 4.0+机器: Pentium or faster, Pentium II or better recommended.内存: 64 MB, 128 MB or more recommended.磁盘空间: 4 MB.source insight中使用astyle的代码格式化功能2010-05-18 14:28如何在source insight中使用astyle的代码整理功能?用source insight 编辑代码时,苦于source insight没有集成的代码格式化工具, GNU的astyle是一个免费的代码格式化工具,能够整理符合c/c+规范 。 我们可以将astyle.exe外挂到SourceInsight中。详细步骤如下:1:从上下载AStyle_1.24_windows.zip(开放源码,可以仔细阅读);2:加压缩后将bin文件夹下的astyle.exe放到C:Program Filesastyle下 (自己可以放在任意位置) 在SourceInsight菜单栏里,Options-Custom Commands界面上选择:Add,在弹出对话框写入 Astyle,3:在run中添加C:Program Filesastyleastyle.exe -style=ansi %f,其中,如果astyle.exe所在路径中有空格,必须用括起来,参数-style=ansi 代表ansi C 格式(如果你需要格式化java代码,这个地方改为:-style=java),%f是指作用于当前文件,这个必须的其它命令参数可以参考astyle的帮助参数 可以查看网页/astyle.html4:此外,在此界面上还可以为这个命令设置快捷键,点击keys,添加你觉得方便的按钮;5:在SourceInsight菜单栏里,Options-Menu Assignments界面上,将这个命令名称为Astyle添加到某工具栏下,我是依然放在了Option下,在左面的Command列表里找到我们刚才添加的Astyle,在右面的Menu中选择你要加到那个菜单下,这里我加到Option下,可以在Menu Contents选择适当位置,点击insert即可;C:astylebinAstyle.exe -style=ansi -s8 -S -N -L -m0 -M40 -convert-tabs -suffix=.pre %fSourceInsight 中集成Artistic Style 格式化代码2008-04-16 14:531942人阅读评论(8)收藏举报下载地址/project/showfiles.php?group_id=2319lWindows平台下也有好多人都喜欢用SourceInsight编辑C/C+程序,但是SourceInsight没有提供对代码格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。假定AStyle.exe的目录是“C:/ArtisticStyle/”,在该目录下有一个“c.opt”文件是用来保存配置的文件。下面简要地介绍下Artistic Style集成到SourceInsight中的方法。1. 打开你的SourceInsight, 选择菜单“Options-Custom Commands-Add”, 输入Artistic Style(可以随便输入一个名字)。2. Run中输入: C:/ArtisticStyle/Astyle.exe -options=c.opt %f3. Dir留空,将Iconic Window, Capture Output, Parse Links in OutPut, File,then Line 四项前打上勾。4. 然后点对话框中右侧的按钮“Menu”, Menu-Menu-View-, 右侧Insert, OK.5. 此时在SourceInsight中的View菜单下多了个Style的子菜单选项,可以用它来对单个C/C+文件进行格式化。上面用的是google的文档共享,我这才发现,又一次,google的一个相当优秀的一个产品也被墙了。看来还是得自己费一番唇舌说一下。既然source insight默认没有这个功能,只有一种办法可以实现这一点了,就是自定义命令(custom commands)功能,好在source insight的这一功能还是非常强大的。这里先推荐一个非常好的开源代码格式工具,astyle,显然,这个又是来自国外的作品,因为封闭的天朝几乎没有出过一款用着非常舒心的开源软件。下载地址是/projects/astyle/files/。具体的解释自己查看相关页面和astyle的稳定吧。这里简单说一下如何配置。将astyle解压到一个合适的目录下,比如D:astyle, 然后在source insight中新建一个自定义的命令,命令的内容如下:1astyle -style=allman -indent=spaces=4 -indent-switches -indent-labels -indent-blocks -indent-preprocessor -x -z2-keep-one-line-blocks %s这条命令各参数的意义可以参考astyle附带的文档,需要解释的是最后一个参数%s,%s由source insight解析,是一个临时文件的文件名,这个文件里保存的是用户选定的内容, 40 THEN PRINT Its HOT! END IF END BEGIN ThermometerRead(Source insideOrOutside) RETURN 28 END ThermometerReadThe above pseudocode utilises the functionThermometerRead, which returns a temperature. WhileThermometerReadwould be intended to read some hardware device, this function currently does not contain the necessary code. SoThermometerReaddoes not, in essence,simulateany process, yet itdoesreturn a legal value, allowing the main program to be at least partly tested. Also note that although it accepts theparameterof typeSource, which determines whether inside or outside temperature is needed, it does not use the actual value passed (argumentinsideOrOutside) by the caller in its logic.A stub1is a routine that doesnt actually do anything other than declare itself and the parameters it accepts and returns something that is usually the values expected in one of the happy scenarios for the caller. Stubs are used commonly as placeholders for implementation of a known interface, where theinterfaceis finalized/known but the implementation is not yet known/finalized. The stub contains just enough code to allow it to be compiled and linked with the rest of the program.editSee alsoSoftware Testing portal Abstract method Mock object Dummy code Test stubsHTML 格式化工具使用 python 写的一个小工具,内嵌两个文件 html.py 和 html_parser.py,第一个是不依赖 HTMLParser 的,第二个是使用 HTMLParser 的,请尽量使用第二个版本,第一个还在完善中。目前复杂的 HTML 页面无法保证正常格式化,比如淘宝首页那种内嵌各种 script 的页面,无法正常格式化。内联的样式、脚本都保持原样,未进行任何格式化操作,下个版本会加入。本地需要安装 python 2.5 或者 2.6 版本,3.0 或者 2.7 运行,九成会报错。win 下文件基本都抄自玉伯。说明:文件说明:1. 如果你使用的是 ubuntu 系统,只需要下载 html_parser.py 这个文件即可。2. 如果你使用的是 win 系统,则同时需要下载 format.cmd, install.cmd, install.inf, run.bat, uninstall.cmd 等文件使用方法:1.ubuntu:运行: python html_parser.py test.html,生成test-order.html运行: python html_parser.py test.html w,则直接覆盖源文件运行: python html_parser.py test.html test2.html,则格式化后文件将存储在 test2.html 中如果要在 ipython 中运行可以使用 ipython ,或者 python -i ,后边与前相同2.win:运行 install.cmd 安装到右键,然后找到一个 html 文件,右键选择 format html 即可在同目录生成 *-order.html 文件压缩包下载地址:/p/html-format/downloads/detail?name=html-format.zip&can=2&q=Google Code:/p/html-format/github:/nanzhi/Html-FormatSource Insight看代码时比较方便,而且它的代码自动完成功能比vim+ctags+cscope好用的多,可是我认为写代码时,Source Insight的功能却比不上vim。我的设定是:在Source Insight中按F12调用gvim,打开对应文件,跳转到对应的行。以下是实现步骤:1.Source Insight中,Options-Custom Commands.-Add.,New Command name 随便写,我的是Edit with Vim2.Run中写入: C:Program FilesVimvim63gvim.exe -remote-silent +%l %f意思是在当前已经打开的gvim窗口里面打开当前的文件,并且跳转到指定行%l为当前的行号,%f为文件名使用 -remote-silent 的作用是,如果已经打开了对应文件,就不会打开第二次,而是在已经打开的文件里跳转到对应行3.还是同一个对话框里面,选择Keys-Assign New Key.-按F12,如果你已经将F12设置给其他命令,选择其他的按键就行了4.设置完毕虽然现在source insight用的越来越少了,但是和同事交流时还是少不了它,毕竟不是人人都在用vim.今天又发掘了一下,实现了在vim中调用source insight打开对应的文件:nnoremap :!start C:Program FilesSource Insight3Insight3.exe -i +=expand(line(.) %1.一定要加上start,否则调用source insight时弹出讨厌的dos窗口2.-i表示在已经打开的souce insight中打开3.+后面的部分是指定行号以前习惯于eclipse,sourceinsight,vim用的不是很熟悉,在现在的公司中,vim是一种必备的技巧,慢慢,从难受到得心应手,vim还是比较好用的,下面记录一点实用的技巧1、vim+ctags+cscope是一个强大的比拟于sourceinsight的字符界面的工具2、ctrl+,跳转到定义处,ctrl+_+c等同于cs f c的作用,关于具体是那些键被映射到cs f c上,具体看.vimrc文件的定义3、ctrl+o后退跳转,ctrl+i向前跳转4、在某单词上按住shift+8,搜索某词,n向后搜索,N向前搜索5、向前跳转到上一个函数定义处,shift+%跳转到匹配的括号处,在if()比较大的时候很利于看清代码结构6、u撤销更改,ctrl+r重做更改,:rew跳到第一个文件,当你跳转比较多的时候,回到第一个文件比较有效7、0跳到行首,$跳到行尾,x删除当前的字符。8、调试用户态的程序,需要查找某个命令的手册时,例如:statfs时,光标移到statfs上,按下大写K则调出man手册,很有用,帮助按q退出。9、替换操作,在处理某个shell脚本时非常有效 : :75,131s/./g将文件中75到131行的行首的字符去掉 :%s/#/g将文件中所有的行行首都添加#。 :w!只读文件强制保存。10、跳转到文件,文件中include ops.h,光标移到文件名上,按下gf将跳转到这个文件,但是先必须用cscope建立文件索引11、vimdiff的使用与beyond compare一致dp 复制差异到另一个文件do 从另一个文件获取差异diffupdate 更新差异显示对比结果vertical diffsplit *.c 比较当前编辑的某文件与*.c文件的差异12、在vim的命令行模式下使用make:make uImage -j 19 ARCH=arm CROSS_COMPILE=arm-linux-编译完成后将显示所有的错误,:cl显示所有编译错误:cn下一个编译错误:cp上一个编译错误将实现所有的错误自动跳转到行的功能。也可以:!export ARCH=arm :!export CROSS_COMPILE=arm-linux-然后编译即可。Source Insight实质上是一个支持多种开发语言(java,c,c+等等)的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,常被我们当成源代码阅读工具使用。一 常用快捷键1、按住ctrl, 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。2、Alt + F12可以让每个字符的宽度保持一致。勾选菜单栏的view - draft view也可以达到同样的效果。3、shift+F8 高亮显示指定标识符,快速浏览标识符的使用情况。4、F5指定行号,实现指定代码行跳转,在遇到编译错误的时候,能特别方便的找到出错行。ctrl + g也可以达到同样的效果,此时跳出对话框,输入行号,可以自动跳到期望行。5、“Ctrl+F”在文件内查找,找到后可以按F3和F4实现对查找结果实现上下定位。6、“F7”打开Browse Project Symbols窗口,快速浏览工程内标识定义。7、“Ctrl+M”创建或查找书签,方便下次找回此位置。二 自定义快捷健选择菜单栏的Options/Key Assignments,在弹出的”Key Assignments“窗口中可自由添加自己喜欢的快捷键。值得推荐的有如下几个快捷键定义:* Edit: Drag Line Down光标当前行下移。* Edit: Drag Line Up光标当前行下移。* Edit: Join Lines当前行和下一行连接成一行。三 查找操作SI支持多种查找及替换方式,除了上文提到的文件内查找外,还支持工程范围内查找、目录查找、指定多文件查找等等。1、Loopup References我们最常用的一种查找方式是选择Search/Lookup References或按Ctrl+/组合键再或者鼠标点R按钮,在弹出的Loopup References窗口进行查找操作。在Search Method中有四种可选的查找方式:“Simple String”、“Regular Expression”、“Keyword Expression”、“Look Up Reference”。Simple String是最普通的查找方式,可以查找文件中出现的任意字符或字符串,甚至可以查找_upap | u 这样的字符串,但是在工程较大时,查找过程会较慢。Regular Expression查找方式将在后面讲述正则表达时会介绍到,这里暂时按下不表。Keyword Expression和Look Up Reference查找的结果基本相同,但是显示方式略有差异。这两种方式都是使用SI预先建立的数据库,查找起来速度相当快。但通常这种速度只对在查找标识符时有明显效果。对于像函数名,变量名等的查找,强烈建议使用这两种方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论