青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

笑看風云淡

寵辱不驚,看庭前花開花落;去留無意,望天空云卷云舒
posts - 96, comments - 48, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

配置SourceInsight

Posted on 2008-03-24 17:17 天之驕子 閱讀(21994) 評論(0)  編輯 收藏 引用

Source Insight實質上是一個支持多種開發語言(java,c ,c++等等)的編輯器,只不過由于其查找、定位、彩色顯示等功能的強大,常被我們當成源代碼閱讀工具使用。

所以,為了有效的閱讀源程序,首先必須選擇功能菜單上的 Project”選項的子菜單“New Project”新建一個項目,項目名稱可以自由選定,當然也可以選擇刪除(Remove)一個項目。當刪除一個項目的時候,并不刪除原有的源代碼文件,只是將該軟件生成的那些工程輔助文件刪除。設定之后,將會彈出一個對話框如圖1,接受默認選擇,如果,硬盤空間足夠,可以將第一個復選框選上,該選項將會需要與源代碼大致同等的空間來建立一個本地數據庫以加快查找的速度。

images for article about Source Insight on 2006-2-26

 

1 工程設置

點擊“OK”按鈕,接受選擇后,將會有一個新的對話框彈出,在這個對話框里,可以選擇將要閱讀的文件加入工程,通過直接在頂部文本框輸入盤符、回車、來切換各個盤。一種文件加入工程的方式是通過在File Name中輸入要閱讀源代碼文件的名稱,點擊“Add”按鈕將其加入;另一種方式是鼠標點選。可通過其中“Add All”和“Add Tree”兩個按鈕可以將選中目錄的所有文件加入到工程中,其中“Add All”選項會提示只加入目錄下本層文件和遞歸加入所有子目錄文件兩種方式,而“Add Tree”相當于“Add All”選項的遞歸加入所有文件,可以根據需要使用。由于該程序采用了部分打開文件的方式,沒有用到的文件不會打開,所以,加入數千個文件也不用擔心加入的文件超出程序的所能容忍的最大值。

建立項目后,可以在右邊項目窗口中、右鍵選擇New Files新建文件(文件名會全部轉為小寫)、Add and Remove Files添加項目文件、Synchronize Files同步文件(即相當于增強版的刷新/refresh)。

images for article about Source Insight on 2006-2-26

 

2 添加文件

加入文件后,點擊Close,可以出現使用界面,如圖3所示,其中,右邊的那個窗口(Linux Project,即工程窗口)缺省按照字母順序列出當前工程中所有的文件。

 

images for article about Source Insight on 2006-2-26

3 工作窗口

右邊的窗口(Linux Project)下邊有一排按鈕、從左至右分別為:按字母順序文件列表、顯示文件夾、按照文件類型歸類文件、全部文件的所有標記列表、按照標記類型歸類標記、跳轉到定義處、顯示標記信息、瀏覽工程標記、查找函數調用、工程屬性,其中全部文件的所有標記列表選項可能要一段時間抽取標記,同步到數據庫去,如果開始選擇了建立標記數據庫,將會在今后節省同步時間,最有用的莫過于瀏覽標記信息和查找函數調用,前者可以通過“Jump”按鈕在不同的地方查找同樣的標志,還可以通過“Reference”按鈕結合后者進行全局的標記查找。下面我們打開一個文件,簡單介紹一下Reference功能。

雙擊一個文件就可以打開該文件,顯示如圖4所示

 

images for article about Source Insight on 2006-2-26

4

 

左邊的窗口(21142.c)下面也有一排按鈕、從左至右分別為:按字母順序排列所有標記、按照文件中行數順序排列標記、按照類型排列標記、瀏覽本地文件標記、標記窗口屬性。

