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
--------------------------------
安裝方法:
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/
