#工作區群組
工作區群組讓你能將工作區巢狀歸入側邊欄中可折疊的具名區段。每個群組都有一個隱含的錨點工作區、一個可自訂用來在群組內建立新工作區的 + 按鈕,以及用於重新命名、釘選、解除群組和編輯其設定的右鍵動作。
#概念
#錨點工作區
每個群組都恰好由一個稱為錨點的工作區擁有。側邊欄中的群組標頭即是錨點的呈現方式——它沒有獨立的列。點按標頭名稱區域會聚焦於錨點的面板;點按箭號則切換折疊狀態。
建立群組時,錨點一律是全新的。它們絕不會由現有的工作區升格而成。對選取項目進行群組化時,錨點的工作目錄會繼承自第一個選取的工作區;透過 CLI 在未指定 --cwd 的情況下建立時,則繼承自目前作用中的工作區。
關閉錨點工作區會解散群組:其他每個成員都會變成未群組的工作區,並保留在分頁列表中。除了錨點本身之外,不會關閉任何項目。在此發生之前,應用程式會顯示一個帶有「不再詢問」切換開關的確認對話框。
#群組識別
群組具有名稱、圖示(一個 SF Symbol,預設為 folder.fill),以及一個選用的自訂顏色。這些都獨立於錨點工作區本身的自訂設定。錨點的顏色和圖示在建立時會以群組為種子值,但之後可以各自不同。
#釘選
群組可以獨立於個別工作區的釘選而釘選。已釘選的頂層列,無論是個別工作區還是群組,都會位於未釘選列的上方。在每個層級之內,群組和工作區會保留你拖曳放入的順序。
側邊欄由上而下排列頂層列:
- 已釘選的頂層列(工作區與群組)。
- 未釘選的頂層列(工作區與群組)。
#建立群組
可以透過兩種方式建立群組:鍵盤快速鍵或工作區右鍵選單。兩者都會在所選項目上方插入一個新的錨點工作區,並將所選工作區移入該群組。群組建立後,你可以從群組標題處管理它並向其中新增工作區(請參閱下方的「管理群組」)。
#透過鍵盤(⌘⇧G)
在側邊欄中選取兩個或更多工作區,然後按下 ⌘⇧G。一個全新的錨點工作區會插入在所選項目上方,且所有選取的工作區都會成為子項。群組會自動命名為 Group 1、Group 2 等等——你可以隨時透過標頭情境選單重新命名。
單一分頁群組無法透過快捷鍵建立。請改用工作區右鍵選單中的 New Group from Workspace 項目來建立。
#透過工作區情境選單
在側邊欄中對任一工作區按右鍵並選擇 New Group from Workspace;當選取多個工作區時,則選擇 New Group from Selection。這會使用與快捷鍵相同的自動命名行為。
#管理群組
群組建立後,可以透過其標題的右鍵選單以及標題上的 + 按鈕來管理群組並向其中新增工作區。這兩者都不會建立新群組。
#透過群組標頭情境選單
對現有的群組標題列按右鍵,可使用 Rename Group…、Pin Group / Unpin Group、Edit Group Config…(會開啟 ~/.config/cmux/cmux.json)、Open Workspace Groups Docs、Ungroup (Keep Workspaces) 以及 Delete Group (Close Workspaces)。刪除是破壞性操作並會提示確認;取消群組則會保留工作區,僅移除容器。
#透過群組標頭上的 + 按鈕
將滑鼠移到群組標題列上,即可顯示尾端的 + 按鈕。點按它即可在該群組中、於錨點工作目錄下建立新的工作區。對它按右鍵則可使用 New Workspace in Group、Edit Group Config… 以及 Open Workspace Groups Docs。
當目前作用中的工作區是某個群組的錨點或成員時,按下 ⌘N 也會在該群組內建立新工作區。預設放置方式為 After current:從一般的群組成員出發時,新工作區會落在作用中成員的正後方;從錨點或標頭出發時,則會落在群組的頂端。
#CLI
所有群組操作皆可透過 cmux workspace-group 子命令編寫指令稿。帶連字號的形式將率先推出;一旦更廣泛的 cmux workspace 命令命名空間上線,cmux workspace group 將成為標準形式,而帶連字號的形式將永久保留作為別名。
#子指令
cmux workspace-group list [--json]
cmux workspace-group create --name "manaflow" [--cwd ~/projects/manaflow] [--from <id>,<id>]
cmux workspace-group ungroup <group-id>
cmux workspace-group delete <group-id>
cmux workspace-group rename <group-id> --name "new name"
cmux workspace-group collapse <group-id>
cmux workspace-group expand <group-id>
cmux workspace-group pin <group-id>
cmux workspace-group unpin <group-id>
cmux workspace-group add --group <group-id> --workspace <workspace-id>
cmux workspace-group remove --workspace <workspace-id>
cmux workspace-group set-anchor --group <group-id> --workspace <workspace-id>
cmux workspace-group new-workspace <group-id> [--placement afterCurrent|top|end]
cmux workspace-group set-color <group-id> --hex "#7A4FD8"
cmux workspace-group set-icon <group-id> --symbol ladybug.fill
cmux workspace-group move <group-id> (--to-index <n> | --before <group-id> | --after <group-id>)
cmux workspace-group focus <group-id>create 會回傳一個群組控制代碼(預設為 workspace_group:N)。傳入 --json 可取得完整的結構化負載。
傳給 set-color 或 set-icon 一個空值即可清除群組的顏色或圖示。delete 是不可逆的:它會關閉每個成員工作區。
#範例
將目前選取的工作區以某個名稱進行群組化:
cmux workspace-group create --name manaflow在現有群組內建立一個新工作區,例如連接到某個 worktree 指令稿:
cmux workspace-group new-workspace workspace_group:1列出聚焦視窗中的群組:
cmux workspace-group list#設定
每個群組的設定位於 ~/.config/cmux/cmux.json 中的 workspaceGroups 鍵之下,並以錨點工作區的工作目錄作為鍵。請參閱設定參考,以了解所支援的鍵,包括全域新工作區放置位置,以及各目錄的色彩、圖示、放置位置和右鍵選單動作。
#持久化
群組名稱、錨點、釘選狀態、折疊狀態、顏色與圖示都會與你的工作區一併儲存,並在重新啟動後還原。群組成員資格則儲存在每個工作區上。