第四部・設定與附錄 / 4.1

按鍵配置

爾雅的每一個動作都可以重新綁鍵,連預設值都只是一份 TOML。這一章講預設配置為什麼長這樣、內附的十二套配置差在哪,以及怎麼改成自己的。

閱讀時間 約 14 分鐘 對象 想改快捷鍵的人 先備知識 1.3 版本 v1.0 ・ 2026-08-26
4.1.1

預設配置為什麼是「終端安全」

因為終端機不是每一個組合鍵都收得到。

爾雅內建的預設配置叫 Erya Terminal Safe。它刻意避開三類在很多環境裡按不動的組合:

避開什麼為什麼
Ctrl+功能鍵macOS 把這些留給系統(切換桌面、Mission Control),程式收不到。
依賴 Alt/Option 的組合Option 在 macOS 上是輸入特殊字元用的;很多終端機要另外設定才會把它當成 Meta 送出去。
修飾方向鍵(Alt+Shift+← 這類)不少終端機根本不會回報這種組合。

代價是十六個進階動作預設沒有綁鍵:八個常用語/巨集(見 2.4.8)、四個矩形搬動與一個矩形填滿(見 2.2.6)、兩個段落重排相關(見 3.1.8),以及「顯示游標位置」(狀態列已經有了)。功能都在,只是要自己指定按鍵,完整清單見 4.4.6。

舊的那一套沒有消失

1.0 版原本的完整綁定改名為 Erya Classic 保留下來,按 F2 選一下就換回去。如果你的終端機(Linux 上的 GNOME Terminal、Windows Terminal 等)本來就能回報修飾方向鍵與 Alt 組合,Classic 用起來會順手很多。

4.1.2

內附的十二套配置

在 keymap/ 目錄裡,全部都是可以直接選用的 TOML。

檔案適合誰
erya-terminal-safe.toml預設值。什麼終端機都能用,跨平台最保險。
erya-classic.toml要完整綁定(含常用語、巨集、矩形搬動)的人。
nano.toml習慣 nano 的人。
vim.toml習慣 vim 按鍵的人(不是模式編輯,只是按鍵配置)。
emacs.toml習慣 emacs 的人。
macos.toml想用 macOS 應用程式慣例的人。
vscode.toml/vscode-macos.toml從 VS Code 過來的人。
visual-studio.toml/visual-studio-macos.toml從 Visual Studio 過來的人。
intellij-idea-classic.toml從 IntelliJ IDEA 過來的人。
eclipse.toml從 Eclipse 過來的人。

預設與 Classic 差最多的幾個鍵

動作Terminal SafeErya Classic
開啟檔案Ctrl+OAlt+O
另存新檔F12Ctrl+O
取代Ctrl+RCtrl+H
重做Ctrl+YCtrl+R
刪除目前行Ctrl+DCtrl+Y
複製Ctrl+CCtrl+Insert
關閉頁籤F11Ctrl+F4
上/下一個頁籤F9 / F10Ctrl+Shift+Tab / Ctrl+Tab
十六進位檢視Ctrl+PAlt+H
矩形選取Ctrl+BAlt+B
格式化文件Ctrl+TCtrl+Shift+F
Ctrl+Y 與 Ctrl+R 在兩套裡意思相反

預設配置的 Ctrl+Y 是重做,Classic 的 Ctrl+Y 是刪除整行;Ctrl+R 也剛好倒過來。換配置之後這一組最容易誤按,換完先看一眼提示列(見 1.3.3)。

4.1.3

在系統設定裡換一套

最簡單的做法,不必碰任何檔案。

爾雅 Erya │ 系統設定
↑/↓ 切換項目 ←/→ 選擇 E 編輯按鍵 Enter 套用 Esc 取消
▶ 按鍵配置: ◀ Erya Terminal Safe ▶ 介面語言: ◀ 正體中文 (zh-TW) ▶
Erya Terminal Safe │ 正體中文
使用方向鍵選擇;Enter 會立即套用至所有頁籤
  1. 按 F2 開啟系統設定。
  2. ↑ ↓ 切到「按鍵配置」那一列(選中的那一列會反白,前面有 ▶)。
  3. ← → 換配置。清單是從 keymap/ 目錄讀出來的。
  4. Enter 套用。訊息列說「已套用設定:Erya Classic/正體中文」,而且立刻對所有頁籤生效。
  5. Esc 取消,什麼都不改。
清單是空的?

代表爾雅找不到 keymap/ 目錄。用 ERYA_KEYMAPS_DIR 指到實際位置就好(見 1.2.7)——從 Release 壓縮檔解出來只放執行檔時最常遇到。

4.1.4

按鍵配置編輯器

在爾雅裡面改按鍵,改完另存成自己的 TOML。