Reference功能是Source Insight的特色之一,它可以在速度極快的在整個工程中找到所有的標記,并且在該行程序的前邊加上紅色箭頭的小按鈕鏈接上。圖5是一個Reference搜索后的結果,它可以有兩種模式,一種集中顯示結果,圖5顯示的就是這種模式,在這種模式下,可以通過前邊的紅色箭頭小按鈕進入另外一種模式,該標記的具體的所在處,也可以通過標記的具體所在處點擊紅色箭頭小按鈕進入警種模式,還可以通過工具條上的兩個紅色小箭頭直接在第二種模式下前后移動,察看相應信息。它的這個強大的功能使得閱讀Linux源程序有如神助。但是要注意的是,當進行了第二次“Reference”時,它會提示你將結果集附加在第一個結果集的后邊還是取代第一個結果集。如果選擇前者,不能對結果集根據前后兩次搜索結果進行分類,然后在其子類里進行移動,只能在整個結果集里移動;如果,選擇后者,結果集將會被替換為第二次搜索的結果,略微有些不方便。

 

images for article about Source Insight on 2006-2-26

圖5 Reference的搜索結果

當然,Source Insight 還提供了一些其他常見的便利。比如:右鍵菜單幾乎包含了程序的所有功能,可以在編輯窗口為程序加上行號,還可以統計整個工程的程序行數,當然還有功能強大卻用不上的自動完成功能。

配置成簡單好用的c/java代碼編輯器

1、縮進與tab

1Options菜單àPreferencesàTyping卡,勾掉下面兩項∶

Typing tab indents lineregardless of selection,空行按tab無法前進

Typing tab replaces current selection,選定部分內容、再按tab時會清除所選

2Options菜單àDocument Options(針對不同文件類型,分別進行設置)à下拉左上文件類型框、選擇合適類型(c源文件)àEditing Options框中,tab width=2à Editing Options框中,勾選Expand tabs(這樣,按tab鍵、等價于輸入2個空格)

3Options菜單àDocument Optionsà選擇合適的文件類型à點擊右邊中間的Auto Indentà在彈出的框中,左邊一定要點Smart,右邊有兩個復選框Indent Open BraceIndent Close Brace,具體效果可以看SISHELP。按照部門里的編程風格要求,最方便的就是把兩個復選框都取消掉,然后點OK

勾選Auto IndentSMART的效果∶在C程序里, 如果遇到行末沒有分號的語句,IF, WHILE, SWITCH, 寫到該行末按回車,則新行自動相對上一行縮進兩列。

勾掉Indent Open BraceIndent Close Brace的效果∶繼上一段,在相對縮進行里, 如果輸入"}", 則自動和上一行列對齊(好像勾不勾都會有這個功能);而輸入"{"時,不會與下面的行對齊(這是勾上Indent Open Brace時的效果)。

2、向項目中添加文件時,只添加特定類型的文件(文件類型過濾器)

有個同事比較生猛,得整匯編代碼,但在SIS里建立PROJECTADD TREE的時候,根據默認設置并不會把該TREE里面所有匯編文件都包含進來,只加了.inc.asm后綴的,.s后綴的沒有。而且用SIS打開.s的文件,一片黑白沒有色彩,感覺回到DOSEDIT時代了…… 解決方法是在Options->Document Options里面,點左上的Document Type下拉菜單,選擇x86 Asm Source File,然后在右邊的File filter*.asm*.inc的后面加上*.s;接著CLOSE就可以了。上面兩個問題解決了,但注意加入*.s后還需要重新ADD TREE一遍才能把這些匯編加到PROJECT里面。

3、去掉功能強大但是無用的自動完成功能

Options菜單àPreferences àTypingàAuto Completion框,勾掉Use automatic symbol completion window(這里是SIS的全局設置)

Options菜單àDocument OptionsàEditing Options框中,勾掉Allow auto-complete(局部設置)

上面兩項必須全部勾選,才能啟用Auto Completion功能

4、恢復小鍵盤的“+-*/”功能

