pudedocs

使用文件

安裝 pude、熟悉日常流程,再動手寫第一個外掛——就像在 pude 裡閱讀一樣。

版本 0.1.1 · 已發布版本

README.md

總覽

pude 是本地優先的桌面程式碼編輯器。它開啟本機資料夾、編輯文字、呈現 Git、按需啟動終端機並載入本機外掛——其餘的一律不放進核心。

0.1 包含什麼

  • 本機工作區、按需載入的檔案總管與多視窗
  • 多分頁編輯、語法突顯、尋找與取代、Markdown 預覽
  • 透過系統 Git 呈現狀態、提交圖譜、差異與常用操作
  • 以真實 PTY 運作、按需啟動的多個終端機
  • 具權限審核的本機外掛(API 2)與受控 LSP 程序管理器

刻意不做什麼

  • 全專案索引、除錯器或建置系統
  • AI 服務、雲端同步與帳號
  • 外掛市集、自動更新與內附語言伺服器

如何閱讀本文件

檔案總管裡的每個檔案就是一個主題。用狀態列的 Source / Preview 切換,就能看到每一頁背後的 Markdown,與 pude 顯示的完全相同。

install.md

安裝與更新

平台安裝檔
Windows 11 x64pude-windows-x64-setup.exe(未簽署)
macOS 14+ Apple Siliconpude-macos-arm64.dmg
Linux規劃中

驗證下載檔

每個版本都附有 SHA256SUMS.txt,涵蓋兩個安裝檔與授權文件。安裝前請先比對雜湊值:

bash# macOSshasum -a 256 pude-macos-arm64.dmg# Windows (PowerShell)Get-FileHash .\pude-windows-x64-setup.exe -Algorithm SHA256

手動更新

pude 不會自動更新,啟動時也不會連線檢查。更新時請關閉 pude,下載較新的安裝檔並執行。穩定版的「關於」視窗可以查詢最新版本——只在你點擊時才會連線。

using-pude.md

使用教學

開啟工作區

選擇 Open folder(⌘K ⌘O,Windows 為 Ctrl+K Ctrl+O)並挑選本機資料夾。pude 只讀取最上層,展開時才載入子資料夾。全新啟動會顯示最近的專案;每個新視窗都有自己的工作區、分頁與終端機。

檔案總管

  • 建立、重新命名與刪除檔案和資料夾。刪除會移到資源回收筒或垃圾桶,絕不永久刪除。
  • 右鍵選單提供 Copy Path、Copy Relative Path,以及在系統檔案管理器中顯示。
  • 很長的資料夾也保持流暢:只渲染看得到的列。

編輯

  • 分頁支援拖曳排序、釘選、中鍵關閉、關閉其他、關閉右側,以及重新開啟剛關閉的分頁。
  • 尋找與取代支援大小寫、正規表示式與全字比對;⌘G 跳至指定行。
  • 多游標、復原與重做、縮排由 CodeMirror 6 提供。
  • 按住 ⌘(或 Ctrl)在編輯器上捲動滾輪,可將字體大小調整為 11 到 24。
  • Markdown 預設顯示原始碼;用狀態列的 Source / Preview 切換為渲染預覽。

可開啟的檔案

  • UTF-8 與含 BOM 的 UTF-8。無效的 UTF-8 或其他編碼會被拒絕,不會默默轉碼。
  • 超過 5 MiB 的檔案以大型檔案模式開啟:保留編輯與搜尋,關閉重型解析與預覽。
  • 文字檔上限為 20 MiB;支援的圖片會以圖片預覽開啟。

安全地儲存

每個檔案的儲存會依序排隊,並以原子化方式取代原檔。每一行都保留原本的 LF 或 CRLF。若檔案在你尚未儲存時被外部修改,pude 會提供 Compare、Reload 或 Keep Editor Version——絕不默默覆寫任何一方。

未儲存的內容會在本機建立復原檢查點。復原會還原最後一次完成的檢查點,而不是每一次按鍵。

git.md

Git

pude 使用你系統上安裝的 Git,因此 git 必須在 PATH 中。沒有 Git 時仍可正常編輯,Git 面板會顯示無法使用。

狀態與歷史

  • 把側邊欄切到 GIT,即可看到分支,以及已暫存、未暫存、未追蹤、已重新命名與衝突的檔案。
  • 提交圖譜能處理 detached HEAD、尚無提交的分支與多個 refs,並按需載入更早的歷史。
  • 任何變更都能以並排或堆疊方式檢視差異。

操作

暫存與取消暫存、提交、推送與拉取、建立/切換/安全刪除分支、stash 與 pop。指令失敗時,完整的 Git 輸出會顯示在對話框中,而不是一閃即逝的提示。

terminal.md

終端機

用 ⌘`(Windows 為 Ctrl+`)切換面板,需要幾個分頁就開幾個。每個分頁第一次顯示時,才會載入 xterm.js 並啟動自己的 PTY。

  • 隱藏面板時工作階段仍會執行。關閉分頁、切換工作區或關閉視窗,會停止該分頁的程序樹。
  • Windows 使用 ComSpec,未設定時改用 powershell.exe;macOS 與 Linux 使用 SHELL,未設定時改用 /bin/sh。
  • 若工作區的 .venv、venv 或 env 中有 Python 虛擬環境,新終端機會自動啟用它。
  • scrollback 保留 5,000 行,支援 ANSI 色彩、alternate screen、滑鼠追蹤、中日韓文字與輸入法。
settings.md

設定與本機資料