爾雅 Erya │ 按鍵配置編輯器 │ Erya Terminal Safe
↑/↓ 選取 Enter 編輯 Delete 停用 S 另存新檔 Esc 返回
儲存文件 Ctrl+S 另存新檔 F12 離開爾雅 Ctrl+X 收錄選取文字或目前行為常用語 插入下一筆常用語 以指定字元填滿矩形選取
Erya Terminal Safe │ 32/62
選取動作後按 Enter 編輯;修改完成後按 S 另存新檔
按鍵做什麼
↑ ↓選動作。左欄是動作說明,右欄是目前綁的按鍵(空白代表沒綁)。
Enter編輯這個動作的按鍵。輸入列會帶出目前的值,多組按鍵用逗號分隔。
Delete停用這個動作(等同留空)。訊息列說「已停用選取動作的快捷鍵」。
S把整份配置另存成新的 TOML。
Esc回到系統設定。
  • 輸入的按鍵無法解析、或跟別的動作衝突時,訊息列會說「無法更新按鍵配置:…」,並且維持原狀。
  • 另存時會問檔名,成功後說「已另存按鍵配置:…」。
  • 另存新檔不會覆寫既有檔案。檔名已存在時會失敗,不會默默蓋掉別人的配置。
怎麼讓自己存的配置變成預設

兩條路:把它存進 keymap/ 目錄,之後 F2 就選得到;或把它放到平台的預設路徑(見 4.1.7),爾雅每次啟動都會自動讀。

4.1.5

設定檔長什麼樣

一個 name 加一個 [bindings] 區段。

先產生一份含全部動作名稱的起點:

erya --print-default-keymap > keymap.toml

範例
name = "我的配置"

[bindings]
save = "Alt+S"
quit = "Ctrl+X"
search = ["Ctrl+W", "Ctrl+F"]
toggle_rectangular_selection = "Alt+M"
redo = []
  • 一個動作可以綁多個按鍵:寫成陣列。
  • 空陣列 [] 代表停用這個動作。
  • 沒列出來的動作沿用預設值。所以只想改兩個鍵的話,檔案裡就只要寫那兩行。
  • name 是顯示在系統設定與第一列標題上的名稱。
  • 動作名稱的完整清單見 4.4,或直接看 --print-default-keymap 的輸出。
4.1.6

按鍵名稱怎麼寫

修飾鍵用 + 串起來,大小寫都可以。

類別可以寫的名稱
修飾鍵Ctrl、Alt、Shift、Super、Hyper、Meta
一般字元A–Z、0–9、符號
功能鍵F1 到 F24
方向與編輯鍵Left、Right、Up、Down、Home、End、PageUp、PageDown、Insert、Delete、Backspace、Tab、Enter、Esc

寫法例:"Ctrl+S"、"Alt+Shift+Right"、"F12"、"ctrl+shift+f"(大小寫不分)。

F1 綁不上去

單獨的 F1 保留給按鍵說明,寫進設定檔會被判定為錯誤(見 1.3.8)。這是刻意留的逃生門——不管配置被改成什麼樣子,永遠有一個鍵叫得出完整清單。

4.1.7

設定檔放哪裡才會被讀到

三種指定方式,由高到低。

  1. --keymap <檔案>——這一次執行用這一份,優先度最高。
  2. ERYA_KEYMAP 環境變數——沒給 --keymap 時用它。
  3. 平台的預設路徑——上面兩個都沒有時,自動去這裡找:
平台路徑
macOS~/Library/Application Support/Erya/keymap.toml
Linux$XDG_CONFIG_HOME/erya/keymap.toml,沒設 XDG 時用 ~/.config/erya/keymap.toml
Windows%APPDATA%\Erya\keymap.toml
預設路徑沒有檔案是正常的

爾雅不會自己建這個檔。找不到就用內建的預設配置,不會有任何警告。反過來說,明確指定的 --keymap 或 ERYA_KEYMAP 讀不到時會在訊息列講話——因為那是你明講要用的東西。

4.1.8

衝突與回退

設定檔有問題時,爾雅照跑,但用預設值。

無法載入按鍵設定,已使用預設值:save 與 search 都綁到 F9
  1. 兩個動作綁到同一個按鍵——直接判定為衝突。因為爾雅無法決定該執行哪一個。
  2. 按鍵名稱拼錯、TOML 語法有問題——解析失敗。
  3. 把單獨的 F1 綁給某個動作——保留鍵,不接受。

以上任何一種情況,爾雅都會回退到完整的預設配置(不是「只忽略有問題的那一行」),並在啟動時的訊息列說明原因。程式不會因此開不起來。

怎麼確認自己現在用的是哪一套

看畫面第二列的提示列(顯示的是實際按鍵),或按 F1 看完整清單,或按 F2 看系統設定上寫的配置名稱。三個地方都會告訴你真相。

4.1.9

常見錯誤

改按鍵最常見的七個狀況。

現象原因與處理
改了設定檔卻沒生效檔案不在會被讀到的位置(4.1.7),或設定檔有問題被回退了(4.1.8)。看啟動時的訊息列。
啟動時說「無法載入按鍵設定」衝突或語法錯誤。訊息列後面會寫原因(4.1.8)。
F2 的配置清單是空的找不到 keymap/ 目錄。設 ERYA_KEYMAPS_DIR(4.1.3)。
綁了 Alt+ 組合按不動終端機沒把 Option/Alt 當成 Meta 送出。改綁別的鍵,或在終端機設定裡開啟(4.1.1)。
綁 F1 被拒絕F1 是保留鍵(4.1.6)。
另存配置失敗檔名已經存在。爾雅不覆寫既有檔案,換個名字(4.1.4)。
換配置之後復原變成刪行Ctrl+Y 在兩套配置裡意思不同(4.1.2)。