欲達到的功能
註:本篇適用於 Mac,若用 Linux 請依照 Distribution 尋找適用的安裝指令 (apt, yum, ...),Windows 很久沒用了不瞭解安裝方式。
安裝
用 Homebrew 安裝 ctags
Mac 內建的 ctags 不支援 recursive 資料夾搜尋 (-R 選項),因此根本不符合需求。
如果遇到類似 "illegal option -- R" 的錯誤訊息,很有可能是因為吃到內建的 ctags。
先跑 Homebrew 自我檢測工具,盡量排除警告訊息
安裝 ctags
如果裝好後 ctags 還是吃到內建的 /usr/bin/ctags ,需注意你的 $PATH 的順序是否正確。
Sublime Text 安裝 CTags 外掛
如果你的 Sublime Text 還沒有安裝 Package Control,請先安裝。
-
cmd +shift +p 叫出指令框
- 搜尋 "Package Control: Install Package" 並按
Enter 執行
- 搜尋 "CTags" 並按
Enter 安裝
設定
如果 Sublime 還是吃不到 homebrew 的 ctags,可以強制指定
建立/更新 索引檔
如圖所示
如果你習慣,也可以透過 cmd +shift +p 下 Rebuild 指令。
到這裡已經可以使用 "Navigate to Definition" 的功能了,但再加上一些設定會更好。
進階設定
設定 git ignore
首先要說一件事,如果你從 command line 自己下 ctags 指令時,預設檔名是 tags 。但由於 tags 也是很常見的名稱,常常造成衝突,因此現在大多習慣用 .tags 取代之,sublime CTags 外掛也遵循這個慣例。
各 project 一一放到 .gitignore 也可以,但通常大家手上都很多 projects,而且基本上很少有與 .tags 名稱衝突的檔案,因此我直接設到 gitignore_global。
如果你還沒有 .gitignore_global 檔案,請先設定,詳細可參考 Ignoring files
~/.gitignore_global 的寫法基本上就跟各 project 下的 .gitignore 寫法一樣,但這個會跨 projects。
在裡面加入:
讓 sublime 搜尋關鍵字時不要找 .tags 的內容
由於 .tags 也是純文字檔,全 project 搜尋時也會找到其內容,而且因為是 . 開頭,通常都蠻前面的,有點惱人。因此用 User Preference 將這幾個檔案排除,除了搜尋不到,也會從左側檔案列表內消失。
追到 gems 的 source code 裡去
註:這是針對 Ruby/Rails 的功能。
在 project 根目錄執行
這招參考自 ctags in Rails project,裡面提到可以做成 alias,但我這麼做並執行完,老是會跳到最後一個 gem 的目錄,還不知道怎麼解。
雖然有人把這個作法直接包一層取代 ctags 指令,但相關方法我設定失敗,加上考慮到這麼做會讓每次 rebuild 都會花很多時間在沒有變動 (gems) 的 code 上,因此我沒有採用。
有興趣的話,可以看看
我最後的方案是:
- Sublime Text 用
/usr/local/bin/ctags
- 若想更新來自 gems 的內容,在 Project 目錄下執行
ctags_ruby_enhance
(這個段落有重寫過)
其他
鍵盤快速鍵
請參考 官方文件 Commands Listing 段落
或照老方法設定 key binding
你用的 Theme 是什麼?
- Theme 是
Theme - Nexus ,可以透過 Package Control 找到。
- Color Scheme 是
Theme - Nil / Tubnil ,不過我最近的新歡是 Tomorrow Color Scheme / Night Bright ,都可以透過 Package Control 找到。
你的側欄的右鍵選單好像多出很多功能?
安裝 SideBarEnhancements
以上
最近還玩了一下 sublime_debugger:sublime 跟 ruby-debugger/byebug 整合,做到類似 Visual Studio 的強大 debug 功能(擁有 break point、逐行執行、區域變數列表、immediate evaluate 等等功能),如果有空的話希望也能寫成一篇啊啊啊啊啊啊
2014-03-04 UPDATE: 已寫 => 安裝 Sublime Text 3 互動式 Ruby Debug 外掛
|