Options菜單àKey assignments,通過關鍵詞Scroll 找到Scroll Half Page Up,取消小鍵盤/;通過關鍵詞Scroll 找到Scroll Half Page Down取消小鍵盤*;通過關鍵詞Function找到Function Up,取消小鍵盤-,通過關鍵詞Function找到Function down,取消小鍵盤+

5、恢復ctrl+a的全選功能

通過關鍵詞save 找到save all,更改為ctrl+shift+a,通過關鍵詞select找到select all 更改為ctrl +a

6、解決字符等寬對齊問題。

SIS默認字體是VERDANA,很漂亮。這網頁上應該也是用的VERDANA字體。但由于美觀的緣故,VERDANA字體是不等寬的。比如下面兩行

llllllllll

MMMMMMMMMM

同樣10個字符,長度差多了.VERDANA來看程序,有些本應該對齊的就歪了。解放方法是使用等寬的字體,但肯定比較丑。可以用DOS字體,也就是記事本里的默認字體sysfixed 很丑,要有心理準備。比較推薦的是用Courier New

SourceInsight提供的功能

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

總地說來,SourceLink根據特定的搜索模式,把當前文件中滿足模式的行、鏈接到由該行指定的其他源文件中。

所謂特定的搜索模式,共有兩種“File, then line”和“Line, then file”,其中前后兩部分依靠正則表達式的組的概念來予以分割。如果當前文件具有匹配行,比如“Error d:tcsrcq5.c 18: Lvalue required in function jsSort”,那么SourceInsight在該行創建SourceLink、把該行鏈接到由該行指定的文件中(即d:tcsrcq5.c,第18行)。

1.1 創建SourceLink

運行Search菜單的Parse Source Links…命令,在彈出的框中、選擇搜索模式、并填入相應的正則表達式串,點OKSIS就會解析當前文件,如果有匹配,就創建SourceLink

1.2 在解析日志信息時,使用SourceLink

可以打開日志信息,運行Parse Source Links命令,日志中能夠匹配模式的每一行(通常是含有錯誤信息的行)、就會被設置上一個SourceLink

1.3在解析自定義命令輸出時,使用SourceLink

首先勾選Custom Command 中的“Parse Links in Output”,然后選擇特定的搜索模式,最后填入合適的正則表達式。這樣,Source Insight把輸出信息作為當前搜索用文件;并且,如果有匹配行(通常即編譯錯誤信息行),SIS 該行創建SourceLink、并把每一個錯誤信息中給定的文件(和行號)作為link目的地,這對于我們修改源代碼錯誤非常有幫助。

