跳轉到

第 8 章:偏好設定與深度個性化自訂

一款真正卓越的檔案管理器應當主動適應您的工作節奏,而不是強迫您去削足適履。資深工程師、系統管理員、數字檔案管理人員與設計創作者各自擁有截然不同的肌肉記憶、視覺需求與操作習慣:有人嚴格恪守傳統 Norton Commander / Total Commander 的經典功能鍵(F1–F10),有人則深度依賴 macOS 原生快速鍵(Cmd+C、Cmd+V、Cmd+O);有人要求表格列寬根據檔名排版指標實時智慧自適應,有人則偏好邊界分明、嚴格鎖定的固定列寬;有人需要毫秒級的實時檔案系統變動監聽,有人則在跨洋高延遲網路共享盤上工作,必須強制啟用溫和的週期性輪詢機制。

ATBCmder 從底層架構起便具備極高的可定製性。透過高度模組化的 綜合偏好設定中心 (Cmd+, / ⌘, / cm_Options)、直觀且自帶實時衝突檢測的 圖形化快速鍵編輯器、智慧的 列寬自適應演算法引擎、支援豐富動態宏引數的檔案型別關聯規則,以及支援一鍵打包遷移的 ZIP 便攜配置包 (cm_ExportConfiguration),ATBCmder 允許您隨心微調雙面板環境的每一個細節,並在多臺 Mac 之間自由無縫穿梭。


1. 快速入門:設定中心與命令矩陣

ATBCmder 將全套使用者個性化配置統一收斂在由 16 個專項配置頁、獨立的快速鍵對映層以及原子化 XML 持久化架構組成的設定中心:

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                           ATBCMDER 綜合偏好設定中心 (Cmd+,)                            │
├──────────────────────┬─────────────────────────────────────────────────────────────────┤
│  左側分類導航選單    │  右側活動配置頁內容展示                                         │
├──────────────────────┼─────────────────────────────────────────────────────────────────┤
│  • 常規 (General)    │  列寬自適應模式:                                                │
│  • 快捷鍵 (Hotkeys)  │  [ 統計平均模式 (智慧邊距填充)                        ▼ ]       │
│  • 語言 (Language)   │                                                                 │
│  • 檔案檢視 (Views)  │  平均模式擴充套件權重係數: [ 1.25x ]                                │
│  • 自動重新整理 (Refresh)│                                                                 │
│  • 檔案操作 (Ops)    │  檔案排序規則:                                                  │
│  • 壓縮打包 (Packer) │  [X] 自然數字排序: photo1.jpg < photo10.jpg                     │
│  • 外掛擴充套件 (Plugins)│  [X] 嚴格區分英文字母大小寫                                     │
│  • 常用目錄書籤      │  資料夾排列次序: [ 資料夾始終置頂                     ▼ ]       │
│  • 常用標籤頁組      │                                                                 │
│  • 內建編輯器        │  縮圖生成引數:                                                │
│  • 全能檢視器        │  預設卡片邊長: [ 128 畫素 ]   快取路徑: [~/.cache/atbcmder]     │
│  • 頂部主工具欄      │                                                                 │
│  • 居中操作工具欄    │  日期時間呈現格式:                                              │
│  • 操作日誌 (Log)    │  完整時間掩碼: [ %Y-%m-%d %H:%M:%S                            ] │
│  • 列表快捷搜尋      │                                                                 │
│  • 語義命令與過濾    │  [ 還原修改 ]                           [ 應用 ] [ 確定 ] [取消]│
├──────────────────────┴─────────────────────────────────────────────────────────────────┤
│  底層資料儲存:   atbcmder.xml  |  atbcmder_hotkeys.xml  |  favtabs.xml  |  hotlist.xml │
│  跨機便攜遷移:   cm_ExportConfiguration (ZIP)  ➔  cm_ImportConfiguration (ZIP)         │
└────────────────────────────────────────────────────────────────────────────────────────┘

偏好設定與個性化雙矩陣速查表

操作名稱 macOS 原生快速鍵 傳統 Commander 鍵 命令 ID 功能說明
開啟偏好設定 Cmd+, / ⌘, Alt+O / ⌥O cm_Options 撥出包含 16 大分類的綜合配置中心對話方塊。
配置快速鍵對映 Cmd+, ➔ 快速鍵 — cm_Options (快速鍵) 直接定位至鍵盤熱鍵分配與衝突檢測面板。
配置副檔名關聯 選單:配置 — cm_FileAssoc 將檔案字尾與內建/外部檢視器及編輯器繫結。
常用目錄書籤管理 Ctrl+Shift+D / ⌃⇧D Ctrl+Shift+D cm_ConfigDirHotList 編輯、分類與排序已儲存的資料夾快速書籤(Ctrl+D 為撥出書籤列表)。
常用標籤頁組配置 選單:配置 — cm_ConfigFavoriteTabs 維護與整理雙面板多標籤頁工作區方案。
配置外部壓縮程式 選單:配置 — cm_ConfigArchivers 配置呼叫外部 7-Zip、tar 等打包執行程式與引數。
匯出全域性便攜配置 選單:配置 — cm_ExportConfiguration 將所有 XML 設定一鍵打包為可遷移的 ZIP 歸檔。
匯入全域性配置包 選單:配置 — cm_ImportConfiguration 從 ZIP 歸檔中還原全部個性化設定並即時生效。
開啟本地配置目錄 選單:配置 — cm_OpenConfigDirectory 在啟用面板中直接定位開啟 ATBCmder 配置資料夾。
立即強制落盤儲存 選單:配置 — cm_ConfigSaveSettings 將記憶體中的各項改動立即強制寫入磁碟 XML。
鎖定儲存當前視窗布局 選單:配置 — cm_ConfigSavePos 固化當前視窗螢幕座標、長寬尺寸與中線分割比例。
浮動後設資料提示框開關 偏好設定:檔案檢視 — (設定項) 開啟或關閉滑鼠懸停在檔案上時彈出的詳細資訊卡片。
系統沙盒許可權嚮導 選單:配置 — cm_GrantFilesystemAccess 啟動 macOS App Sandbox 與完全磁碟訪問引導。

2. 偏好設定中心結構與操作指南 (Cmd+, / cm_Options)

