SourceInsight和UltraEdit技巧
- 格式:doc
- 大小:29.50 KB
- 文档页数:5
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平台下的共享软件,可以从/上边下载30天试用版本。
由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在linux平台上将/usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。
sourceinsight使用技巧1 sourceinsight screen font的默认字体是Verdana的,它是一直变宽字体。
在Document style中可以将字体改为定宽的Courier2 勾掉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。
source insight 使用技巧1 sourceinsight screen font 的默认字体是Verdana 的,它是一直变宽字体。
在Document style中可以将字体改为定宽的Courier2 document options->auto indent 去掉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。
开胃菜-初级应用Source Insight常用的快捷键:Ctrl+= :Jump to definitionAlt+/ :Look up referenceF3 : search backwardF4 : search forwardF5: go to LineF7 :Look up symbolsF8 :Look up local symbolsF9 :Ident leftF10 :Ident rightAlt+, :Jump backwordAlt+. : Jump forwardShift+F3 : search the word under cusor backwardShift+F4 : search the word under cusor forwardF12 : incremental searchShift+Ctrl+f: search in projectshift+F8 : hilight word选择美丽的界面享受工作字体选择在SI中样式是可以被继承,如果要从根本上改变字体,最简单的方式就是直接修改根样式中的字体,因为其它样式都会由此继承而来。
选择Options/Document Options页面颜色定义选择Options/Style Properties页面,就可以在其中修改所有样式了。
选择等号(=)表示继承Parent Style,也可以选择Pick(或者ON/OFF等)去配置一个新值。
标识符样式选择在与颜色定义一节同样的界面while (1) {I }while (1){I}何乐而不为呢?显示坐标创建便捷的快捷键快乐工作几个较常用的快捷键默认情况下,SI已经定义了很多非常实用的快捷键:F5指定行号,实现行跳转,在遇到编译错误的时候,能特别方便的找到出错行。
Shift+F8高亮显示指定标识,快速浏览标识的使用情况。
Ctrl+鼠标点击标识直接跳转至标识定义处。
Ctrl+FF3F4F7打开Browse Project Symbols窗口,快速浏览工程内标识定义。
Source Insight 使用技巧标签:使用说明使用技巧文件快捷键分类:技术点滴2007-01-12 10:39 Source Insight是阅读和编写代码的好东东,基本上也算得上是经典之作了,虽然还有一点点小bug,不过对于我们这些C程序员来说可是一旦拥有别无所求。
下列小技巧是在工作中同事整理总结的,对提高工作效率多少有点帮助,其中有些是对应于SVN的,没有使用SVN做版本管理的人就不要白费力气了。
Option—>custom commands→run中填写下面的命令。
在commands中填写命令的标识(如Jonathan)选择RUN。
1.ShellExecute open explorer /e,/select,%f/*作用是在资源管理器中打开当前编辑文件并选中*//*可以设置快捷键如ctrl+e,(option→key assignments→选择刚添加的命令更改其快捷方式)这样能很方便的在资源管理器打开对应的文件,并进行tortoiseSVN的相关操作*/2.X:\Progra~1\T ortoiseSVN\bin\T ortoiseProc.exe /command:log /path:% /notempfile /closeonend/*使用前注意更改对应的bin安装路径*//*作用是直接查看当前文件的svn log*//*可以设置快捷键如ctrl+l*/3.X:\Progra~1\T ortoiseSVN\bin\T ortoiseProc.exe /command:diff /path:%f /notempfile /closeonend/*使用前注意更改对应的bin安装路径*//*作用是直接查看当前文件和基准版本的比较*//*可以设置快捷键如ctrl+d*/4.在Source Insight中快速添加注释将以下代码保存成Utils.em,详细使用说明看文章结尾。
效果如下图/* Utils.em - a small collection of useful editing macros *//*-------------------------------------------------------------------------I N S E R T H E A D E RInserts a comment header block at the top of the current function.This actually works on any type of symbol, not just functions.T o use this, define an environment variable "MYNAME" and set itto your email name. eg. set MYNAME=raygr-------------------------------------------------------------------------*/ macro InsertHeader(){// Get the owner's name from the environment variable: MYNAME.// If the variable doesn't exist, then the owner field is skipped.szMyName = getenv(MYNAME)// 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)// begin assembling the title stringsz = "/* "/* convert symbol name to T E X T L I K E T H I S */cch = strlen(szFunc)ich = 0while (ich < cch){ch = szFunc[ich]if (isupper(ch))sz = cat(sz, " ")elsesz = cat(sz, " ")sz = Cat(sz, toupper(ch))ich = ich + 1}sz = Cat(sz, " */")InsBufLine(hbuf, ln, sz)InsBufLine(hbuf, ln+1, "/*-------------------------------------------------------------------------")/* if owner variable exists, insert Owner: name */if (strlen(szMyName) > 0){InsBufLine(hbuf, ln+2, " Owner: @szMyName@")InsBufLine(hbuf, ln+3, " ")ln = ln + 4}elseInsBufLine(hbuf, ln, " ") // provide an indent alreadyInsBufLine(hbuf, ln+1, "-------------------------------------------------------------------------*/")// put the insertion point inside the header commentSetBufIns(hbuf, ln, 4)}/* InsertFileHeader:Inserts a comment header block at the top of the current function.This actually works on any type of symbol, not just functions.T o use this, define an environment variable "MYNAME" and set itto your email name. eg. set MYNAME=raygr*/macro InsertFileHeader(){szMyName = getenv(MYNAME)hbuf = GetCurrentBuf()InsBufLine(hbuf, 0, "/*-------------------------------------------------------------------------")/* if owner variable exists, insert Owner: name */InsBufLine(hbuf, 1, " ")if (strlen(szMyName) > 0){sz = " Owner: @szMyName@"InsBufLine(hbuf, 2, " ")InsBufLine(hbuf, 3, sz)ln = 4}elseln = 2InsBufLine(hbuf, ln, "-------------------------------------------------------------------------*/")}// Inserts "Returns True .. or False..." at the current linemacro ReturnTrueOrFalse(){hbuf = GetCurrentBuf()ln = GetBufLineCur(hbuf)InsBufLine(hbuf, ln, " Returns True if successful or False if errors.") }/* Inserts ifdef REVIEW around the selection */macro IfdefReview(){IfdefSz("REVIEW");}/* Inserts ifdef BOGUS around the selection */macro IfdefBogus(){IfdefSz("BOGUS");}/* Inserts ifdef NEVER around the selection */macro IfdefNever(){IfdefSz("NEVER");}// Ask user for ifdef condition and wrap it around current // selection.macro InsertIfdef(){sz = Ask("Enter ifdef condition:")if (sz != "")IfdefSz(sz);}macro InsertCPlusPlus(){IfdefSz("__cplusplus");}// Wrap ifdef <sz> .. endif around the current selection macro IfdefSz(sz){hwnd = GetCurrentWnd()lnFirst = GetWndSelLnFirst(hwnd)lnLast = GetWndSelLnLast(hwnd)hbuf = GetCurrentBuf()InsBufLine(hbuf, lnFirst, "#ifdef @sz@")InsBufLine(hbuf, lnLast+2, "#endif /* @sz@ */")}// Delete the current line and appends it to the clipboard buffer macro KillLine(){hbufCur = GetCurrentBuf();lnCur = GetBufLnCur(hbufCur)hbufClip = GetBufHandle("Clipboard")AppendBufLine(hbufClip, GetBufLine(hbufCur, lnCur)) DelBufLine(hbufCur, lnCur)}// Paste lines killed with KillLine (clipboard is emptied) macro PasteKillLine(){PasteEmptyBuf(GetBufHandle("Clipboard"))}// delete all lines in the buffermacro EmptyBuf(hbuf){lnMax = GetBufLineCount(hbuf)while (lnMax > 0){DelBufLine(hbuf, 0)lnMax = lnMax - 1}}// Ask the user for a symbol name, then jump to its declaration macro JumpAnywhere(){symbol = Ask("What declaration would you like to see?")JumpT oSymbolDef(symbol)}// list all siblings of a user specified symbol// A sibling is any other symbol declared in the same file.macro OutputSiblingSymbols(){symbol = Ask("What symbol would you like to list siblings for?") hbuf = ListAllSiblings(symbol)SetCurrentBuf(hbuf)}// Given a symbol name, open the file its declared in and// create a new output buffer listing all of the symbols declared // in that file. Returns the new buffer handle.macro ListAllSiblings(symbol){loc = GetSymbolLocation(symbol)if (loc == ""){msg ("@symbol@ not found.")stop}hbufOutput = NewBuf("Results")hbuf = OpenBuf(loc.file)if (hbuf == 0){msg ("Can't open file.")stop}isymMax = GetBufSymCount(hbuf)isym = 0;while (isym < isymMax){AppendBufLine(hbufOutput, GetBufSymName(hbuf, isym))isym = isym + 1}CloseBuf(hbuf)return hbufOutput}/*written by yubind*/macro SingleLineComment(){szMyName = "chenjsa"// Get a handle to the current file buffer and the name // and location of the current symbol where the cursor is. hbuf = GetCurrentBuf()ln = GetBufLnCur(hbuf)// Get current timeszTime = GetSysTime(1)Hour = szTime.HourMinute = szTime.MinuteSecond = szTime.SecondDay = szTime.DayMonth = szTime.MonthYear = szTime.Yearif (Day < 10)szDay = "0@Day@"elseszDay = Day//szMonth = NumT oName(Month)if (Month < 10)szMonth = "0@Month@"elseszMonth = MonthszDescription = Ask("请输入修改原因")// begin assembling the title stringInsBufLine(hbuf, ln+1, "/*@szDescription@ @szMyName@.xmyanfa @Year@-@szMonth@-@szDay@*/")}macro MultiLineCommentHeader(){szMyName = "chenjsa"// Get a handle to the current file buffer and the name// and location of the current symbol where the cursor is.hbuf = GetCurrentBuf()ln = GetBufLnCur(hbuf)// Get current timeszTime = GetSysTime(1)Hour = szTime.HourMinute = szTime.MinuteSecond = szTime.SecondDay = szTime.DayMonth = szTime.MonthYear = szTime.Yearif (Day < 10)szDay = "0@Day@"elseszDay = Day//szMonth = NumT oName(Month)if (Month < 10)szMonth = "0@Month@"elseszMonth = MonthszDescription = Ask("请输入修改原因:")// begin assembling the title stringInsBufLine(hbuf, ln + 1, "/*@szDescription@ @szMyName@.xmyanfa @Year@-@szMonth@-@szDay@ begin*/")}macro MultiLineCommentEnd(){szMyName = "chenjsa"// Get a handle to the current file buffer and the name // and location of the current symbol where the cursor is. hbuf = GetCurrentBuf()ln = GetBufLnCur(hbuf)// Get current timeszTime = GetSysTime(1)Hour = szTime.HourMinute = szTime.MinuteSecond = szTime.SecondDay = szTime.DayMonth = szTime.MonthYear = szTime.Yearif (Day < 10)szDay = "0@Day@"elseszDay = Day//szMonth = NumT oName(Month)if (Month < 10)szMonth = "0@Month@"elseszMonth = MonthInsBufLine(hbuf, ln + 1, "/*@szMyName@.xmyanfa @Year@-@szMonth@-@szDay@ end*/")}使用说明:可以实现在sourceinsight中快速添加修改注释。
Source Insight是一款非常强大的代码阅读和编辑工具,它可以帮助程序员更方便地阅读和理解源代码。
以下是一些使用Source Insight的阅读技巧:1. 使用符号跳转:在Source Insight中,你可以使用快捷键"Ctrl+Click"或"Shift+Click"来跳转到函数、变量或类的定义处,这样可以让你更快速地了解它们的用途和定义。
2. 利用大纲视图:Source Insight的大纲视图可以显示当前文件的结构,包括函数、类、变量等。
这个视图可以让你更容易地了解代码的结构,并且可以快速导航到各个部分。
3. 使用注释和文档:Source Insight可以显示函数、类和变量的注释和文档,这些注释和文档通常会提供有用的信息,帮助你理解代码的功能和实现。
4. 显示行号:在Source Insight中,你可以显示行号,这可以帮助你更容易地找到代码的位置。
5. 使用搜索功能:Source Insight的搜索功能非常强大,你可以使用它来查找特定的函数、类、变量或注释。
你可以使用快捷键"Ctrl+F"来打开搜索框,输入你要查找的内容,然后按下"Enter"键即可查找。
6. 定制快捷键:Source Insight允许你定制快捷键,你可以根据自己的习惯来设置快捷键,提高代码阅读和编辑的效率。
7. 使用自动完成:Source Insight的自动完成功能可以帮助你更快地输入代码,你只需要输入几个字符,然后按下"Ctrl+空格"键,Source Insight会自动显示出可能的选项,你可以从中选择你要输入的内容。
以上是一些使用Source Insight的阅读技巧,希望对你有所帮助。
source insight 高级用法
Source Insight 是一款功能强大的代码阅读和编辑工具,主要用于C、C++ 和汇编语言的开发。
以下是一些Source Insight 的高级用法:
1. 多光标编辑:你可以在多个位置放置光标,然后同时编辑文本。
这对于同时修改多个地方非常有用。
2. 查找和替换:你可以在整个项目或当前文件中查找和替换文本或符号。
这个功能在重构代码时非常有用。
3. 代码折叠:你可以折叠或展开代码块,以更好地理解代码结构。
4. 自动完成:Source Insight 可以自动完成你的代码,这可以大大提高编程效率。
5. 导航:你可以快速导航到任何符号或函数的定义处,也可以快速浏览项目的层次结构。
6. 注释和取消注释:你可以选择注释或取消注释代码块,这对于理解代码逻辑非常有用。
7. 显示行号:你可以在编辑器中显示行号,这有助于快速定位代码。
8. 语法高亮:Source Insight 可以根据语法高亮显示代码,这有助于快速理解代码结构。
9. 自定义设*:你可以根据自己的喜好自定义Source Insight 的界面和编辑器设置。
10. 集成版本控制:Source Insight 支持与Git、CVS 等版本控制系统集成,可以方便地查看和管理版本历史。
这些只是一些基本的Source Insight 高级用法,还有更多高级功能等待你去探索。
ultraedit 使用技巧UltraEdit 是一款被广泛应用于程序开发、文本处理和编码工作的文本编辑器。
它拥有众多强大的功能和高度可定制性,能够帮助用户更高效地编写和编辑代码。
以下是一些 UltraEdit 的使用技巧:1. 多窗口编辑:UltraEdit 支持同时打开多个文件,并且每个文件都可以在单独的标签页中进行编辑。
你可以通过点击标签页来切换文件,方便在多个文件之间进行切换和编辑。
2. 快速搜索替换:UltraEdit 提供了强大的搜索和替换功能。
你可以使用 Ctrl + F 快捷键来打开搜索对话框,输入关键词进行搜索。
而 Ctrl + H 快捷键可以打开替换对话框,可以快速找到并替换文本中的关键词。
3. 列编辑模式:UltraEdit 的列编辑模式可以让你在多个文本行的同一列进行编辑,非常适用于对齐代码、处理表格数据等操作。
你可以通过按住 Alt 键,然后用鼠标选中要编辑的文本列,然后进行复制、删除、替换等操作。
4. 定义宏:UltraEdit 支持录制和应用宏,可以帮助你执行重复性的任务。
你可以录制一串操作,然后将其保存为宏。
之后,你只需要点击宏按钮或使用快捷键就可以自动执行这些操作。
5. 分屏编辑:UltraEdit 支持分屏编辑,可以同时在一个编辑器窗口中显示多个文件的不同部分,方便对比和编辑。
你可以使用菜单中的 "窗口" 选项来选择要分屏的位置和文件。
同时,你还可以通过拖拽文件标签页来进行文件分屏操作。
6. 程序调试:UltraEdit 内置了调试器功能,可以帮助你调试和分析程序。
你可以设置断点、查看变量的值和数据、单步执行代码等。
这对于开发人员来说是非常有用的功能。
7. 自动完成:UltraEdit 支持智能的自动完成功能,可以帮助你节省编码时间。
只需输入部分关键词或标识符,并按下 Tab 键,UltraEdit 就会自动完成剩余的内容。
同时,你还可以通过自定义词库来进行自动完成设置,以便更适应你的编码习惯。
ultraedit使用技巧UltraEdit是一款功能强大的文本编辑器,拥有许多实用的使用技巧,以下是一些常用的技巧:1. 快捷键:UltraEdit支持大量的快捷键,使得您可以更快速地完成各种操作。
比如Ctrl+S保存文件,Ctrl+C复制选中文本,Ctrl+V粘贴文本等等。
学习和使用这些快捷键可以显著提高您的工作效率。
2. 搜索和替换:UltraEdit的搜索和替换功能非常强大,可以在整个文档中或者选定的范围内进行查找和替换操作。
您可以使用正则表达式来进行高级的搜索和替换,同时还可以使用通配符进行模糊匹配。
3. 多窗口编辑:UltraEdit支持同时打开多个文件进行编辑,每个文件都会在一个独立的窗口中显示。
您可以轻松地在不同的窗口之间切换,方便对多个文件进行比较和编辑。
4. 宏录制:UltraEdit的宏功能可以记录您的操作步骤,并且可以保存为宏文件,方便以后重复使用。
您可以使用宏来自动化一系列操作,提高工作效率。
5. 代码折叠:UltraEdit支持对大型代码文件进行折叠显示,可以将代码块折叠起来,只显示摘要信息。
这样可以使得代码结构更加清晰,方便快速定位到目标位置。
6. 文件对比:UltraEdit的文件对比功能可以将两个文件进行比较,显示差异之处。
您可以将不同的部分高亮显示,并且可以方便地合并文件内容。
7. 列编辑模式:UltraEdit支持对文本进行列编辑,可以按列选择文本,然后进行操作。
这对于批量处理文本非常有用,比如对多个文件的相同位置添加或者删除一段文本。
8. 自定义主题:UltraEdit提供了多种预设的主题样式,您还可以根据自己的喜好进行定制。
您可以调整文本颜色、字体等,以及编辑器的背景色等,使得界面更加舒适和个性化。
以上是关于UltraEdit的一些常用使用技巧,希望对您有所帮助。
source insight 使用技巧(收藏)2009年09月18日星期五 12:541开胃菜-初级应用1.1选择美丽的界面享受工作虽然不能以貌取人,但似乎从来没有人责备以貌取软件的。
SI的华丽界面,绝对符合现代花花世界的人的审美趣味。
在SI中,我们可以轻松地把各种类型关键字、变量、标志符、函数、宏、注释等定义为不同的颜色和显示方式(正体或斜体、加粗或正常、加下划线、放大显示等),总有一种方式能让我们一眼就能分辨出这个标识是什么。
1.1.1字体选择在SI中样式是可以被继承,如果要从根本上改变字体,最简单的方式就是直接修改根样式中的字体,因为其它样式都会由此继承而来。
选择Options/Document Options页面内的Font Options中的Screen Fonts字体,即可改变根样式中的字体。
SI中的默认配臵为Verdana字体,是一种非等宽字体,为了使编写的代码在各种编辑器中看起来都有良好的对齐效果,这里强烈建议使用等宽字体,Courier、New Courier和宋体等都是较好的选择。
1.1.2颜色定义毕竟这是见仁见智的东西,所以从来没有统一的标准。
很多人并不喜欢SI 提供的默认配臵,那么我们就改吧。
选择Options/Style Properties页面,就可以在其中修改所有样式了。
选择等号(=)表示继承Parent Style,也可以选择Pick(或者ON/OFF等)去配臵一个新值。
这完全视乎个人喜好。
1.1.3标识符样式选择在与颜色定义一节同样的界面内即可完成此项配臵。
1.1.4背景色选择在希望要改变背景色的窗口点击鼠标右键(假定使用的是右手鼠标),选择上下文菜单的 xxx Window Properties项,然后点击弹出窗口的Back Color按钮,即可修改该窗口背景色。
对于SI的源码主窗口,只需选择上下文菜单的Special Window Color项即可完成背景色修改。
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)图2如果工程已经建立好了,想要打开、关闭、删除工程,直接点击Project菜单下相应的选项就可以了,这里就不多说了。
开胃菜-初级应用Source Insight常用的快捷键:Ctrl+= :Jump to definitionAlt+/ :Look up referenceF3 : search backwardF4 : search forwardF5: go to LineF7 :Look up symbolsF8 :Look up local symbolsF9 :Ident leftF10 :Ident rightAlt+, :Jump backwordAlt+. : Jump forwardShift+F3 : search the word under cusor backwardShift+F4 : search the word under cusor forwardF12 : incremental searchShift+Ctrl+f: search in projectshift+F8 : hilight word选择美丽的界面享受工作字体选择在SI中样式是可以被继承,如果要从根本上改变字体,最简单的方式就是直接修改根样式中的字体,因为其它样式都会由此继承而来。
选择Options/Document Options页面内的Font Options中的Screen Fonts字体,即可改变根样式中的字体。
SI中的默认配置为Verdana字体,是一种非等宽字体,为了使编写的代码在各种编辑器中看起来都有良好的对齐效果,这里强烈建议使用等宽字体,Courier、New Courier、宋体等都是较好的选择。
颜色定义选择Options/Style Properties页面,就可以在其中修改所有样式了。
选择等号(=)表示继承Parent Style,也可以选择Pick(或者ON/OFF等)去配置一个新值。
标识符样式选择在与颜色定义一节同样的界面内即可完成此项配置。
背景色选择在希望要改变背景色的窗口点击鼠标右键(假定使用的是右手鼠标 ),选择上下文菜单的xxx Window Properties 项,然后点击弹出窗口的Back Color按钮,即可修改该窗口背景色。
在Source Insight中添加自定义功能的步骤如下:1.Source Insight中,Options->Custom Commands...->Add...,New Command name 随便写,我的是"Edit with Vim"2.Run中写入: "C:\Program Files\Vim\vim63\gvim.exe" --rem ote-silent +%l %f意思是在当前已经打开的gvim窗口里面打开当前的文件,并且跳转到指定行%l为当前的行号,%f为文件名使用--rem ote-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/notem pfile /closeonenddiff"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:diff /path:%f/notem pfile /closeonend取得锁定(check out)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:lock /path:%f/notem pfile /closeonend提交(check in)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:%f /notem pfile /closeonend更新(update)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:%f /notem pfile /closeonend更新整个目录(update all)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:*.* /notem pfile /closeonend取消锁定(undo check out)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:revert /path:%f /notem pfile /closeonend在ultriEdit中编辑"C:\Program Files\UltraEdit-32/uedit32" %f在vim中编辑并定位到当前行"C:\Program Files\Vim\vim63\gvim.exe" --rem ote-silent +%l %f汇总其他小技巧:让{ 和} 不缩进:Options->Docum ent Options->Auto Indent->Indent Open Brace/Indent Close Bracehao space: SourceInsight 小技巧1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。
sourceinsight使用技巧source insight 使用技巧1 sourceinsight screen font的默认字体是Verdana的,它是一直变宽字体。
在Document style中可以将字体改为定宽的Courier2 document options->auto indent 去掉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à Editin g Options框中,勾选Expand tabs(这样,按tab键、等价于输入2个空格)(3)Options菜单àDocument Optionsà选择合适的文件类型à点击右边中间的Auto Indent钮à在弹出的框中,左边一定要点Smart,右边有两个复选框Indent Open Brace和Indent Close Brace,具体效果可以看SIS的HELP。
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里面所有汇编文件都包含进来
只加了.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里面。
6、添加文件类型
用户可以定义自己的类型,Options->Document Options->add type,定义文件类型名以及文件名后缀。
勾选include when adding to projects在添加目录下文件到工程是该类文件就会添加进SI的工程。
如果需要将所有文件添加进SI的工程,可以定义一种文件类型*.*。
7、恢复ctrl+a的全选功能
通过关键词save 找到save all,更改为ctrl+shift+a,通过关键词select找到select all,更改为ctrl +a
Source Insight常用的快捷键:
Ctrl+= :Jump to definition
Alt+/ :Look up reference
F3 : search backward
F4 : search forward
F5: go to Line
F7 :Look up symbols
F8 :Look up local symbols
F9 :Ident left
F10 :Ident right
Alt+, :Jump backword
Alt+. : Jump forward
Shift+F3 : search the word under cusor backward
Shift+F4 : search the word under cusor forward
F12 : incremental search
Shift+Ctrl+f: search in project
shift+F8 : hilight word
Source Insight的窗口操作:
project window Ctrl+O打开
symbol window Alt+F8打开和关闭
Contex Window 自定义键打开和关闭
Relation Window 自定义键打开先锁定再刷新联系
UltraEdit 使用技巧
Tip 1: 如何去掉所编辑文本中包含特定字符串的行?
这则技巧是在UltraEdit的帮助文件里提到.CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式";然后用查找%*你的字符串*^p 替换成空内容即可.如,我当前有个文本文件,需要去掉所有包含/ 这个字符串的行,查找%*/*^p替换成空即可.注意,^p 是DOS 文件类型的换行符.如果是Unix 类型文件,则用^n.
Tip 2: 如何在行末添加特定字符,比如逗号?
有了上面的经验(其实我第一次是从同事那里学到的),CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式".然后可以查找^p(或者^n,如果是Unix 文件),用,^p(或者,^n)进行"全部替换"即可.补充一点,如果是MAC(Apple) 类型文件,则换行符号为^r .
Tip 3: 如何删除空行?
参考上面两个例子,查找^p$ 然后替换为空即可.
看来,正则表达式需要学习一下喽.
Tip 4: 编辑文件如何加入时间戳?
F7快捷键即可.你试试看?
Tip 5: 为何拷贝(Copy)/粘贴(Paste)功能不能用了?
不怕大家笑话,我有几次使用UltraEdit 的过程中发现拷贝与粘贴的内容是不匹配的.不知所以然,干脆重新启动了笔记本.今天翻看手册才恍然大悟:UltraEdit有10个剪切板(clipboard),分别用Ctrl+0 - Ctrl+9切换.Ctrl+0 是Windows 的,其他则为用户自定义的.我在使用的过程中错调用了CTRL+n, 结果内容就有问题了.你遇到过没?
一些UE的热键,非常实用
1:ctrl+b
写代码的时候,括号一般要一一对应的,但是如果嵌套太多,看花眼了,怎么办?你把光标放在括号开始的地方,按ctrl+b,UE 会帮你找到相对应的括号结尾的地方。
你还可以试试连着多按几次ctrl+b。
的却很有用
2:如何去掉所编辑文本中包含特定字符串的行?
这则技巧是在UltraEdit的帮助文件里提到.CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式";然后用查找%*你的字符串*^p 替换成空内容即可.
如,我当前有个文本文件,需要去掉所有包含DBA Blog 这个字符串的行,查找%*DBA Blog*^p替换成空即可.注意,^p 是DOS 文件类型的换行符.如果是Unix 类型文件,则用^n.
3: ctrl+ F3 ;F3
默认情况下,当你按F3的时候UltraEdit可以查找现在选中的内容,F3是下一个符合的内容,ctrl+f3是上一个符合的内容.
4:如何在行末添加特定字符,比如逗号?
CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式".然后可以查找^p(或者^n,如果是Unix 文件),用,^p(或者,^n)进行"全部替换".
5:删除空行?
查找^p$ 然后替换为空即可
6:ctrl+f2
代码会有很多行你当然可以记得你要到的行数,然后用ctrl+g,然后输入行号,到所在的行。
但是用ctrl+f2我觉得更方便。
比如说你要频繁在多个function 中切换。
可以在function开始的地方,按一下ctrl+f2,给这一行加一个书签。
然后再另外的function开始的地方,也来一下ctrl+f2,有书签的地方,字的背景色会不同。
当你想换到下一个书签的时候,就按f2,但是想到上一个标签怎么办?ctrl+f2?不对,再按就是加书签或者取消当前行的书签了。
应该是alt +f2.
7:ctrl+tab
多个文件中切换,用鼠标点,麻烦.
8:删除整行
定位光标要删除的行,然后用ctrl+e即可.
9:列编辑
Alt+c
10:插入系统时间
按F7,就看看效果怎么样.
11:拷贝(Copy)和粘贴(Paste)的内容不匹配
UltraEdit有10个剪切板(clipboard),分别用Ctrl+0 - Ctrl+9切换.Ctrl+0 是Windows 的,其他则为用户自定义的.如果在使用的过程中错调用了CTRL+n, 这就会使拷贝(Copy)和粘贴(Paste)的内容不匹配.。