檔案導覽與指令面板

傳送門?(Goto Anything)

Goto Anything 就像遊戲傳送門,讓你快速地開啟任何檔案,使用快捷鍵 Command + P 打開它,當輸入文字會立即搜尋、連結到相似檔名的檔案,並且即時預覽。輸入的內容可以是路徑上目錄及檔案的關鍵字,不必輸入很精準、很完整的單字,最後 Sublime Text 會為你選擇一個最佳的結果。

除此之外,Sublime Text 2 的 Goto Anything 還有其他的特異功能,就是可以結合以下各種符號,執行不同的操作:

  • #:在檔案內執行模糊搜尋;
  • @:搜尋檔案內的 symbols,指的是類別名或者是方法名,快捷鍵是 Command + R
  • ::插字符號移往該檔案指定的行數,快捷鍵是 control + G

側邊欄

側邊欄可以總覽整個專案的所有檔案,就像 Windows 的檔案總管、OS X 的 Finder 那樣。被加進側邊欄的檔案,也就是可以被 Goto Anything 搜尋到的檔案。

可以用快捷鍵 Command + KCommand + B 顯示或隱藏側邊欄。

你也可以用方向鍵來瀏覽側邊欄,但是必須先透過快捷鍵 Control + 0 將目前游標的焦點移往側邊欄,反之,要移回來按一下 Esc 即可。當然,你也可以用滑鼠來點,效果都是一樣的,但是既然鍵盤那麼方便為什麼還要用滑鼠呢?:)

在側邊欄裡,敲擊右鍵呼叫功能選單,這裡提供一些常見的基本檔案操作。

指令面板(Command Palette)

指令面板是 Sublime Text 2 中使用內建指令、或是呼叫外掛的功能非常好用的東西,使用快捷鍵 Command + Shift + P 開啟此面板。這個面板指令是讀取自所有的 .sublime-commands 檔案。

以下例子是 Packages/Default/Default.sublime-commands 檔案的一小部分:

[
  { "command": "clear_bookmarks", "caption": "Bookmarks: Clear All" },
  { "command": "select_all_bookmarks", "caption": "Bookmarks: Select All" },

  { "caption": "Indentation: Convert to Tabs", "command": "unexpand_tabs", "args": {"set_translate_tabs": true} },
  { "caption": "Indentation: Convert to Spaces", "command": "expand_tabs", "args": {"set_translate_tabs": true} },
  { "caption": "Indentation: Reindent Lines", "command": "reindent", "args": {"single_line": false} }
]

稍微解釋一下這裡的意思:

  • caption:顯示在指令面板中的文字;
  • command:要執行的指令名稱;
  • args:藉由指令傳入的參數;

因此你可以在指令面板中找到像是「Bookmarks: Clear All」、「Bookmarks: Select All」等這樣的指令,按下輸入時就會觸發執行該命令。

專案(Project)

專案群組是以你的工作需求為單位,將檔案、資料夾加入到一個專案群組中,儲存它然後命名。選擇 Project >> Save Project As...,便可在 Sublime Text 2 建立這樣的專案群組,並且透過快捷鍵 Command + Control + P 在不同專案群組之間快速切換。

建立專案群組時,專案資料會以 JSON 格式儲存在 .sublime-project 檔案裡,同時 Sublime Text 2 也會自動生成一個附檔名為 .sublime-workspace 的檔案,用來儲存當下的使用環境,例如哪些檔案被打開、哪些被修改,甚至連視窗捲動到哪都會被記錄起來。

.sublime-project 是可以自己修改的,可支援三個頂層節點,分別是:

  • "folders":每個資料夾都必須要有路徑(path),選擇性地可以加上 folder_exclude_patternsfile_exclude_patterns 設定來排除特定的目錄或檔案。路徑可以是此專案的箱端路徑,也可以是絕對路徑。或許你還會想要替他們取個名字,這將會顯示在側邊欄;
  • "settings":用來覆寫個人的偏好設定,例如設置縮進的空格數,好讓編輯這個專案的人都可以保持統一的程式碼風格;
  • "build_systems":給專案指定的 Build System 設定,每一項設定都必須指定名稱(name);

例子:

{
  "folders":
  [
    {
      "path": "src",
      "folder_exclude_patterns": ["backup"]
    },
    {
      "path": "docs",
      "name": "Documentation",
      "file_exclude_patterns": ["*.css"]
    }
  ],
  "settings":
  {
    "tab_size": 8
  },
  "build_systems":
  [
    {
        "name": "List",
        "cmd": ["ls"]
    }
  ]
}

.sublime-workspace 是由編輯器自己產生,不應該去動它。

此外,你也可以從終端機用 Sublime Text 2 的命令列工具,以 .sublime-project 檔案作為參數開啟專案,例如 subl --project example.sublime-project