> ## Documentation Index
> Fetch the complete documentation index at: https://vibex.peatboy.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 程式碼工作台

> 瀏覽、搜尋、編輯和預覽工作區檔案。

程式碼工作台把檔案樹、搜尋、編輯器、Git 差異和內容預覽放在同一個視窗。所有檔案操作都以當前工作區為邊界。

## 檔案樹和搜尋

從右側欄的 **檔案** 圖示開啟檔案樹：

1. 展開工作區目錄，或用檔名直接輸入定位（type-ahead）。
2. 使用 **搜尋工作區檔案** 按內容搜尋，可以切換 **區分大小寫**、**匹配整個詞** 和正則模式。
3. 點選檔案在預覽標籤中開啟；多個標籤可以並列或分欄顯示。

檔案樹的右鍵選單提供 **新建檔案**、**新建資料夾**、**剪下**、**複製**、**貼上**、**複製相對位置**、**複製絕對位置**、**複製檔名**、**重新命名**、**刪除**，以及 **Open In** 子選單（**編輯器** / **預設應用** / **終端機** / **本機終端機** / **檔案管理器**）。檔案也支援拖放移動。

搜尋不會自動修改檔案。大型檔案、不可解碼內容和工作區外路徑會被檔案服務拒絕。

## 編輯和儲存

* 在編輯器中直接修改文本。
* 用 **儲存檔案** 儲存當前檔案（`cmd-s`）。
* 預設開啟自動儲存：停止輸入一段時間（預設 1000 毫秒）後寫回，編輯器或視窗失去焦點時也會寫回；在 **設定 → 工作台** 裡可以改成 **手動**（只用 `cmd-s`）或 **失焦儲存**，並調整空閒延遲。
* 工具欄可以切換 **soft wrap** 和 **whitespace** 顯示。
* 狀態列顯示 `Ln N, Col N`、總行數、語言、編碼（`UTF-8` / `UTF-8 BOM` / `Binary`）、行尾（`LF` / `CRLF` / `Mixed EOL`）和檔案大小。
* 標題欄狀態顯示 **已修改**（有未儲存改動）、**正在儲存** 或 **已儲存**。
* 開啟的檔案會在磁碟上被外部修改時自動跟隨變化；如果你有未儲存改動，Vibex 會保留你的緩衝區並提示衝突，而不是靜默覆蓋。

> [!NOTE]
>
> 編輯器**沒有** Save As：儲存始終寫回原路徑。也沒有檔案內查詢欄——`cmd-f` 開啟的是 **在當前會話中查詢**。

### 大檔案與只讀

以下情況檔案會以只讀方式開啟，並在標題欄標記 **大檔案 - 只讀** 或 **二進位制檔案 - 只讀**：

* 大於 8 MiB
* 超過 5 萬行
* 內容被截斷
* 被識別為二進位制

## 編輯器保護與恢復

每個編輯緩衝區同時記錄已儲存內容、外部 revision 和本地 revision。儲存請求使用樂觀併發控制：如果磁碟上的內容已經變化，儲存會失敗並返回 `file_external_revision_changed`，而不是靜默覆蓋。

有未儲存改動的標籤在關閉時會提示 **Save or discard the dirty editor before closing it**；自動儲存開啟時，待寫回的改動會先落盤再關閉，不再打斷你；切換工作區時同樣會攔截。

權威執行階段重啟後，Vibex 會恢復未儲存的緩衝區，它們仍然標記為 **已修改**，仍需你主動儲存，不會自動覆蓋磁碟檔案。檔案在磁碟上已被刪除時，標題欄狀態顯示 **已刪除 - 恢復緩衝區**。

> [!WARNING]
>
> 刪除檔案會改變工作區內容。刪除前檢視 Git 狀態，必要時先複製內容或建立提交。

## 內容預覽

| 型別 | 副檔名 | 能做什麼 |
| - | - | - |
| Markdown | `md` `mdx` `markdown` | 渲染檢視，支援程式碼塊、表格、任務列表、腳註、公式和圖表（Mermaid / PlantUML）。 |
| 圖片 | `png` `jpg` `jpeg` `gif` `webp` `svg` | 預覽圖片。 |
| PDF | `pdf` | 原生 PDF 預覽，支援 **Fit width**、50%–200% 縮放和頁碼跳轉。 |
| Office | `docx` `xlsx` `ods` `pptx` | 只讀內容預覽。 |
| 音影片 | `mp4` `mp3` `wav` 等 | **不在應用內播放**，交給系統預設應用。 |
| 其他 | 其餘文本格式 | 以編輯器開啟。 |