設定作用
Font size編輯器字體大小,也可以用 ⌘ + 滾輪調整。
Tab sizeTab 與縮排的寬度。
Word wrap在編輯器內自動換行。
Hide dot files在檔案總管中隱藏以 . 開頭的名稱。
Watcher excluded paths檔案監看要忽略的路徑,例如建置輸出。

資料存放位置

  • 工作區檔案留在原本的路徑,pude 不會複製到其他地方。
  • 設定與工作階段資訊存放在本機 WebView 儲存空間。
  • 復原檢查點使用 IndexedDB,並有本機備援;清除應用程式儲存空間可能會移除它們。
  • 已安裝的外掛會複製到應用程式資料目錄。
shortcuts.md

鍵盤快捷鍵

動作macOSWindows
儲存⌘SCtrl+S
另存新檔⌘⇧SCtrl+Shift+S
全部儲存⌘⌥SCtrl+Alt+S
開啟檔案⌘OCtrl+O
開啟資料夾⌘K ⌘OCtrl+K Ctrl+O
關閉分頁⌘WCtrl+W
下一個/上一個分頁⌃⇥ / ⌃⇧⇥Ctrl+Tab / Ctrl+Shift+Tab
尋找⌘FCtrl+F
取代⌘⌥FCtrl+H
跳至行號⌘GCtrl+G
命令面板⌘⇧PCtrl+Shift+P
切換終端機⌘`Ctrl+`
字體大小⌘ + 滾輪Ctrl + 滾輪
plugins.md

製作外掛

外掛是一個本機資料夾,包含 plugin.json 宣告檔與一個 JavaScript 進入點。它在 opaque-origin 沙箱裡的 Web Worker 中執行,只能透過非同步的 pude API 與 pude 溝通——無法取得 DOM、CodeMirror、Tauri 或瀏覽器儲存空間。

1. 撰寫宣告檔

以下是 examples/plugins/document-case-toggle 中可直接執行的範例。每個貢獻的命令都需要對應的 onCommand:<id> 事件;另外也可使用 onLanguage:<id>、onFileOpen、onFileSave 與 onWorkspaceOpen。

json{  "id": "pude.example.document-case-toggle",  "name": "Document Case Toggle",  "version": "1.0.0",  "apiVersion": "2",  "entry": "extension.js",  "permissions": ["editor.read", "editor.write", "commands.register", "ui.notification"],  "activationEvents": ["onCommand:pude.example.document-case-toggle.toggleCase"],  "contributes": {    "commands": [      { "command": "pude.example.document-case-toggle.toggleCase", "title": "Toggle Document Case" }    ]  }}

2. 撰寫進入點

jsconst commandId = "pude.example.document-case-toggle.toggleCase";function toggleCase(text) {  return text === text.toUpperCase() ? text.toLowerCase() : text.toUpperCase();}void pude.commands.register(commandId, async () => {  const file = await pude.editor.getFileInfo();  const text = await pude.editor.getText();  if (text.length === 0) {    await pude.ui.notify("The active document is empty.");    return;  }  await pude.editor.applyEdits(file.revision, [    { from: 0, to: text.length, insert: toggleCase(text) },  ]);  await pude.ui.notify("Document case toggled.");});

3. 安裝與迭代

  • 開啟 Plugins,選擇 Install local plugin 並選取資料夾。
  • 檢視要求的權限,只核准外掛真正需要的。按 Cancel 會保留現有版本與授權。
  • 啟用外掛,並從命令面板執行它的命令。
  • 修改後使用 Update from folder;新版本要在你核准後才會取代舊版本。

API 一覽

權限呼叫說明
editor.readgetText、getTextRange、getSelection、getCursor、getFileInfo每次最多 128 Ki 個字碼單位
editor.writeapplyEdits(revision, edits)最多 1,000 筆編輯;走一般的復原與未儲存狀態
workspace.readlist、readFile、getFileInfo、readFileRange每次 128 KiB;大型檔案以範圍讀取
workspace.writewriteFile會檢查衝突;不提供刪除
commands.registercommands.register僅限已宣告的命令
ui.*ui.notify、ui.statusBar、ui.quickPick由 pude 繪製,文字長度有限
git.readgit.getStatus、git.getDiff唯讀
terminal.writeterminal.write只能寫入使用者已開啟的終端機
networknetwork.fetch僅限核准網域的 HTTPS
process.spawn:lsplsp.start、send、cancel、stop僅限已宣告的伺服器

每次執行最多 512 個並行請求、每秒 20 個請求、30 秒逾時、請求 64 KiB 與回應 1 MiB。完整參考請見儲存庫中的 docs/plugin-api-v2.md。

build.md

從原始碼建置

  • Node.js 22.12+、24+ 或 26+,以及 npm 10.9+(建議 Node.js 24)
  • 透過 rustup 安裝的 Rust stable,以及在 PATH 中的 Git
  • macOS:Xcode Command Line Tools · Windows:MSVC C++ 建置工具與 WebView2 · Linux:Tauri 需要的 GTK/WebKit 套件
bashgit clone <repository-url>cd pudenpm ci

常用指令

指令用途
npm run tauri:dev執行原生桌面應用程式
npm run dev在瀏覽器殼層中執行桌面介面(port 5173)
npm run web:dev本網站(port 5174)
npm test桌面版 Vitest 測試
npm run tauri:build建置目前平台的原生安裝包

送出 Pull Request 前

bashnpm run checkcargo test --locked --manifest-path apps/desktop/src-tauri/Cargo.toml
pude — pure code editor以 Tauri、SolidJS、CodeMirror 6 與 Rust 打造。MIT 授權。