2、替換(Replace VS 上下文敏感的智能重命名(Context-Sensitive Smart Rename

2.1 替換(Replace

目前來說,普通的替換命令、快捷鍵為ctrl+H,足以已滿足工作要求。

在彈出的替換窗口中,在Search框中勾選Selection來只在所選文本區域中替換(當然這時你要先選定區域然后再按ctrl+H)、勾選WholeFile來在整個當前文件內替換、兩者都不勾選來從當前光標處替換至文件末尾;點右邊的Files…按鈕,可選擇替換多個文件的內容。

2.2上下文敏感的智能重命名(Context-Sensitive Smart Rename

Smart Rename命令、快捷鍵是Ctrl+’,是上下文敏感的全局搜索替換。它可以智能地重命名全部項目文件中的一個標示符。SourceInsight的搜索索引(search index)使得搜索過程進行地非常快。而且,使用Smart Rename所做的替換會被記錄在Search Results窗口中,每一條替換記錄旁有一個SourceLink鏈接到替換發生地文件。

Smart Rename可以用來重命名標記(symbol)。如果勾選了Smart Reference Matching選項,Smart Rename就只在正確的上下文范圍內進行重命名。它可以智能地重命名全部項目文件中的一個標示符;它可以重命名函數本地變量,類或結構體成員、函數。

在彈出的Smart Rename窗口中有下面幾項∶

Old Name 填舊名稱。光標下的詞會被自動加載;光標的位置非常重要,這是因為Source Insight會根據本地上下文背景、準確地確定你想要重命名哪一個標記。

推薦只填單個詞、而不是字符串。

如果你在命名成員變量、或本地變量(),Old Name框中會顯示完全標記名、即上層容器名+標記名。例如,框中的“DocDraw.paintStruc”代表DocDraw是函數名,paintStruc是函數的本地成員變量。

New Name 填新名稱。只填標記名,不填上層容器名。

Output Search Results 如果勾選,搜索替換結果日志會被輸出到Search Results窗口中。可以通過Windows菜單來切換,或ctrl+tab切換察看。并且每一條記錄旁會有SourceLink鏈接到替換發生地文件。

Confirm Each Replacement 每次替換詢問。

Skip Comments 不重名注釋部分。

 

【使用心得列表】

(1)如何用Smart Rename重命名數組的數組名?如果只選取數組名,會報錯!

(2)如果勾掉Smart Reference Matching,會搜索全部項目文件,并且Old Name框中不顯示完全限定名;如果勾選Smart Reference Matching,無法重命名數組名,而且鼠標位置不正確時會報錯。應該如何應對?

3、在SourceInsight中提供的正則表達式

3.1SourceInsight中提供的正則表達式

正則表達式,是用來匹配復雜模式的特殊搜索用字符串。正則表達式串中,許多字符具有特殊的含義。例如,有個特殊的字符代表 行首

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

Table 4.3: Regular Expression Characters

Character

Matches

^ (at the beginning only)

beginning of line。如^Hello,匹配Hello在句首。

.

any single character

[abc]

any single character that belongs to the set abc

[^abc]

any single character that does not belong to the set abc

*

zero or more occurrences of the preceding character

+

one or more occurrences of the preceding character

t

a tab character

s

a space character

w

white space (a tab or a space character)

$

the end of the line。如TRUE$,匹配TRUE在句尾。

轉義字符。如果在它后面有元字符,取消其特殊含義。

 

可利用 “(” “)”、把正則表達式分割成不同的;模式中的每個組自左向右指定為 Group #nn=1,2,…組的概念在替換時很有用。

例如∶

abc(xyz)可匹配abcxyz,其中xyz被認為是group#1

利用21來替換(abc)(xyz),替換結果為xyzabc

3.2 正則表達式在配置tc編譯器中的應用∶

正則表達式格式與源代碼文件路徑相對應,這里我的tc安裝目錄為d:tctc源文件放在d:tcsrc下,并命名為qn.cqtn.c(其中n=1,2,…)。

觀察Tc編譯器某一次輸出錯誤信息的格式∶

Error d:tcsrcq5.c 18: Lvalue required in function jsSort

則我們要匹配“d:tcsrcq5.c 18”部分,進一步地,按照SourceInsight捕捉輸出并加以解析時的要求,要以組的形式、分別匹配“d:tcsrcq5.c 18”中的文件部分和行號部分∶

行號([1-9][0-9]*)

空格行號s([1-9][0-9]*)

文件名(d:tcsrc[qQ][tT][1-9][0-9]*.[cC])

全部加起來為∶

(d:tcsrc[qQ][tT]*[1-9][0-9]*.[cC])s([1-9][0-9]*)

 

3.3 正則表達式在配置javac編譯器中的應用∶

我的JAVA_HOMEc:jdk,我的java源文件放于d:javasrc中,并命名為qn.javaqtn.java(其中n=1,2,…)。

觀察JDK編譯器某一次輸出錯誤信息的格式∶

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

正則表達式為∶

([dD]:javasrc[qQ][tT]*[1-9][0-9]*.java):([1-9][0-9]*)

 

4、自定義命令

自定義命令與項目相關,在一個項目中定義的所有自定義命令屬于該項目、只對該項目有效(包括快捷鍵等)。

自定義命令類似于命令行批處理文件。SIS允許自定義命令在后臺運行;并可以捕捉自定義命令的輸出、放置于文件中、或粘貼入當前光標插入點。

分別利用上面SIS對輸出信息的處理方式,自定義命令對集成編譯器相當有用,可以捕捉編譯器輸出并創建SourceLink尋錯;自定義命令對于文本過濾也相當有用,可選中待過濾區塊、運行Sort自定義命令、粘貼回選定區塊、即完成文本過濾。

請按下面步驟創建自定義命令∶

Options菜單àCustom Command

à點右邊Add鈕、填入新自定義命令名稱,或下拉左邊Commands、選擇命令進行修改

àRun框、填入待執行命令行,可含有特殊元字符,見后面的元字符表

àDir框、執行命令行時應處的目錄,如不填,以源代碼文件所在目錄為命令執行目錄

à勾選Output框的Capture Output、輸出被捕捉,如果勾選Paste Output,輸出被粘貼

à勾選Control Group框中的Save Files FirstSIS會在運行命令前先檢查文件是否保存

à勾選Control Group框中的Pause When DoneSIS會在命令結束后暫停、方便檢查

à勾選Source Links in Output框中的Parse Source Links,?/p>


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久字幕精品一区| 欧美日韩国产一区二区三区| 国产精品分类| 性亚洲最疯狂xxxx高清| 午夜欧美不卡精品aaaaa| 激情综合在线| 亚洲精品婷婷| 国产亚洲成精品久久| 亚洲成人资源| 欧美成人视屏| 久久福利毛片| 欧美精品亚洲一区二区在线播放| 欧美亚洲一区三区| 欧美大片一区二区| 欧美中文在线免费| 欧美日韩国产欧| 免费观看30秒视频久久| 国产精品久久久久久亚洲毛片| 麻豆精品视频在线| 国产精品sm| 亚洲国产精品第一区二区三区 | 亚洲黄色影片| 一本一本久久a久久精品牛牛影视| 亚洲午夜成aⅴ人片| 亚洲国产福利在线| 亚洲欧美视频一区二区三区| 亚洲美女精品久久| 久久精品91久久香蕉加勒比| 亚洲一区三区电影在线观看| 免费黄网站欧美| 欧美在线免费| 国产精品h在线观看| 老鸭窝亚洲一区二区三区| 国产精品扒开腿爽爽爽视频| 亚洲福利视频网| 一区视频在线看| 性高湖久久久久久久久| 亚洲欧美成人一区二区在线电影| 免费在线欧美视频| 美女久久一区| 国内精品免费在线观看| 欧美在线观看天堂一区二区三区| 一区二区三区视频在线| 农村妇女精品| 麻豆国产精品777777在线 | 久久久999精品视频| 欧美性猛交99久久久久99按摩| 亚洲国产成人午夜在线一区| 亚洲第一区中文99精品| 久久久久久日产精品| 久久麻豆一区二区| 国际精品欧美精品| 久久精品2019中文字幕| 久久成人免费视频| 国产日韩在线不卡| 欧美一区二区三区四区视频 | 欧美日韩精品不卡| 亚洲精品免费看| 一区二区三区成人精品| 欧美日韩成人在线播放| 亚洲欧洲日韩综合二区| 亚洲人精品午夜在线观看| 久久婷婷av| 黄色影院成人| 欧美99在线视频观看| 亚洲三级影院| 午夜国产精品影院在线观看| 国产精品区一区二区三| 亚洲欧美日韩中文播放| 久久精品视频免费| 亚洲国产91色在线| 欧美日韩高清在线一区| 亚洲一品av免费观看| 性欧美xxxx大乳国产app| 国产午夜精品视频| 久久亚洲免费| 日韩亚洲视频| 久久黄金**| 亚洲国产mv| 欧美午夜a级限制福利片| 午夜激情亚洲| 欧美成人午夜视频| 亚洲一级片在线看| 激情久久久久久久| 欧美精品一区二区三| 亚洲在线成人精品| 欧美多人爱爱视频网站| 中文av一区二区| 国产日韩一区二区三区在线| 欧美不卡在线视频| 亚洲伊人伊色伊影伊综合网| 蜜桃av综合| 亚洲图片在线观看| 韩国三级电影一区二区| 欧美日本国产在线| 欧美主播一区二区三区| 亚洲国产欧美日韩| 新狼窝色av性久久久久久| 亚洲国产欧美日韩| 欧美午夜一区二区福利视频| 久久久www成人免费无遮挡大片| 亚洲精品日韩欧美| 美女主播精品视频一二三四| 亚洲自拍偷拍网址| 亚洲激情av| 国产亚洲午夜| 欧美亚男人的天堂| 欧美成人在线网站| 久久久久久久高潮| 国产日韩欧美综合在线| 一区视频在线看| 欧美成年人网站| 欧美一区午夜精品| 99精品视频免费| 久久久久久电影| 亚洲一二三区在线观看| 日韩午夜三级在线| 美国成人毛片| 久久天堂av综合合色| 国产精品久久久久9999高清| 亚洲高清在线| 亚洲高清毛片| 久久久99国产精品免费| 亚洲欧美亚洲| 欧美日韩在线不卡一区| 亚洲第一页在线| 伊人狠狠色j香婷婷综合| 亚洲欧美日产图| 午夜精彩国产免费不卡不顿大片| 欧美黄色aaaa| 亚洲高清久久网| 亚洲国产天堂网精品网站| 欧美在线一二三区| 久久成人亚洲| 国产精品视频九色porn| 亚洲网站啪啪| 欧美一区二区三区成人| 国产精品久久久久久户外露出| 亚洲人成网站在线播| 91久久夜色精品国产网站| 久久婷婷久久一区二区三区| 久久亚洲视频| 亚洲电影下载| 欧美成年人网| 亚洲欧洲综合另类| 日韩午夜激情电影| 欧美日本一区二区三区| 亚洲美女在线看| 亚洲婷婷国产精品电影人久久| 欧美日韩三级视频| 亚洲午夜在线观看视频在线| 亚洲欧美日韩精品| 国产精品亚洲一区| 欧美亚洲一区二区在线观看| 久久全球大尺度高清视频| 一区精品在线播放| 欧美3dxxxxhd| 亚洲色诱最新| 久久精品一区二区三区四区| 好看不卡的中文字幕| 久久午夜影视| 一本不卡影院| 亚洲女爱视频在线| 国产亚洲福利社区一区| 久久亚洲私人国产精品va| 欧美韩日精品| 亚洲欧洲99久久| 精品69视频一区二区三区| 毛片精品免费在线观看| 一本色道88久久加勒比精品 | 欧美在线播放一区| 亚洲丰满在线| 欧美视频在线看| 欧美中文字幕久久| 亚洲三级影片| 久久夜色精品亚洲噜噜国产mv| 亚洲狼人综合| 国产日韩一区二区三区在线播放 | 美日韩精品免费| 亚洲一区二区三区精品动漫| 国产欧美日韩另类一区 | 欧美午夜久久久| 久久精品官网| 99re6这里只有精品| 久久都是精品| 亚洲网站视频福利| 亚洲经典三级| 国产一区二区丝袜高跟鞋图片 | 最新日韩中文字幕| 国产精品社区| 欧美片在线播放| 久久精品中文字幕一区| 一本色道久久88亚洲综合88| 久久综合精品国产一区二区三区| 亚洲一区bb| 9人人澡人人爽人人精品| 在线观看亚洲精品| 国产欧美日韩视频一区二区三区 | 噜噜噜躁狠狠躁狠狠精品视频| 亚洲欧美韩国|