Markdown 預覽提供 **Contents** 大綱、**Copy document text**、逐塊 **Copy code** / **Copy diff**、圖表原始碼檢視和全屏。工作區相對連結在預覽內開啟，外部連結交給系統瀏覽器。

渲染後的 Markdown 可以直接查詢：按 `cmd-f` 開啟查詢欄，匹配會高亮並迴圈跳轉。大檔案預覽會虛擬化，開啟時把工作分攤到多幀，不會阻塞工作台。

Office 預覽是**只讀的提取檢視**，不是版面還原：

* `docx` —— 標題與段落。
* `xlsx` / `ods` —— **僅第一個工作表**，最多 80 行 × 20 列。
* `pptx` —— 幻燈片文字，最多 200 頁。

PDF 預覽同樣只讀，不支援搜尋、批註和表單。

### 無法預覽的格式

| 格式 | 現象 |
| - | - |
| `.bmp` | 顯示 **不支援的檔案**。 |
| `doc` `xls` `ppt` | 報 `office_legacy_format_unsupported`，請先轉換為新格式。 |
| `odt` `odp` | 沒有處理程序。 |
| `.html` | 以帶高亮的源文本開啟，**不會渲染頁面**。 |
| `.json` `.yaml` `.csv` | 以源文本開啟，不做格式化或表格化。 |
| `.ipynb` | 當作 JSON 文本開啟，不是 Notebook。 |

> [!NOTE]
>
> 語法高亮覆蓋 Rust、TypeScript/TSX、JavaScript、JSON、Markdown、TOML、YAML、Python、Go、Java、CSS、HTML 和 Shell。其它語言以純文本顯示。

## 圖片編輯

圖片編輯器用於**在傳送前標註附件圖片**，不是工作區圖片檔案的通用編輯器。在輸入框的附件區點選 **編輯圖片** 進入。

可用工具：**裁剪**、**筆畫**、**文字**、**矩形框**、**圓形框**、**箭頭**、**馬賽克**，以及 **撤銷編輯** / **重做編輯**。支援 25%–400% 縮放和拖拽平移。

* macOS：`cmd-z` 撤銷，`cmd-shift-z` 重做。
* Windows/Linux：`ctrl-z` 撤銷，`ctrl-shift-z` 重做。

儲存時會重新編碼為 **PNG**，不支援選擇其它格式，也沒有旋轉、縮放、翻轉或圖層。

## 預覽標籤和分欄

拖動標籤或使用標籤選單中的 **向右拆分** / **向下拆分** 把檢視分欄，分欄邊界可以拖動調整。程式碼、差異、終端機和文件都可以放在同一窗口裡。

預覽面板標題欄的 **彈出為獨立視窗** 按鈕把整個多標籤面板彈出為獨立視窗，**嵌入主視窗** 把它收回工作台。面板實體始終沒有易主，所以開啟的標籤、編輯緩衝區和終端機都會跟著走，同一時間只存在一個面板；關閉獨立視窗會把面板交還工作台列，關閉面板則會關掉它的視窗。獨立視窗沿用外殼同一套編輯器操作，`cmd-s` 儲存和跳轉到行都仍然可用。

全屏把工作台列交給預覽面板，側欄和右側欄保留各自的位置、寬度和活動欄，右側欄也保留拖拽調整寬度的手柄。

預覽面板會使用工作台列當前可用的寬度，不再固定為窄列；拖動視窗或摺疊側欄後，程式碼、差異和文件會跟著重新版面。

在 **設定 → 工作台** 的 **預覽視窗** 裡選擇面板預設開啟的位置：**內嵌**（預設，內嵌在工作台列）或 **獨立視窗**；標題欄的彈出和停靠按鈕會寫入同一項設定。

關閉標籤不會刪除檔案或終端機，只關閉當前檢視。

## 標籤操作

* 懸停在檔案或差異標籤上可檢視完整路徑。
* 標籤右鍵選單：**關閉標籤**、**關閉其他標籤**、**關閉左側標籤**、**關閉右側標籤**、**關閉所有標籤**、**向右拆分**、**向下拆分**、**固定標籤** / **取消固定標籤**、**定位檔案**、**Open In**。
* 固定標籤必須先取消固定才能關閉。關閉其它標籤時，固定標籤和未儲存的標籤會保留。
* `cmd-w` 關閉當前預覽標籤；`cmd-tab` / `cmd-shift-tab` 和 `cmd-pageup` / `cmd-pagedown` 迴圈切換標籤。終端機標籤不使用這些快捷鍵。

完整快捷鍵列表見[快捷鍵參考](https://vibex.peatboy.com/docs/zh-TW/reference/shortcuts.md)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.