日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Source Insight使用技巧

發布時間:2023/11/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Source Insight使用技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Source Insight實用技巧:
Source Insight(下文的SI指的也是它)就是這樣的一個東西:
  Windows下開發人員的至愛,功能強大,界面友好。支持語法高亮、符號跳轉,還支持函數調用關系圖顯示。這是一個專業的編程環境,很多大公司都是使用它的。這個編輯器除支持完善的自定義功能外,幾乎所有配置都能作個性化配置。除此之外,它本身帶有一套功能強大的宏語言(Macro Language),借助這種語言可以很方便的編程實現各種特殊功能,非一般編輯器所能比擬。查找功能支持得也很不錯。雖然在工程較大時,查找起來有點慢。但是它除了一般編輯器所支持的普通字符串查找、正則表達式查找外,還能支持關鍵字查找-這種方式比前兩者快得多,也算是一個彌補。不足之處是列模式較弱,對中文支持有缺陷。

顯然,它也像其它任何東西一樣的,同時具有優點和缺點的本性的,究竟如何,且聽我一一道來。

官網下載:http://www.sourceinsight.com/down35.html

序列號(Serial):(任選其一)
SI3US-279028-11281
SI3US-772862-51931
SI3US-465643-84290
SI3US-176526-66007
SI3US-060062-28251

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??查找

  • 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預先建立的數據庫,查找起來速度相當快。但通常這種速度只對在查找標識符時有明顯效果。對于像函數名,變量名等的查找,強烈建議使用這兩種方式進行查找。

  • Search Files
    選擇Search/Search Files或按Ctrl+Shift+F組合鍵,在彈出的Search Files窗口進行查找操作。 在File Name框中可以填入文件名或文件夾。注意當要查詢的文件夾雙包含子文件夾時,可以勾選Options中的Include Subdirectiories,實現對各層文件的遞歸搜索。
  • Search Project
    選擇Search/Search Project,在彈出的Search Project窗口進行查找操作。操作與Loopup References幾乎完全一致,它們各自保存上次搜索的配置。
  • 2.1.2??替換

  • 單文件替換
    選擇Search/Replace或按Ctrl+H組合鍵,在彈出的Replace窗口進行查找操作。在Search項目里勾選Selection則僅對當前選中的文檔部分進行替換。另外如果勾選了Confirm Replacements則是逐個確認替換,否則會同時替換所有符合替換條件內容。
  • 多文件替換
    選擇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窗口,這個用于處理數字順序排列的情況相當有效,比如數組下標。例如現有代碼 ????array[0]?=?1;array[1]?=?2;array[2]?=?3; 現在要改為 ????array[0]?=?0;array[1]?=?1;array[2]?=?2;array[3]?=?3; 當然可以一個個修改,但最快的方式是在array[0]?=?1;之前添加array[0]?=?0;,然后列選數組下標,使用Renumber功能以 0為起始值重填數值。
    • Edit Condition
      很多代碼尤其是驅動代碼,當中有大量的預編譯定義,以實現對不同硬件配置的支持。在閱讀這樣的代碼時最痛苦的是不能簡單判斷程序實際執行的代碼分枝。大量分枝同時存在,常常會混淆我們的視聽。比如對于下面的代碼: ????#ifdef DEV1/* 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??通配符

    正則表達式通配符總表:
    Character Matches
    ^?(在表達式開始處) 行的開始部分
    . 任意單個字符
    [abc] 任意屬于集合?abc?的單個字符
    [^abc] 任意不屬于集合?abc?的單個字符
    * 前面字符的0個或多個重復
    + 前面字符的1個或多個重復
    \t 一個?tab?字符
    \s 一個空格符
    \w 一個空白符(包括?tab?符和空格符)
    $ 行的結束部分

    4.2??表達式中的組

    在執行替換操作時,組將大有用武之地。正則表達式的各個部分可以用\(和\)進行分隔,分隔得到的每一項就是一個組。在進行替換時可通過組從匹配內容中抽取出特定串。在正則表達式中每個組都有一個編號,自左至右編號從1開始。

    例如:abc\(xyx\)將能匹配?abcxyz?,此時組1就包含了?xyz?串。在進行替換操作時,就可以通過在替換后內容框中填入\1來取出這個字符串。推而廣之,可以使用\<number>來取得組<number>所包含的串。

    例如:當設定把\(abc\)\(xyz\)替換為\2\1的替換規則時,對于?abcxyz?被替換串,則組1包含?abc,組2包含?xyz,而替換后的內容定義為組2內容后跟組1內容(\2\1),因此將得到?xyzabc。

    ??? 舉個真實的使用例子,相信會增加大家的興趣。有時為方便調試,代碼中到處流浪著各種形式的mytrace調用

    ??? mytrace("Create?parameter?list...?");

    ?有時希望把它們全部注釋掉,而有些時候又希望把它們全部恢復回來。這是個簡單的例子,可以使用

    ????^\(.*\)\(/\*\)\(.*mytrace.*\)\(\*/\)___FCKpd___6nbsp;==>?\1\3

    把它們恢復回來,而使用

    ????^\(.*\)\(mytrace\)\(.*\)___FCKpd___7nbsp;==>?\1/*\2\3*/

    則完成把它們全部注釋掉。

    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?(###){casebreak;default:}

    對于InsFunHeader宏,如果有如下函數體

    ????int?nOpenConfigFile(char?*pchMemConfig,?char?*pchFlashConfig,
    ????????int?nSize,?int?nMode)
    ????{
    ????????I
    ????}

    光標在函數體內時運行該宏,那么將會在函數體上方得到

    /******************************************************************************
    ?*?nOpenConfigFile?-
    ?*?DESCRIPTION:-
    ?*
    ?*?Input:???N/A
    ?*?Output:??N/A
    ?*?Returns:?N/A
    ?*
    ?*?modification?history
    ?*?--------------------
    ?*?1.00,?Apr?19,?2007, T357 written.
    ?*?--------------------
    ?******************************************************************************/

    其中的函數名及編寫日期自動按實際情況填充,T357串可通過修改utils.em文件,改成你需要的名字。

    6??附錄3-推薦格式

    所謂人各有志,這里就不說啦。

    7??結束

    至此,已將我所知的所有關于Source Insight(未包括其附帶的Macro語言)知識在此文檔中描述出來。

    如有錯漏,請指正。

    轉載:http://fky168.blog.163.com/blog/static/3786097200831033957620/

    轉載于:https://www.cnblogs.com/Harry-Lord/archive/2012/08/27/4002887.html

    總結

    以上是生活随笔為你收集整理的Source Insight使用技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美日韩一区二区区别是什么 | 在线观看日本中文字幕 | 裸体喂奶一级裸片 | 久久中文字幕在线观看 | 欧美888 | 91久久久久久久久 | 国产区91| 青青在线视频观看 | 亚洲国产专区 | 大香伊人久久 | 欧美六区 | 亚洲精品在线播放视频 | 日韩欧美中出 | 免费看污片网站 | 欧美性俱乐部 | 色婷婷一区二区 | 1区2区3区在线观看 久久久久久久久久久影院 成人网址在线观看 | 91香蕉在线看 | 精品国产乱码久久久久久浪潮 | 亚欧洲精品视频在线观看 | 亚洲精品在线视频免费观看 | 欧美视频一 | 性色在线观看 | 全黄性高潮 | 一区二区三区精品免费视频 | 超碰人人艹 | 91网在线播放 | 欧美日韩一区二区在线视频 | 午夜视频国产 | 国产精品国产精品国产专区不片 | 一级爱爱免费视频 | 一级全黄裸体免费视频 | 精品国产乱码久久久久 | 男女激情在线观看 | 男人和女人日批视频 | 欧日韩一区二区三区 | 九九视频免费 | 五月婷婷在线播放 | 日本黄色大片免费看 | 红桃视频成人在线 | 91久久人澡人人添人人爽欧美 | 我要看免费的毛片 | 东京干手机福利视频 | 啪啪五月天 | 精品熟女一区二区 | av片子在线观看 | 国产精品视频免费在线观看 | 超碰人人爱人人 | 国产激情对白 | 亚洲天堂av中文字幕 | 久操社区| av大全免费观看 | 久久不雅视频 | 精品黄色在线观看 | 台湾一级视频 | 美女高潮在线 | 亚洲第一视频在线 | 手机福利在线 | 97在线影院 | aaaaaaa毛片| 黄色小网站在线观看 | 国产成人午夜视频 | 天天看夜夜 | 欧美www在线观看 | 青青草视频免费观看 | 人人草网| 国产精品成人无码免费 | 久久夜精 | 中文字幕在线看人 | 秋霞二区 | 中文字幕成人av | 美国av一区二区 | 女同av在线播放 | 很嫩很紧直喷白浆h | 午夜刺激视频 | 国产又粗又硬又长又爽的演员 | aaa一区二区三区 | 三级视频黄色 | 一级草逼片| 国产正在播放 | 自偷自拍亚洲 | 日本黄色录相 | 国产成人在线免费观看 | 日韩视频免费观看 | 国产精品一区二区三区高潮 | 免费看60分钟黄视频 | 亚洲乱码国产乱码精品精大量 | 极品一区 | 一呦二呦三呦精品网站 | 久久亚洲综合色 | 国产精品九九九九 | 国产欧美第一页 | 国产精品一二三区视频 | 玖玖视频在线 | 色午夜av | 久久久丁香 | 成 人片 黄 色 大 片 | 日韩私人影院 | 女人毛片视频 |