ATBCmder 的總控控制檯就是 偏好設定對話方塊。您可以透過按下 Cmd+,(⌘,)、選擇選單欄 ATBCmder ➔ 偏好設定...,或在語義命令條(/)中執行 cm_Options 隨時撥出。

2.1 對話方塊排布與互動模型

偏好設定對話方塊採用經典的主從分欄佈局,完美兼顧滑鼠互動與純鍵盤操作:

  1. 左側大類導航列表 (Sidebar):固定寬度 195 畫素,字型清晰適中(14pt 介面字)。使用鍵盤方向鍵 ↑ 與 ↓ 即可快速輪轉分類,或者直接滑鼠點選。
  2. 右側滾動內容頁 (Page Scroll Area):無邊框平滑滾動容器 (QScrollArea)。當在左側切換分類時,右側對應的內容頁平滑就位,絕無視窗尺寸跳動或螢幕閃爍。
  3. 底部操作控制條:
  4. 確定 (OK):全面校驗所有分類頁的輸入合法性,將改動原子化寫入磁碟 (atbcmder.xml),觸發多語言翻譯與主題重新整理,並關閉對話方塊。
  5. 應用 (Apply):無需關閉彈窗即可將改動即時生效。這在實時預覽不同介面字型、主題深淺色微調、測試列寬填充係數或自動重新整理靈敏度時格外好用。
  6. 取消 (Cancel):丟棄本輪所有未應用的修改;若剛才臨時預覽過主題,系統會自動回滾至進入設定前的原始外觀。
