sublime text3 中安裝ctags並進行配置
windows下 sublime text3 中安裝ctags並配置和使用
一:安裝步驟
安裝package control , 已安裝的請忽略。
通過 Package Control (開啟快捷鍵ctrl+shift+p 搜尋install package)中搜索ctags 安裝 ctags 外掛
下載 ctags58 http://prdownloads.sourceforge.net/ctags/ctags58.zip 並解壓。設定ctags.exe到系統環境路徑。
ex: 我本地的ctags58解壓路徑為 D:\command\ctags58
(設定完後,就可在全域性中使用 ctags命令。 切換到專案的根目錄下,執行 ctags -R -f .tags 命令後,就會在專案的根目錄下生成 .tags檔案。可設定 exclude選項不解析某些路徑(相對路徑) ctags -R -f .tags –exclude=path )
步驟三是在全域性下的配置, 但為了配合sublime的使用,在專案上右鍵選擇 “CTags: Rebulid Tags”直接生成 .tags檔案
(1). 將 sublime 中 Preference -> Package Settings -> cTags -> setting-Default 中的內容 拷貝到 setting-User中
(2).設定 setting-User 檔案中 “command” 屬性值為 ctags.exe的執行路徑 (ex:”D:\command\ctags58\ctags.exe )
(3). 也可設定 exclude選項,設定setting-User檔案中的 “opts”屬性值
ctags搜尋對 js 新標準支援不好,但是可以進行配置。
參考 http://www.codefornow.com/2013/04/13/javascript-source-code-indexing-with-sublime-text-editor-with-ctags/
(Exuberant Ctag’s support for modern JavaScript is not great, but you can help it along by giving it some hints via a file ~/.ctag. You should put the following from Tim’s gist:)
windows下在C:\Users\Administrator目錄下建立 .ctags檔案
--langdef=js --langmap=js:.js --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*\{/\5/,object/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*function[ \t]*\(/\5/,function/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*\[/\5/,array/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*[^"]'[^']*/\5/,string/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*(true|false)/\5/,boolean/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*[0-9]+/\5/,number/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*.+([,;=]|$)/\5/,variable/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*[ \t]*([,;]|$)/\5/,variable/ --regex-js=/function[ \t]+([A-Za-z0-9_$]+)[ \t]*\([^)]*\)/\1/,function/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*\{/\2/,object/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*function[ \t]*\(/\2/,function/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*\[/\2/,array/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*[^"]'[^']*/\2/,string/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*(true|false)/\2/,boolean/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*[0-9]+/\2/,number/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*[^=]+([,;]|$)/\2/,variable/