工作區管理
VMark 中的工作區是以資料夾形式開啟的專案根目錄。開啟工作區後,側邊欄會顯示檔案樹狀結構、快速開啟功能可找到檔案樹顯示的每個檔案、終端機從專案根目錄啟動,且你的開啟分頁會在下次啟動時還原。
若未開啟工作區,你仍然可以開啟單一檔案,但無法使用檔案總管、專案內搜尋和工作階段還原。
在同一個視窗中使用多個工作區
實驗性的工作區導軌讓單一視窗可以容納多個工作區並在它們之間切換 — 每個工作區都有自己的分頁、檔案樹和版面配置。
開啟工作區
| 方式 | 操作 |
|---|---|
| 選單 | 檔案 > 開啟工作區 |
| 快速開啟 | Mod + O,然後在底部選擇 **瀏覽... ** |
| 拖放 | 從 Finder 將 Markdown 檔案拖入視窗 — VMark 自動偵測其專案根目錄並開啟工作區 |
| 最近的工作區 | 檔案 > 最近的工作區,選取先前的專案 |
開啟工作區時,VMark 會在側邊欄顯示檔案總管。若之前已開啟過此工作區,先前開啟的分頁會自動還原。
在 Windows 與 Linux 上,透過命令列傳入的資料夾(vmark C:\notes 或 vmark ~/notes)會在獨立的視窗中以工作區開啟,就像在 macOS 上把資料夾拖到 Dock 圖示上一樣。VMark 已在執行時也同樣適用。
TIP
若目前視窗有未儲存的變更,VMark 會提示你在新視窗中開啟工作區,避免遺失目前的工作內容。
檔案總管
開啟工作區後,檔案總管會出現在側邊欄,顯示以工作區資料夾為根目錄的 Markdown 檔案樹狀結構。
導覽
- 單擊 資料夾以展開或折疊
- 單擊 檔案以在分頁中開啟
- 在選取的項目上按 Enter(或
F2)即可開始行內重新命名 - VMark 本身不編輯的檔案(開啟 顯示所有檔案 後可見)以系統預設應用程式開啟
- 工作區首次開啟時,資料夾預設為折疊狀態;在你切換「檔案」、「大綱」、「歷史記錄」檢視之間時,資料夾的開啟狀態會被保留
快速查看
在樹狀結構中選取檔案並按下 Space,即可在全視窗覆蓋層中預覽它,而不必開啟分頁 — 圖片、影片和音訊會以其原生控制項呈現;其他任何檔案則會顯示「無法預覽」面板,並附有以外部程式開啟的按鈕。←/↑ 與 →/↓ 會依序逐一瀏覽樹中可見的檔案(不會循環),按 Space、Escape 或點擊背景即可關閉預覽。在行內重新命名欄位中輸入空白字元絕不會觸發它。
標題列按鈕
「檔案」檢視的標題列提供作用於整個樹狀結構的控制項:
- 展開所有資料夾 — 展開樹中每個資料夾
- 摺疊所有資料夾 — 將每個資料夾收合回根目錄
- 顯示所有檔案 — 一個切換鈕;開啟時(反白顯示),樹狀結構會列出每個檔案,而不只是 VMark 能開啟的檔案
- 新增檔案 / 新增資料夾 — 在選取的資料夾中建立;若未選取任何項目,則在工作區根目錄中建立
檔案操作
右鍵點擊檔案、資料夾或樹狀結構下方的空白處可存取情境選單:
| 操作 | 顯示於 | 說明 |
|---|---|---|
| 開啟 | 檔案 | 在新分頁中開啟檔案 |
| 重新命名 | 檔案、資料夾 | 行內編輯檔案或資料夾名稱(也可按 F2) |
| 複製 | 檔案 | 建立檔案的副本 |
| 移動至... | 檔案 | 透過對話框將檔案移至其他資料夾 |
| 刪除 | 檔案、資料夾 | 將檔案或資料夾移至系統垃圾桶 |
| 複製路徑 | 檔案、資料夾 | 複製絕對路徑至剪貼簿 |
| 在 Finder 中顯示 | 檔案、資料夾 | 在檔案管理程式中顯示該項目 — 在 Windows 上標示為 在檔案總管中顯示,在 Linux 上標示為 在檔案管理員中顯示 |
| 新增檔案 | 資料夾、空白處 | 在此位置建立新的 Markdown 檔案 |
| 新增資料夾 | 資料夾、空白處 | 在此位置建立新資料夾 |
| 在此開啟終端機 | 資料夾 | 在此資料夾中啟動新的終端機工作階段(開啟 5 個工作階段後停用)— 請參閱終端機 |
你也可以直接在樹狀結構中 拖放 檔案至不同資料夾。
顯示切換
預設情況下,檔案總管只顯示 VMark 能開啟的檔案類型,並隱藏點檔案(dotfile)。無論資料夾內是否有任何可見內容,資料夾都會被列出,因此一個全是不支援檔案類型的專案,看起來會像一棵由空資料夾組成的樹 — 這是篩選在發揮作用,而不是讀取目錄失敗。兩個切換選項可更改此行為:
| 切換選項 | 快捷鍵 | 功能 |
|---|---|---|
| 顯示隱藏檔案 | Mod + Shift + .(macOS)/ Ctrl + H(Win/Linux) | 顯示點檔案和隱藏資料夾 |
| 顯示所有檔案 | Mod + Shift + A | 在文件旁顯示非 Markdown 檔案 |
這兩項設定均按工作區儲存,並在工作階段之間持久保留。
排除的資料夾
有些目錄無論工作區設定為何,都永遠不會列出其內容 — 與工作區搜尋所套用的最低排除範圍相同:.git、node_modules、.obsidian、.svn、__pycache__、.DS_Store、.vscode、.idea、target、.next、dist、.superpowers。它們仍會以資料夾形式顯示,讓你知道它們存在;但其內容不會被讀取。你可以在工作區設定的 排除的資料夾 中加入自己的名稱(新工作區在此預設包含 .git 和 node_modules)。
樹狀結構會一次列出,並在檔案變更時重新整理。一連串的變更只會觸發一次重新整理,在該連串變更結束後不久進行;對於一個持續不斷變更的資料夾(進行中的下載、建置、同步),重新整理的間隔會逐漸拉長,而不是持續進行,因此檔案總管絕不會因反覆讀取繁忙的工作區而佔滿一個 CPU 核心。
快速開啟
按 Mod + O 開啟快速開啟覆蓋層。它提供三個來源的模糊搜尋,依下列順序排列:
- 目前視窗中的 已開啟分頁(以圓點標示),最近使用的排在最前
- 你之前開啟過的 最近檔案
- 工作區中 檔案總管目前顯示的所有檔案
在你輸入之前,清單只會顯示已開啟的分頁和最近檔案。開始輸入後,三個來源的結果都會出現,依上述順序分組,並在各組內依符合程度排序。
輸入幾個字元即可篩選 — 搜尋為模糊匹配,因此 rme 可找到 README.md。使用方向鍵導覽,按 Enter 開啟。底部的固定 **瀏覽... ** 選項可開啟檔案對話框。
第三個來源完全依照檔案總管,因此兩者對於有哪些檔案存在的判斷永遠一致。開啟 顯示隱藏檔案,快速開啟就能找到 .claude/、.github/workflows/ 及任何其他點目錄下的文件;開啟 顯示所有檔案,它也能找到非 Markdown 檔案,並以與在側邊欄中點擊相同的方式開啟每個檔案 — VMark 自身支援的格式在分頁中開啟,其他所有檔案則以你系統的預設應用程式開啟。位於永遠略過清單上的資料夾(.git、node_modules、.vscode 等)在兩者中都不會出現。
| 操作 | 快捷鍵 |
|---|---|
| 開啟快速開啟 | Mod + O |
| 在結果中導覽 | 上 / 下 |
| 開啟選取的檔案 | Enter |
| 關閉 | Escape |
TIP
未開啟工作區時,快速開啟仍然有效 — 它會顯示最近的檔案和已開啟的分頁,但無法搜尋檔案樹。
工作區內容搜尋
開啟工作區時,VMark 可在 檔案內容(而非僅檔名)中搜尋。預設會搜尋 VMark 能開啟的檔案類型(Markdown、純文字、YAML,以及在相應格式支援開啟時的 JSON/TOML/Mermaid/SVG/HTML)。關閉 .md 切換鈕(僅限支援的檔案類型)即可搜尋所有文字檔(二進位檔一律略過)。
| 操作 | 快捷鍵 |
|---|---|
| 開啟內容搜尋面板 | Mod + Shift + H(也可使用 編輯 → 尋找 → 在檔案中尋找...) |
| 跳至下一個結果 | Enter(或使用方向鍵導覽) |
| 在新分頁開啟結果 | 點擊符合項目預覽 |
每筆結果顯示檔案路徑、行號,以及反白標示符合文字的片段。結果不會排序:檔案依搜尋走訪工作區資料夾時到達的順序列出。搜尋在找到 50 個符合的檔案、1,000 個符合項目或經過 5 秒後停止,並顯示截至當時找到的結果。
預設排除:VMark 永遠不會進入的資料夾 — .git、node_modules、.obsidian、.svn、__pycache__、.DS_Store、.vscode、.idea、target、.next、dist、.superpowers — 以及工作區設定中 排除的資料夾 內列出的任何名稱(新工作區在此預設包含 .git 和 node_modules)。
隱藏檔案:無論檔案總管的 顯示隱藏檔案 切換為何,內容搜尋一律略過點檔案(dotfile)。
這與快速開啟不同 — 後者只搜尋 檔名;內容搜尋會開啟符合的檔案,並將游標置於符合的行。
最近的工作區
VMark 可記憶最多 10 個最近開啟的工作區。可從選單列的 檔案 > 最近的工作區 存取。
- 工作區按最後開啟時間排序(最近的在前)
- 清單在每次變更時同步至原生選單
- 選擇 清除最近的工作區 以重設清單
工作區設定
每個工作區都有自己的設定,在工作階段之間持久保留。設定儲存在 VMark 應用程式資料目錄中 — 不在專案資料夾內 — 所以你的工作區保持整潔。
以下設定按工作區儲存:
| 設定 | 說明 |
|---|---|
| 排除的資料夾 | 從檔案總管中隱藏的資料夾 |
| 顯示隱藏檔案 | 是否顯示點檔案 |
| 顯示所有檔案 | 是否顯示非 Markdown 檔案 |
| 最後開啟的分頁 | 下次開啟時還原工作階段的檔案路徑 |
TIP
工作區設定與資料夾路徑綁定。在同一台電腦上開啟相同資料夾,始終會還原你的設定,即使是從不同視窗開啟也一樣。
空的工作區視窗
關閉最後一份開啟的文件不再會關閉視窗。視窗會保持開啟並顯示歡迎畫面,而且 — 如果你有開啟工作區 — 其側邊欄和檔案樹仍會保持可見。這在 macOS、Windows 和 Linux 上的運作方式都相同。
歡迎畫面提供快速操作,讓你迅速回到工作:
- 新增檔案、開啟檔案 和 開啟工作區… 按鈕
- 最近檔案 清單與 最近工作區 清單 — 點擊任一項目即可重新開啟。每個清單只有在有項目時才會顯示。
開啟檔案 和最近清單會沿用你目前所在的視窗。顯示歡迎畫面的視窗沒有可被取代的分頁,因此不會在第二個視窗中開啟任何東西 — 除非該視窗仍開著工作區,此時來自該工作區以外的檔案會取得自己的視窗,而不是取代你在側邊欄中仍看得到的檔案樹。
顯示歡迎畫面的視窗,其標題列會顯示 VMark:由於沒有開啟任何文件,因此沒有檔名可顯示。
若要關閉視窗本身,請使用紅色交通號誌按鈕、Cmd/Ctrl + Q(結束),或在顯示歡迎畫面時再按一次 Cmd/Ctrl + W。
並排文件
同時開啟兩份不同的文件 — 將編輯器分割為兩個窗格,各自顯示一份文件。適合雙語閱讀/翻譯(一側為原文,另一側為譯文),或在寫作時開著參考資料。這與 Markdown 分割檢視(Shift + F6)不同,後者是同一檔案的原始碼 + 預覽。
- 使用
Alt + Mod + \或命令面板(分割編輯器 — 兩個文件)切換分割。目前的文件會留在一個窗格中,而在它之前你最近使用的文件(若沒有,則為另一份已開啟的文件)會在另一個窗格中開啟 — 同一份文件絕不會顯示兩次,因此分割需要開啟兩份文件。在某個窗格取得焦點時點擊分頁,即可變更該窗格的文件;也可以右鍵點擊分頁並選擇 在旁邊開啟。 - 拖曳分隔線(或將焦點移至分隔線並使用方向鍵)即可調整窗格大小。
- 你正在編輯的窗格就是取得焦點的窗格 — 工具列、尋找列和選單指令都會作用於它。
- 開啟 同步分割捲動(命令面板)即可讓兩側按比例一起捲動 — 方便對齊譯文。
工作階段還原
關閉有工作區的視窗時,VMark 會將已開啟分頁的清單儲存至工作區設定。下次開啟同一工作區時,這些分頁會自動還原。
- 只有已儲存檔案路徑的分頁才會被還原(未命名分頁不會持久儲存)
- 若自上次工作階段以來某個檔案已被移動或刪除,會靜默跳過
- 工作階段資料在視窗關閉和工作區關閉(檔案 > 關閉工作區)時儲存
多視窗
每個 VMark 視窗都可以有自己獨立的工作區。這讓你可以同時處理多個專案。
- 檔案 > 新增視窗 開啟全新視窗
- 在新視窗中開啟工作區不影響其他視窗
- 視窗大小和位置按視窗記憶
從 Finder 拖入 Markdown 檔案時,若目前視窗已有未儲存的工作,VMark 會自動在新視窗中開啟該檔案的專案。
開啟目前工作區以外的檔案
已開啟工作區的視窗會保留該工作區。開啟位於其他地方的檔案 — 無論是從 Finder 或檔案總管、從 檔案 > 開啟,還是從最近檔案 — 都會在以該檔案所在資料夾為根目錄的新視窗中開啟,讓你正在使用的檔案樹保持原樣。只有本身沒有工作區的視窗才會就地接收該檔案。
在 Windows 和 Linux 上,雙擊已與 VMark 關聯類型的檔案,現在會將它交給你已在執行的 VMark,而不是啟動第二個執行個體。macOS 一向是這樣運作的。
將分頁分離至新視窗
你可以將分頁從視窗中拉出以建立新視窗:
- 將分頁拖出分頁列 — 超出分頁列上方或下方約 40 px — 即可將其分離。在另一個 VMark 視窗上放開,分頁會移至該視窗;在其他任何位置放開,則會在指標位置的新視窗中開啟
- 水平拖曳分頁 在分頁列內重新排列其在其他分頁之間的順序
- 已釘選的分頁無法拖曳
通知訊息會確認此次移動,並提供 復原 按鈕,可將分頁移回原處。瀏覽器分頁以及主視窗的最後一個分頁無法拖出;它們會彈回原位。
手勢按方向鎖定:水平移動開始重新排列,垂直移動觸發分離。你可以在拖曳過程中將指標移出分頁列來從重新排列切換到分離。
視窗狀態面板
當你在多個視窗中執行 Claude Code 時,檢視 > 切換視窗狀態(也可從命令面板執行,或按 Ctrl + Shift + 5)會開啟一個面板,列出其他每個已開啟的視窗及其即時狀態,並讓你直接跳至該視窗。
每一列會顯示該視窗的文件名稱及其目前狀態:
| 狀態 | 意義 |
|---|---|
| 需要注意 | 該(未取得焦點的)視窗中的終端機響鈴了 — Claude Code 會在完成一輪回合或等待你回應時響鈴 |
| 執行中 | 該視窗中目前正在執行 VMark AI 精靈 |
| 錯誤 | 上一次 AI 精靈執行失敗 |
| 閒置 | 沒有任何工作在執行 |
各列依「需要注意」優先排序,因此需要你處理的視窗會位於最上方。點擊任一列即可將該視窗設為焦點並移至最前方;將視窗設為焦點會清除其「需要注意」標記。狀態來自兩個可靠的訊號 — VMark 自身的 AI 精靈呼叫狀態與終端機響鈴 — 而非解析終端機輸出。
釘選面板即可將它當作常駐的「任務控制中心」使用:釘選期間,點擊某一列會將焦點移至目標視窗,但面板保持開啟,讓你無需重新開啟即可在多個視窗間來回切換。標題列中的釘選按鈕會開啟一個小選單,提供兩種範圍:
- 釘選此視窗 — 只在目前視窗中釘選面板。其開啟與釘選狀態會依視窗在重新啟動後記住,因此你設定為儀表板的視窗會保持那樣。
- 釘選所有視窗 — 全域釘選:每個視窗都會自動開啟面板並表現為已釘選狀態,包括你之後開啟的視窗,因此你只需選擇一次任務控制中心版面配置,而不必逐一手動設定每個視窗。關閉它後,每個視窗都會回復到各自的個別視窗釘選狀態。
外部變更
VMark 會監控你的工作區,以偵測其他程式(Git、外部編輯器、建置工具等)所做的變更,並保持已開啟文件同步。
- 未修改的檔案 在磁碟內容變更時自動重新載入。一則簡短的通知確認重新載入。
- 有未儲存變更的檔案 會觸發一個包含三個選項的對話框:另存新檔(將你的版本儲存至新位置)、重新載入(捨棄你的變更並從磁碟載入)或 保留(保留你的編輯並將檔案標記為分歧狀態)。
- 已刪除的檔案 在其分頁中標記為遺失,但不會關閉——你仍然可以將內容儲存至新位置。
- 當多個已修改檔案同時變更時(例如
git checkout後),VMark 會將它們批次合併至一個對話框,讓你可以全部重新載入、全部保留或逐一檢視。 - 若分歧檔案的磁碟內容後來與編輯器中的內容相符(例如
git checkout還原了相同的文字),VMark 會自動清除分歧狀態,正常的自動儲存將恢復。
VMark 會過濾自身的儲存操作,因此你永遠不會因在應用程式內所做的變更而收到提示。
macOS Dock 最近項目
你在 VMark 中開啟的文件會在 macOS 中註冊,因此當你在 Dock 中右鍵點擊 VMark 圖示時,它們會出現在 最近使用的項目 子選單中。
終端機整合
整合終端機會自動使用工作區根目錄作為其工作目錄。開啟或切換工作區時,閒置的終端機工作階段會 cd 至新的根目錄。正在執行指令的工作階段不會被打擾,會在指令結束後才切換目錄(需要 Shell 整合才能判斷工作階段是否忙碌)。開啟工作區導軌後,屬於某個工作區的工作階段會保留自己的目錄。
在每個終端機工作階段中,VMARK_WORKSPACE 環境變數會被設定為工作區路徑,讓你的腳本可以引用專案根目錄。
Shell CLI 指令
VMark 可以安裝 vmark Shell 指令,讓你從終端機開啟檔案和資料夾。
安裝與移除
輔助說明 → Shell 指令:在 PATH 中安裝「vmark」... 是單一個可切換的項目。當尚未安裝任何 vmark 指令時,它會在 /usr/local/bin/vmark 寫入一個小型啟動腳本,並要求你的管理員密碼(與 VS Code 安裝 code 指令的方式相同)。當 VMark 自己的腳本已經存在時,同一個項目則會將它移除。無論哪種情況,都會有對話框回報結果。僅限 macOS。
用法
# 開啟檔案
vmark README.md
# 以工作區方式開啟資料夾
vmark ~/projects/my-blog
# 開啟多個檔案
vmark chapter1.md chapter2.md該指令委派給 open -b app.vmark,因此 macOS 處理單一實例行為——檔案在你現有的 VMark 視窗中開啟,而不是啟動新程序。
若 /usr/local/bin/vmark 的檔案不是由 VMark 寫入的,此項目不會變動任何東西,並會請你手動移除它。