┌────────────────────────────────────────────────────────────────────────────┐
│ 偏好設定 16 大分類總覽                                                     │
├────────────────────────────────────────────────────────────────────────────┤
│  [ 常規 (General) ]       基礎介面互動、確認彈窗策略、深淺外觀主題         │
│  [ 快捷鍵 (Hotkeys) ]     全功能鍵位對映、主次按鍵槽、實時按鍵衝突檢測     │
│  [ 語言 (Language) ]      30+ 種語言動態切換,即選即用免重啟               │
│  [ 檔案檢視 (File Views) ]自然排序、智慧列寬演算法、日期格式、圖示大小       │
│  [ 自動重新整理 (Auto Refresh)核心事件驅動、輪詢間隔微調、後臺休眠、排除目錄   │
│  [ 檔案操作 (Operations) ]重名覆蓋衝突策略、屬性保留、刪除行為             │
│  [ 壓縮打包 (Packer) ]    ZIP、7Z、TAR 演算法偏好、分卷大小預設              │
│  [ 常用目錄 (Hotlist) ]   書籤分組分類、目標面板選擇、拖拽排布             │
│  [ 常用標籤頁 (Fav Tabs) ]雙面板標籤頁工作區方案、路徑與鎖定狀態維護       │
│  [ 內建編輯器 (Editor) ]  程式碼文字字型排版、縮排規則、外接外部編輯器掛接   │
│  [ 全能檢視器 (Viewer) ]  預覽引擎引數、大圖解碼質量、外部檢視器聯動       │
│  [ 頂部工具欄 (Toolbar) ] 按鈕顯隱、圖示尺寸調節、自定義宏命令新增         │
│  [ 居中工具欄 (Middle) ]  中間分割條快捷操作按鈕控制、扁平與立體樣式切換   │
│  [ 操作日誌 (Log) ]       檔案操作審計流水、日誌滾動切割大小               │
│  [ 列表快搜 (Quick Search)單字母直接搜尋、尾部句點邏輯、大小寫規則         │
│  [ 語義過濾 (Semantic) ]  自然語言指令別名、Spotlight 原生整合             │
│  [ 標籤欄 (Tabs) ]        標籤頁膠囊圓角、關閉叉號顯隱、路徑鎖定行為       │
└────────────────────────────────────────────────────────────────────────────┘

2.2 16 大配置頁面功能全覽

偏好設定中的每一個頁面都專注解決特定功能領域的配置需求:

配置頁面 實現模組 核心功能設定項
常規 (General) page_general.py 隱藏檔案顯隱、檔案圖示、刪除/覆蓋確認彈窗、系統廢紙簍整合、複製/移動緩衝區大小 (4 KB–10 MB)、主題外觀切換、全域性字型大小、最小化到選單欄托盤,以及全域性顯示/隱藏視窗快速鍵 (Cmd+Opt+H)。
快速鍵 (Hotkeys) page_hotkeys.py 多作用域命令搜尋、主快速鍵與次快速鍵雙槽繫結、按鍵衝突自動化預警,以及一鍵恢復出廠官方預設。
語言 (Language) page_language.py 動態多語言選擇器,支援 30+ 種主流語言(英語、德語、法語、簡體中文、繁體中文、日語、俄語、西班牙語等),實時生效無需重啟。
檔案檢視 (File Views) page_fileview.py 大小寫敏感與自然數字排序、資料夾排序位置(置頂、置底、混排)、新建/更新檔案插入位置、三大列寬自適應模式(固定、平均、最大)、邊距擴充套件係數滑塊,以及自定義日期時間格式。
自動重新整理 (Auto Refresh) page_auto_refresh.py 檔案建立/刪除/重新命名監控、屬性變動監控、定時器輪詢回退間隔、應用進入後臺時自動休眠,以及目錄排除黑名單。
檔案操作 (Operations) page_operations.py 預設單檔案衝突策略(詢問、覆蓋、跳過、僅覆蓋較舊、自動重新命名目標)、目錄衝突策略(詢問、合併、覆蓋、跳過)、可用空間預分配、符號連結處理方式、許可權與時間戳保留,以及校驗開關。
壓縮打包 (Packer) page_packer.py 預設打包歸檔格式 (zip、7z、tar.gz、tar.bz2、tar.xz、tar),以及外部 7-Zip、GNU Tar、Gzip、Bzip2、XZ 工具的可執行檔案路徑。
常用目錄 (Directory Hotlist) page_hotlist.py 互動式資料夾書籤管理:新增、刪除與拖拽重排 (Drag & Drop)、指定對側雙面板目標路徑,以及分配快速直達數字鍵。
常用標籤頁 (Favorite Tabs) page_favorite_tabs.py 工作區快照管理:儲存、重新命名、排序與一鍵恢復雙面板多標籤頁的工作目錄狀態。
內建編輯器 (Editor) page_editor.py 內建程式碼編輯器字型名稱、字號、製表符寬度 (Tab Stop)、自動換行與行號開關;外部專業編輯器的可執行檔案路徑與命令列引數。
全能檢視器 (Viewer) page_viewer.py Universal Lister 文字字型排版、製表符寬度、頁邊距、自動折行、游標顯隱、圖片解碼渲染設定(EXIF 自動旋轉、縮放插值、透明度棋盤格背景),以及外部獨立檢視器命令列掛接。
頂部工具欄 (Toolbar) page_toolbar.py 頂部主工具欄定製:圖示尺寸滑塊 (16–64 畫素)、欄體寬度滑塊、扁平按鈕風格、文字標題顯隱、多層級命令樹,以及內建圖示選擇對話方塊。
居中工具欄 (Middle Toolbar) page_toolbar.py 雙面板中間垂直分割條工具欄:圖示大小、常用操作按鈕增刪與上下排序。
操作日誌 (Log) page_log.py 檔案操作審計流水記錄:日誌儲存路徑、宏變數路徑替換、單檔案體積上限與滾動輪轉策略、特定操作事件過濾(複製、移動、刪除、解壓)。
列表快搜 (Quick Search) page_quicksearch.py 鍵盤快速檢索模式(精確匹配、字首、字尾、萬用字元)、大小寫敏感度,以及無操作自動超時關閉時間。
語義過濾 (Semantic Filter) page_semantic_filter.py 內嵌自然語言命令條 (/) 執行邏輯、檢索驅動後端,以及按鍵聯想防抖延遲。
標籤欄 (Tabs) page_tabs.py 資料夾標籤頁外觀樣式:關閉按鈕顯隱、多行平鋪與單行滾動切換、鎖定標籤頁時的跳轉行為,以及關閉前二次確認。

2.3 實時外觀主題與免重啟多語言切換

不同於老舊軟體修改介面外觀後必須重啟的落後體驗,ATBCmder 實現了 熱插拔主題渲染與動態國際化:

  1. 外觀主題實時預覽:開啟 常規 分類頁,在 經典 (Classic)、淺色 (Light)、深色 (Dark) 與 macOS 原生精緻風格 (Stylish) 之間任意切換,主介面視窗會即刻透過 Qt 樣式表引擎重新著色渲染。若點選 取消,介面會瞬間無損還原回修改前的原始配色。
  2. 多語言即選即用:進入 語言 分類頁,在支援的 30 餘種語言列表中選取您的目標語種,點選 應用。視窗標題、側邊欄導航、頂部選單、底部按鈕、狀態列以及所有互動彈窗,均會透過 ATBCmder 動態 tr() 國際化管道毫秒級重繪,無需重啟即可享受原生中文體驗。

語言偏好設定
圖 7.1:多語言設定頁面,支援涵蓋簡繁中文、英語、日語在內的 30+ 種國際化語言無縫熱切換。


3. 鍵盤快速鍵自定義與按鍵衝突管理

快速鍵是雙面板檔案管理器的靈魂所在。ATBCmder 的 圖形化快速鍵編輯器 (page_hotkeys.py) 賦予您重定義每一項操作按鍵的完全自由,同時具備嚴密的作用域隔離與防衝突安全網。

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              快捷鍵個性化配置面板                                      │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  快捷鍵作用域: [ FilePanel (檔案列表)                                         ▼ ]      │
│  過濾命令列表: [ copy                                                        ] ⌧       │
├──────────────────────┬────────────────────────┬───────────────────┬────────────────────┤
│ 命令標識 (Command ID)│ 功能描述               │ 主快捷鍵 (Primary)│ 次快捷鍵 (Secondary│
├──────────────────────┼────────────────────────┼───────────────────┼────────────────────┤
│ cm_Copy              │ 複製選中的檔案或資料夾 │ F5                │ Cmd+C              │
│ cm_CopySamePanel     │ 在同面板快速副本檔案   │ Shift+F5          │ Cmd+D              │
│ cm_CopyRightPanel    │ 複製到右側面板         │ Alt+F5            │                    │
│ cm_CopyFullNamesToClip│ 複製完整絕對路徑      │ Ctrl+Shift+C      │ Cmd+Opt+C          │
├──────────────────────┴────────────────────────┴───────────────────┴────────────────────┤
│  [ 編輯快捷鍵... ]              [ 清除當前鍵位 ]              [ 恢復出廠預設鍵位 ]     │
└────────────────────────────────────────────────────────────────────────────────────────┘

3.1 作用域隔離機制 (Context Scoping)

為了避免快速鍵在不同工作場景下相互爭搶,ATBCmder 將按鍵監聽劃分為獨立的 上下文作用域 (Context Scopes)。在一個作用域中繫結的按鍵不會汙染其他無關視窗:

  • Main (全域性通用):跨越所有子視窗始終有效的基礎全域性快速鍵(如 Cmd+, 開啟設定、Cmd+Q 退出程式)。
  • FilePanel (雙檔案面板):僅當鍵盤焦點位於左側或右側檔案列表內時響應(如 F5 複製、Space 計算目錄體積、Backspace 返回上一層)。
  • Viewer (全能檢視器):在 Universal Lister 獨立預覽視窗 (F3) 中生效:控制文字編碼、16 進位制模式切換 (2 / Hex Mode)、圖片旋轉縮放與媒體播放。
  • Editor (程式碼編輯器):在內建文字編輯器 (F4) 中生效:控制語法高亮、縮排排版、程式碼查詢替換 (Cmd+F) 與即時儲存 (Cmd+S)。
  • Differ (檔案內容對比):在左右雙欄比對視窗中響應:差異塊跳轉 (F7/F8)、行級同步對齊與合併。
  • FindFiles (高階搜尋):在多條件查詢對話方塊中響應:啟動搜尋、列表導航與投遞到列表面板 (Feed to Listbox)。
  • MultiRename (批次重新命名):在批次改名工具中生效:計數器調整、插入變數標籤與執行改名。

3.2 雙按鍵槽位架構 (主快速鍵與次快速鍵)

ATBCmder 支援為每一項核心指令分配 兩組獨立的快速鍵組合:

  • 主快速鍵 (Primary Shortcut):契合您的主力肌肉記憶(例如經典 Commander 使用者偏好的 F5)。
  • 次快速鍵 (Secondary Shortcut):現代備選快速鍵(例如 macOS 原生操作習慣的 Cmd+C)。

兩個按鍵組合在對應作用域內完全等效、並行觸發。當您瀏覽系統選單欄時,ATBCmder 會自動優先展示主快速鍵作為直觀參考。


3.3 實操演練:自定義一條命令的快速鍵

按照以下簡明步驟,為命令重新指派或繫結次快速鍵:

  1. 按下 Cmd+,(⌘,)開啟偏好設定,並在左側導航中點選 快速鍵。
  2. 在頂部的 快速鍵作用域 下拉框中選取對應環境(例如 FilePanel)。
  3. 在 過濾命令列表 輸入框中鍵入關鍵詞(例如 Terminal 或 Wipe),表格會即時收斂過濾出對應條目。
  4. 雙擊目標行,或選中該行並點選底部的 編輯快速鍵...。
  5. 在彈出的 編輯快速鍵 對話方塊中:
  6. 點選 主快速鍵 輸入框,直接在鍵盤上敲下期望的物理按鍵組合(例如按下 Ctrl+Alt+T)。輸入元件會自動捕獲並繪製原生按鍵標籤。
  7. (可選)點選 次快速鍵 輸入框,敲下第二組組合鍵(例如 Cmd+Shift+T)。
  8. 點選 儲存。
┌────────────────────────────────────────────────────┐
│ 編輯快捷鍵對話方塊                                   │
├────────────────────────────────────────────────────┤
│ 命令標識:            cm_RunTerm - 啟動終端         │
│ 主快捷鍵:            [ Ctrl+J                    ] │
│ 次快捷鍵:            [ Cmd+Opt+T                 ] │
│                                                    │
│                           [ 取消 ]      [ 儲存 ]   │
└────────────────────────────────────────────────────┘

3.4 自動化按鍵衝突檢測與覆蓋提示

如果您嘗試分配的按鍵組合在當前作用域內已被其他指令搶佔,ATBCmder 的衝突檢測引擎會立即攔截並彈出明確的確認彈窗:

Warning

快速鍵已被佔用衝突警告
快速鍵 Ctrl+M 已在 FilePanel 作用域中分配給 cm_MultiRename (批次重新命名)。
是否確認強行覆蓋,並將 Ctrl+M 重新分配給 cm_MarkCurrentExtension (選擇同名擴充套件)?

  • 點選 是:系統會自動將舊指令上的快速鍵解綁清空,並安全賦予新命令。
  • 點選 否:取消本次修改,保持原有的鍵位對映完好如初。

3.5 全域性顯示/隱藏視窗快速鍵 (Cmd+Opt+H / Ctrl+Alt+H)

對於習慣將 ATBCmder 常駐後臺的鍵盤極客:

  1. 開啟 偏好設定 ➔ 常規。
  2. 勾選 最小化到系統選單欄托盤。
  3. 定位到 全域性顯示/隱藏視窗快速鍵(出廠預設:Ctrl+Alt+H / ⌘⌥H)。
  4. 點選錄製框,直接按下您習慣的全域性按鍵序列。
  5. 點選 應用。

此後無論您在 macOS 的哪個桌面、或是全屏執行著什麼軟體,只需敲下這組全域性熱鍵,ATBCmder 都能瞬間撥出至螢幕最前臺;再次敲擊則自動平滑隱入後臺。


4. 檔案列表檢視、列寬演算法與縮圖管理

檔案檢視 頁面 (page_fileview.py) 負責精確排程雙面板的渲染方式、排版比例、排序邏輯與視覺呈現。

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              檔案檢視與排版詳細配置                                    │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  排序規則微調:                                                                         │
│  [X] 區分大小寫排序                     [X] 自然數字順序排序                           │
│  [ ] 啟用特殊排序規則                                                                  │
│  資料夾排序位置:          [ 資料夾始終置頂                                   ▼ ]       │
│  新建立檔案插入位置:      [ 按規則自動排序                                   ▼ ]       │
│  最新更新檔案插入位置:    [ 列表最頂端                                       ▼ ]       │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  列寬計算與智慧自適應引擎:                                                             │
│  列寬自適應計算模式:      [ 統計平均模式 (Average)                           ▼ ]       │
│  平均模式擴充套件權重係數:    [ 1.20x ]  (可調範圍: 1.00x - 5.00x)                         │
│  提示: 在固定列寬模式下,手動拖動表頭分隔線將分別記住左右面板的獨立畫素寬度。          │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  日期時間格式化掩碼:                                                                   │
│  完整日期時間格式:        [ %Y-%m-%d %H:%M:%S                                ]         │
│  目錄同步時間格式:        [ %Y.%m.%d %H:%M:%S                                ]         │
└────────────────────────────────────────────────────────────────────────────────────────┘

4.1 智慧列寬自適應引擎:三大運算模式

傳統雙面板工具常面臨兩難境地:固定列寬下長檔名被截斷成省略號 (...),而按最長名字拉伸又會把“大小”、“修改時間”等欄位硬擠出螢幕。ATBCmder 提供了三種各展所長的列寬機制:

  1. 固定模式 (fixed):
  2. 徹底關閉自動重新計算。
  3. 列寬完全服從您的手動拖拽佈局。
  4. 分側記憶:當您用滑鼠拖動表頭邊框(如調節 名稱 與 副檔名 之間的寬度)時,ATBCmder 會捕捉精確畫素值,並分別落盤記錄左右兩扇面板的獨立狀態(對應 atbcmder.xml 中的 column_widths_left 與 column_widths_right)。
  5. 統計平均模式 (average — 官方推薦):
  6. 演算法自動度量當前目錄下所有可見檔名的平均字元排版畫素寬度 (QFontMetrics)。
  7. 將平均值乘以您配置的 擴充套件係數(滑塊範圍 1.0x 至 5.0x,推薦設為 1.0x–1.25x),並額外預留 40 畫素的圖示邊距與呼吸空間。
  8. 核心優勢:絕大多數常規檔名均能舒展完整閱讀,且哪怕目錄裡出現極個別長達 150 個字元的異常日誌檔名,也不會把其他列擠壓出螢幕。
  9. 最大文字寬度模式 (max):
  10. 快速遍歷掃描當前目錄,以最長的一項檔名為基準向右擴充套件列寬,並追加 50 畫素的安全邊距。
  11. 確保目錄下 100% 的檔名均完整展開絕不省略,特別適合媒體資源素材庫與學術資料歸檔目錄。

Tip

海量檔案目錄效能最佳化:
當一個資料夾內包含數萬個條目時,如果逐行測量文字畫素會導致介面假死。ATBCmder 內建了智慧等距抽樣演算法 (_MAX_SAMPLE = 200),在超大目錄中僅均勻抽取 200 個樣本行評估字型指標,將計算開銷牢牢壓制在 2 毫秒以內,同時自動跳過父目錄標記 (..)。


4.2 檔案排序邏輯與細粒度選項

隨心定製雙面板中檔案與資料夾的排列規律:

  • 自然數字順序 (Natural sorting):開啟後,字串中的數字會按照數學大小排序:file1.txt、file2.txt、file10.txt(而非傳統字典序強行排成 file1.txt、file10.txt、file2.txt)。
  • 區分大小寫排序:勾選後,大寫字母命名的檔案優先排在小寫之前;取消勾選則對大小寫一視同仁。
  • 資料夾排序位置 (Folder sort mode):
  • 資料夾置頂 (Folders first):目錄永遠整齊排列在列表最上方。
  • 檔案置頂 (Files first):檔案排列在最上方,資料夾沉降至最底部。
  • 混排 (Mixed):檔案與資料夾按字母順序完全混同排列。
  • 新建與更新檔案位置:控制當後臺新增檔案或修改舊檔案時,目標條目在列表中的落點位置(自動排序、置於頂端 或 置於底部)。

4.3 縮圖網格檢視與高效能快取機制

對於攝影師、視覺設計師與影視剪輯師,ATBCmder 原生提供了 縮圖網格模式 (cm_ThumbnailsView),用高畫質晰度圖片卡片取代傳統表格文字。

縮圖網格檢視
圖 7.2:高效能縮圖檢視,支援自由調節圖片邊長與平滑網格間距。

尺寸調節與動態縮放手勢

  • 預設卡片邊長:支援在 48 畫素至 512 畫素之間無級調節(預設 128 畫素)。
  • 觸控板雙指捏合縮放:在 Apple 妙控觸控板上,直接使用自然雙指捏合手勢,或按住 Ctrl 鍵滾動滑鼠滾輪,即可在列表內實時動態縮放縮圖卡片。

多級雙層快取架構

為 4800 萬畫素的 RAW 原圖或複雜的向量 SVG 生成縮圖非常消耗 CPU。ATBCmder 構建了雙層高效能快取體系:

  1. 記憶體 LRU 快取記憶體:在 RAM 中常駐 500 張解碼好的 QPixmap 影象物件,確保在列表上下急速滾動時維持 60 幀滿幀絲滑。
  2. 磁碟永久快取:快取在使用者本地快取目錄中:
  3. 本地路徑:~/.cache/atbcmder/thumbnails/
  4. 快取鍵採用組合雜湊機制生成,融合了檔案絕對路徑、修改時間戳 (mtime)、請求畫素邊長以及系統快取版本號: $\(\text{Cache Key} = \text{SHA256}(\text{filepath} + \text{mtime} + \text{size} + \text{version})\)$
  5. 一旦檔案在磁碟上被修改,時間戳發生變化,舊快取立即失效並在後臺自動重繪。
  6. 多執行緒併發解碼池:圖片生成完全由獨立的後臺 QThread 執行緒池負責,呼叫 Pillow (PIL) 或硬體加速的 QImage 管道,絕不阻塞主介面操作。

4.4 自定義日期時間格式化規範

ATBCmder 允許使用標準 Python strftime 語法自定義時間顯示掩碼:

  • 完整日期時間格式(預設:%Y-%m-%d %H:%M:%S):用於全列檢視中的時間欄位展示(如 2026-09-06 14:30:00)。
  • 目錄同步時間格式(預設:%Y.%m.%d %H:%M:%S):用於目錄同步比較視窗中的時間呈現。
佔位標記 含義說明 示例輸出
%Y 4 位數公元年份 2026
%m 2 位數月份 (01–12) 09
%d 2 位數日期 (01–31) 06
%H 24 小時制小時 (00–23) 14
%I 12 小時制小時 (01–12) 02
%p 上午 / 下午識別符號 PM
%M 2 位數分鐘 (00–59) 30
%S 2 位數秒數 (00–59) 15

5. 檔案系統自動重新整理與監聽靈敏度

在團隊協同開發、瀏覽器下載大檔案或後臺編譯工程時,磁碟目錄的內容時刻都在改變。自動重新整理 頁面 (page_auto_refresh.py) 完美平衡了介面實時性與筆記本功耗。

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              檔案系統自動監控與重新整理配置                                │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  [X] 重新整理檔案列表:                                                                     │
│      [X] 當檔案被建立、刪除或重新命名時觸發                                              │
│      [X] 當檔案大小、修改日期或屬性改變時觸發                                          │
│      輪詢回退間隔週期 (秒): [ 5 ]                                                      │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  暫停自動重新整理:                                                                         │
│      [X] 當應用程式處於後臺閒置時自動掛起                                              │
│      [X] 對以下路徑及其所有子目錄忽略事件:                                             │
│          ┌──────────────────────────────────────────────────────────────────────────┐  │
│          │ /Volumes/NetworkShare/LargeMediaArchive                                  │  │
│          │ /Users/username/Developer/linux-kernel/                                  │  │
│          │ /Users/username/work/heavy_project/node_modules/                         │  │
│          └──────────────────────────────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────────────────────────────────────┘

5.1 核心事件觸發與主動輪詢回退

ATBCmder 融合了作業系統原生事件驅動機制與主動輪詢機制:

  • 核心事件監聽 (watch_file_name_change):掛鉤 macOS 原生核心事件流 (FSEvents / kqueue),零 CPU 消耗實現納秒級檔案新增、刪除與重新命名捕獲。
  • 屬性變動監聽 (watch_attributes_change):追蹤檔案體積擴充套件、許可權標誌微調與時間戳更新。
  • 主動輪詢回退週期 (attr_poll_interval):支援配置 1 至 60 秒的輪詢間隔(預設 5 秒)。
    為什麼必須有輪詢? 區域網網路共享盤(SMB、CIFS、NFS、SFTP VFS)在外部客戶端修改檔案時,往往無法向本地作業系統推送原生系統通知。主動輪詢機制確保了網路掛載目錄永遠不會出現資料陳舊。

5.2 極致節能與 CPU 保護:後臺自動掛起

在 MacBook 電池供電模式下,無休止的檔案監聽會帶來不必要的電量損耗。

  • 勾選 當應用程式處於後臺閒置時自動掛起 (watch_only_foreground),只要 ATBCmder 的主視窗失去焦點,所有檔案監控執行緒與輪詢定時器立即就地休眠掛起。
  • 當您透過觸控板切回 ATBCmder 時,面板會在喚醒的瞬間統一執行一次平滑重新整理,瞬間追平最新檔案狀態。

5.3 路徑黑名單排除過濾器

某些極高頻變動的構建產物目錄——例如前端專案的 node_modules、Git 內部物件庫 (.git)、編譯中間產物快取 (target/、build/) 以及大型資料庫活躍檔案——每分鐘會爆發出成千上萬個細碎磁碟事件。

  1. 勾選 對以下路徑及其所有子目錄忽略事件 (watch_exclude_dirs)。
  2. 在排除框中每行填入一個絕對路徑:

    /Users/username/Developer/project/node_modules
    /Users/username/Developer/linux/.git
    /Volumes/ProductionNAS/RenderingQueue
    

  3. 點選 應用。ATBCmder 會徹底遮蔽這些黑名單路徑下的所有雜碎事件,徹底杜絕無意義的介面閃爍與 CPU 突刺。


6. 自定義檔案關聯與外部工具鏈整合

雙擊檔案或按下 Enter 通常會呼叫系統預設程式。ATBCmder 的 檔案關聯絡統 (cm_FileAssoc / file_associations.py) 允許您針對特定副檔名自由繫結專屬處理流水線,無論是內建引擎還是外部命令列/GUI 工具。

6.1 關聯規則架構與萬用字元優先順序

檔案關聯規則在匹配時遵循從最精確到最通用的優先順序順序:

\[\text{匹配優先順序: } \texttt{*.min.js} \longrightarrow \texttt{*.js} \longrightarrow \texttt{text/*} \longrightarrow \texttt{*}\]

每個關聯規則可配置多組動作(例如“在 VS Code 中編輯”、“16 進位制查閱”、“使用 Python 執行”),其中可以指定某一項為回車觸發的預設動作。


6.2 外部命令列呼叫引數替換宏變數

在配置外部啟動程式或 Shell 指令碼時,ATBCmder 支援透過引數宏動態注入當前檔案資訊:

宏變數 含義說明 替換後示例
%f 當前選中條目的完整絕對路徑 /Users/username/Documents/report.pdf
%d 包含當前檔案的父級目錄路徑 /Users/username/Documents
%n 不帶副檔名的純檔名主體 report
%e 不帶前導點號的副檔名 pdf

6.3 經典檔案關聯實戰配方

配方 1:在 VS Code 中開啟 Python 指令碼

  • 匹配規則:*.py
  • 動作名稱:在 VS Code 中編輯
  • 執行命令:code %f
  • 動作型別:外部 Shell 命令列

配方 2:在系統終端中一鍵執行 Python 指令碼

  • 匹配規則:*.py
  • 動作名稱:直接執行指令碼
  • 執行命令:python3 %f
  • 動作型別:外部 Shell 命令列

配方 3:使用 Typora 獨立預覽 Markdown 文件

  • 匹配規則:*.md
  • 動作名稱:在 Typora 中預覽
  • 執行命令:open -a Typora %f
  • 動作型別:外部 Shell 命令列

配方 4:呼叫 Beyond Compare 與對側檔案比對

  • 匹配規則:*
  • 動作名稱:與對側同名檔案對比
  • 執行命令:bcomp %f %d
  • 動作型別:外部 Shell 命令列

7. 頂部工具欄與居中分割工具欄定製

ATBCmder 提供了兩處支援深度定製的工具欄:位於主選單正下方的 頂部主工具欄,以及嵌入在左右檔案面板中央分割線上的 居中工具欄。

居中工具欄配置
圖 7.3:居中分割條工具欄設定頁面,可自定義微型快捷操作按鈕與指令分發。

7.1 定製工具欄外觀與按鈕尺寸

開啟 偏好設定 ➔ 頂部工具欄 或 偏好設定 ➔ 居中工具欄:

  • 欄體尺寸滑塊 (Bar Size):在 16 畫素至 64 畫素之間調整工具欄高寬。
  • 圖示尺寸滑塊 (Icon Size):在 16 畫素至 64 畫素之間自由縮放按鈕圖示(預設 24 畫素)。
  • 扁平化風格 (Flat Buttons):在現代無邊框扁平按鈕與經典立體浮雕按鈕之間一鍵切換。
  • 顯示文字標題 (Show Captions):在按鈕圖示旁側或下方展開命令文字標籤。

7.2 新增操作項與內建圖示拾取器

工具欄支援透過多層級樹狀結構管理三類核心元素:

  1. 分隔線 (Separator):在功能按鈕群組之間插入豎線分隔符或空白佔位符。
  2. 內建命令 (Internal Command):藉助支援自動補全的命令輸入框,任意繫結 230 餘條 cm_* 核心指令。
  3. 外部程式指令 (External Command):填寫外部 Shell 命令、工作目錄與動態引數宏(%f、%d)。

內建高畫質圖示拾取器 (IconPickerDialog)

在配置自定義按鈕時,點選圖示預覽按鈕即可開啟整合化的 圖示拾取器:

  • 支援對軟體內建的數百枚精選 SVG 與 PNG 圖示進行即時關鍵詞搜尋。
  • 以均一的高畫質網格展示,提供實時放大預覽並顯示圖示底層識別符號。
┌────────────────────────────────────────────────────────────────────────┐
│ 內建圖示拾取器 (ICON PICKER)                                           │
├────────────────────────────────────────────────────────────────────────┤
│ 搜尋過濾: [ terminal                                                 ] │
├──────────────────────────────────────────────────────┬─────────────────┤
│  ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐ │ 選定大圖預覽:   │
│  │ 💻 │   │ 🖥️ │   │ ⌨️ │   │ ⚙️ │   │ 📁 │   │ 🔍 │ │                  │
│  └────┘   └────┘   └────┘   └────┘   └────┘   └────┘ │      💻         │
│  cm_RunTerm  console  terminal  bash   sh      zsh   │                 │
│  ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐ │ 標識: cm_RunTerm│
│  │ 📄 │   │ ✏️ │   │ ✂️ │   │ 📋 │   │ 🗑️ │   │ 🔒 │ │ 規格: 48x48     │
│  └────┘   └────┘   └────┘   └────┘   └────┘   └────┘ │ 格式: SVG/PNG   │
├──────────────────────────────────────────────────────┴─────────────────┤
│                                                [ 取消 ]    [ 選定 ]    │
└────────────────────────────────────────────────────────────────────────┘

7.3 常用目錄書籤與常用標籤頁組定製

  • 常用目錄書籤 (page_hotlist.py):管理您的 Ctrl+D 收藏夾。支援新增當前路徑、拖拽排序、指定雙面板對側聯動路徑,並配置快速直達快速鍵。
  • 常用標籤頁組 (page_favorite_tabs.py):將當前開啟的多標籤頁工作區整體封存為場景模板,一鍵恢復整個開發專案或剪輯工程的目錄排布。

常用目錄管理
圖 7.4:管理常用目錄書籤層級與快速訪問路徑。


8. 配置便攜化管理與沙盒隔離測試模式

無論是購置新 Mac 遷移環境、為團隊開發機批次下發統一設定,還是將精心調校的鍵位方案分享給好友,ATBCmder 都能讓配置備份與還原變得極其簡單。

8.1 配置檔案儲存結構與分工

ATBCmder 將所有使用者個性化資料儲存為結構規範、清晰易讀的標準 XML 文字檔案,位於作業系統的官方配置目錄中:

  • macOS 標準獨立版路徑:
    ~/Library/Preferences/atbcmder/
  • macOS App Sandbox 沙盒版路徑:
    ~/Library/Containers/com.aitobox.atbcmder/Data/Library/Preferences/atbcmder/
  • Linux / UNIX 標準路徑:
    ~/.config/atbcmder/
  • 一鍵直達命令:
    執行 cm_OpenConfigDirectory(或從選單欄選擇 配置 ➔ 開啟配置目錄),當前啟用面板會瞬間定位開啟該資料夾。
~/Library/Preferences/atbcmder/
├── atbcmder.xml          # 核心全域性偏好設定、視窗位置尺寸、主題外觀、列寬自適應
├── atbcmder_hotkeys.xml  # 使用者自定義快捷鍵對映與覆蓋規則
├── favtabs.xml           # 已儲存的雙面板常用標籤頁工作區方案
├── hotlist.xml           # 常用目錄書籤 (Ctrl+D) 層級樹
└── history.xml           # 歷史瀏覽足跡、內嵌命令列歷史、歷史搜尋記錄

8.2 匯出全域性便攜配置包 (cm_ExportConfiguration)

生成包含完整環境的一體化便攜備份:

  1. 從選單欄選擇 配置 ➔ 匯出配置...(或執行命令 cm_ExportConfiguration)。
  2. 選擇目標儲存資料夾並確認檔名(預設:atbcmder-config.zip)。
  3. 點選 儲存。

ATBCmder 會在底層將記憶體中所有待落盤的改動全部重新整理,收集全部配置檔案(atbcmder.xml、atbcmder_hotkeys.xml、favtabs.xml、hotlist.xml 等),並打包生成高強度壓縮的便攜 ZIP 歸檔。


8.3 匯入全域性配置包與安全防線 (cm_ImportConfiguration)

在新電腦上一鍵還原配置,或回滾到已知的穩定快照:

  1. 從選單欄選擇 配置 ➔ 匯入配置...(或執行命令 cm_ImportConfiguration)。
  2. 選取此前匯出的 atbcmder-config.zip 備份包。
  3. 在彈出的安全警告彈窗中確認:

    匯入配置將完全覆蓋當前所有的偏好設定。是否確認繼續?

  4. 點選 是。

ATBCmder 會解壓並嚴密校驗所提取的 XML 檔案合法性,安全替換磁碟資料,並在不重啟軟體的情況下,熱過載內部 Config() 單例,毫秒級重新整理兩扇檔案面板與全域性列寬佈局。

Important

企業級安全防線:路徑穿越攻擊防護 (Anti-Traversal Protection)
ATBCmder 在匯入配置包時會對解壓條目實施嚴苛的安全白名單校驗(zipfile 淨化攔截)。任何包含非法路徑分隔符(/、\)、目錄穿越符(..)或非 XML 副檔名的惡意篡改條目都會被即刻拒絕解包,絕對保障作業系統的底層安全。


8.4 沙盒隔離測試模式 (ATBCmder_test.sh)

當您開發自定義擴充套件外掛、測試大改動鍵位對映,或評估測試版功能時,應當保護好日常使用的生產配置檔案。

ATBCmder 原生支援透過環境變數 ATBCMDER_CONFIG_PATH 將配置目錄完整重定向。倉庫內自帶了隔離測試指令碼:

# 以完全物理隔離的沙盒測試模式啟動 ATBCmder:
./scripts/ATBCmder_test.sh

隔離測試模式底層執行機理:

  1. 自動在本地建立獨立的乾淨臨時目錄:tests/.test_config/。
  2. 將出廠基線配置檔案從 src/atbcmder/resources/test_config.xml 複製到臨時路徑 tests/.test_config/atbcmder.xml。
  3. 注入環境變數 export ATBCMDER_CONFIG_PATH="$(pwd)/tests/.test_config"。
  4. 啟動 ATBCmder。在該測試會話中做的任何設定更改或刪除,僅作用於臨時測試目錄,您個人日常使用的 ~/Library/Preferences/atbcmder/ 保持 100% 纖塵不染。

9. ⚡ 高手進階:深度定製實戰技巧

進階技巧 1:基於 Chezmoi / Ansible 實現 Dotfile 自動化同步

因為 ATBCmder 將全部執行狀態序列化為標準的 UTF-8 XML 文字,您可以毫無阻礙地將其納入個人 Git Dotfiles 倉庫,並使用 Chezmoi 或 Ansible 實現多裝置自動化同步:

# 使用 Chezmoi 管理 ATBCmder 配置檔案示例:
chezmoi add ~/Library/Preferences/atbcmder/atbcmder.xml
chezmoi add ~/Library/Preferences/atbcmder/atbcmder_hotkeys.xml

進階技巧 2:超大網路掛載盤的效能調優

當掛載擁有數百萬檔案的企業級大型 SMB/NFS 儲存時,頻繁的系統事件可能導致區域網通訊擁塞:

  1. 開啟 偏好設定 ➔ 自動重新整理。
  2. 取消勾選 當大小、修改日期或屬性改變時觸發。
  3. 將 輪詢回退間隔週期 調整為 15 或 30 秒。
  4. 把網路掛載根路徑(如 /Volumes/EnterpriseShare)新增到 路徑黑名單排除列表 中。
  5. 在需要確認最新檔案時,使用手動重新整理快速鍵(Ctrl+R / ⌘R)。

進階技巧 3:外部命令環境變數與 Homebrew 路徑繼承

在為工具欄按鈕或檔案關聯配置自定義外部指令碼時,ATBCmder 會完整繼承當前使用者的 Shell 環境變數(包括 PATH、HOME、USER 等)。您可以直接呼叫透過 Homebrew 安裝在 /opt/homebrew/bin/ 目錄下的各類命令列工具(如 ffmpeg、code、git),無需繁瑣書寫絕對全路徑。

進階技巧 4:浮動後設資料提示框的定製與開閉

ATBCmder 內建了半透明磨砂質感的浮動後設資料提示卡片,在滑鼠懸停時能夠呈現圖片解析度、EXIF 拍攝引數、音訊位元速率與壓縮包內檔案數。您可以在 偏好設定 ➔ 檔案檢視 中根據個人審美偏好自由開啟或關閉該提示。

豐富的懸停提示卡片
圖 7.5:滑鼠懸停於檔案條目時浮現的豐富後設資料提示卡片。


10. 系統許可權與安全警示

Caution

覆蓋全域性核心按鍵操作的謹慎提醒
在 Main 或 FilePanel 作用域中覆蓋主快速鍵會立即剝奪原有命令的鍵位響應。如果不小心將 F5(複製)或 Enter(開啟)等至關重要的基礎操作誤刪,請使用快速鍵編輯器底部的 恢復出廠預設鍵位 按鈕立即重置。

Warning

匯入配置將全面覆蓋現有資料
透過 cm_ImportConfiguration 匯入配置包會無條件覆蓋當前磁碟上的 atbcmder.xml、favtabs.xml 與 hotlist.xml。在匯入來自他人的外部配置包之前,請務必先將自己現有的配置匯出一份副本作為安全備份。

Important

macOS App Sandbox 與完全磁碟訪問許可權
若 ATBCmder 在 macOS App Sandbox 沙盒模式下執行,未經使用者明確授權前無法訪問沙盒容器之外的本地卷與外接行動硬碟。若在瀏覽時頻繁遭遇許可權拒絕告警,請在選單欄執行 cm_GrantFilesystemAccess 完成系統完全磁碟訪問許可權引導。


11. 偏好設定與個性化雙矩陣速查全表

分類類別 操作功能說明 macOS 原生快速鍵 傳統 Commander 鍵 命令 ID
偏好設定 開啟偏好設定主中心對話方塊 Cmd+, / ⌘, Alt+O / ⌥O cm_Options
偏好設定 立即將記憶體配置強制落盤 選單:配置 — cm_ConfigSaveSettings
偏好設定 儲存當前視窗幾何尺寸與比例 選單:配置 — cm_ConfigSavePos
偏好設定 切換懸停後設資料提示卡片顯隱 偏好設定 ➔ 檔案檢視 — (偏好設定項)
偏好設定 啟動 macOS 完全磁碟訪問嚮導 選單:配置 — cm_GrantFilesystemAccess
快速鍵 開啟圖形化快速鍵編輯器 Cmd+, ➔ 快速鍵 — cm_Options
快速鍵 全域性撥出/隱藏主視窗快速鍵 Ctrl+Alt+H / ⌘⌥H Ctrl+Alt+H (全域性系統熱鍵)
檔案關聯 開啟副檔名關聯管理器 選單:配置 — cm_FileAssoc
目錄書籤 開啟常用目錄書籤管理器 Ctrl+Shift+D / ⌃⇧D Ctrl+Shift+D cm_ConfigDirHotList
目錄書籤 將當前啟用路徑新增到書籤 選單:書籤 — cm_AddDirToHotlist
常用標籤頁 常用標籤頁工作區管理器 選單:配置 — cm_ConfigFavoriteTabs
常用標籤頁 將當前標籤頁存為常用方案 選單:標籤 — cm_SaveFavoriteTabs
壓縮程式 配置呼叫外部打包壓縮程式 選單:配置 — cm_ConfigArchivers
配置遷移 匯出全部配置為便攜 ZIP 選單:配置 — cm_ExportConfiguration
配置遷移 從 ZIP 歸檔恢復匯入配置 選單:配置 — cm_ImportConfiguration
配置遷移 在面板中直達本地配置目錄 選單:配置 — cm_OpenConfigDirectory
檢視模式 開啟或關閉縮圖網格檢視 Ctrl+Shift+F1 / ⌃⇧F1 Ctrl+Shift+F1 cm_ThumbnailsView
檢視模式 手動重新整理當前面板檔案列表 Ctrl+R / ⌃R Ctrl+R cm_Refresh

準備好掌握全軟體每一條快速鍵與完整的雙矩陣命令速查了嗎?

前往第 9 章:雙矩陣快速鍵全景總覽 →