Sublime Text + CTags + Cscope (部分替代Source Insight)


CTags & cscope 下載:

CTags+Cscope --- 我的百度雲盤下載
http://pan.baidu.com/s/1gfyPnuN


ctags58.zip --- src
http://jaist.dl.sourceforge.net/project/ctags/ctags/5.8/ctags58.zip

cscope-win32/downloads -- Google Code
https://code.google.com/archive/p/cscope-win32/downloads

cscope-15.8b.tar.gz --src
http://pilotfiber.dl.sourceforge.net/project/cscope/cscope/15.8b/cscope-15.8b.tar.gz

 --------------------------------

安裝方法:

1. 安裝Package Control for ST3 

2. 安裝Ctags插件

(1) 通過 Preference -> Package Control -> Install Package安裝Ctags插件 
(2) 下載 Ctags.exe, 通過 Preference -> Package Settings -> Ctags -> Settings Default 中的內容拷貝到 Setting User中,將 command": "" 中的 "" 填入Ctags.exe的路徑位置 
(3) 在工程根目錄上點擊右鍵,選擇Ctags:Rebuild tags

說明:

CTags設置:

 user settings中的設置:

"file_exclude_patterns":[".tags", ".tags_sorted_by_file", ".gemtags"],
"command" : "D:\\Program Files\\Sublime Text 3\\ctags.exe",      ----說明:這里win下的路徑要加 \ 轉義字符,linux下用 /

 

3. 安裝Cscope插件

(1) 通過 Preference -> Package Control -> Install Package安裝Cscope插件 
(2) 下載 Cscope.exe, 並在工程根目錄下生成cscope.out文件 
(3) 打開CscopeSublime.sublime-settings文件(可能需要添加到 Package -> User 目錄下),將 "executable": "" 中的"" 填入Cscope.exe的路徑位置,將 "database_location": "" 中的 ""填入cscope.out的路徑位置

 說明:

首先在目錄下使用“cscope -Rkqb”生成cscope.out文件;   ----在代碼瀏覽的工程目錄下執行該命令生成cscope.out索引文件
用下面的命令生成代碼的符號索引文件:

cscope -Rbkq

這個命令會生成三個文件:cscope.out, cscope.in.out, cscope.po.out。
其中cscope.out是基本的符號索引,后兩個文件是使用”-q”選項生成的,可以加快cscope的索引速度。
上面所用到的命令參數,含義如下:

-R: 在生成索引文件時,搜索子目錄樹中的代碼
-b: 只生成索引文件,不進入cscope的界面
-k: 在生成索引文件時,不搜索/usr/include目錄
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

 

功能實現:

(1) 對於symbol函數的定義查詢,ST3自帶此功能Go to Definition,且搜索結果有多個時可以預覽,不用跳轉到另一個文件。Ctags也有此功能navigate_to_definition,搜索結果比ST3要准確一些,但多結果時不支持預覽。Csope也有此功能 Cscope: look up function defintion,但搜索結果不支持雙擊點開。因此實際中多用ST3和Ctags來實現此功能 
(2) 對於symbol變量的定義查詢,ST3不支持,Ctags有此功能,方法同其查詢symbol函數的定義一致。Cscope也可以用查詢symbol函數定義的方法實現此功能,搜索結果不支持雙擊點開。因此實際中多用Ctags來實現此功能 
(3) 對於函數caller的查詢,只有Cscope有此功能Cscope: look up function calling this function 
(4) 全局搜索, ST3可通過Ctrl+Shift+F實現,但搜索耗時較長。Cscope可通過Cscope: look up symbol實現,因為已經通過cscope.out建立了索引,所以結果很快,但結果不一定全面

注:使用Cscope的功能時,需按enter鍵確定才會執行

比較:ST3 + Ctags + Cscope的方案基本可以實現Source Insight的常用有效功能(除了查看類繼承關系的Relation Windows),且其速度更快,界面也更為清爽。ST3相比於SI的其他優點還包括: 
(1)ST3使用Ctrl+P搜索文件時,使用的是模糊匹配,不像SI必須順次拼寫正確才行 
(2)ST3支持tab模式,可方便的在多個文件間切換 

 

ST3實用技巧:

(1) Alt+O可以實現頭文件和源文件之間的快速切換 
(2) 通過 View -> Side bar 可在左側顯示當前打開的文件列表 
(3) ST3雖然不像notepad++可以在sidebar上顯示函數列表,但是可通過Ctrl+R查看 
(3) 通過 Preference -> Key binding user 可根據個人操作習慣自定義快捷鍵(包括ST3自帶的和插件的) 
(4) 雙擊可選中光標所在單詞,三擊可選中光標所在行 
(5) Ctrl+Shift+T可以打開之前關閉的tab頁,這點同chrome是一樣的

 

--------------------------------
補充說明:

目前跳轉至caller的插件個人還是依靠cscope,
而symbol view的功能可以用ctrl+r實現

在sublime請使用command + p(windows 下 Ctrl+p)呼叫出goto anything的窗口,然后輸入你想查看的文件名,如果你還想快速定位,可以加@

在sublime,只要記住模糊匹配這四個字就很OK

ctrl+p:如果是js文件輸入@,可以快速定位到function;如果是css文件輸入@,可以快速定位到選擇器;如果是html文件輸入#,可以快速定位到標簽

--------------------------------

參考:

使用Sublime Text3+Ctags+Cscope替代Source Insight - 作業部落 Cmd Markdown 編輯閱讀器
https://www.zybuluo.com/lanxinyuchs/note/33551

 

CTags - Packages - Package Control
https://packagecontrol.io/packages/CTags

 

[圖文詳解] Sublime Text在Windows/Ubuntu/Mac OSX中配置使用CTags - petercao - 博客園
http://www.cnblogs.com/bluestorm/p/4768395.html

 

配置cscope && ctags - Dream的日志 - 網易博客
http://genime.blog.163.com/blog/static/167157753201313115255964/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM