怎麼用這一章
依「症狀」找,不是依功能找。
爾雅幾乎所有的回饋都在最後一列(訊息列),所以卡住的時候第一件事永遠是:把最後一列讀完。它多半已經告訴你原因,甚至告訴你該按什麼鍵。
- 看最後一列。黃色是回報、白色是等你輸入、紅色是等你做決定(見 1.3.6)。
- 看第二列。它列著你現在按得動的鍵;如果不是你熟悉的那幾個,代表你不在編輯畫面,或換過按鍵配置。
- 按 Esc。不確定自己在哪裡時,Esc 一定是往回一層,而且不會改壞東西。
- 按 F1。要找某個功能的按鍵時,這份清單就是功能總表。
| 症狀 | 看這一節 |
|---|---|
| 程式跑不起來 | 4.3.2 |
| 檔案打不開、開起來怪怪的 | 4.3.3 |
| 存不進去 | 4.3.4 |
| 按鍵沒反應 | 4.3.5 |
| 畫面破圖、對不齊、顏色怪 | 4.3.6 |
| 中文變亂碼或問號 | 4.3.7 |
| 某個功能整個不見了 | 4.3.8 |
啟動不了
還沒進到爾雅畫面之前的問題。
| 看到的 | 怎麼辦 |
|---|---|
| command not found: erya | 執行檔不在 PATH 裡。先用完整路徑試試看能不能跑(1.2.3)。 |
| Permission denied | chmod +x erya。 |
| macOS 說無法驗證開發者 | xattr -d com.apple.quarantine erya(1.2.3)。 |
| cannot execute binary file | 下載到別的架構。uname -m 重新確認(1.2.2)。 |
| 必須在互動式 Terminal 中執行 | 不能接管線或重導向。直接在終端機裡跑(1.2.8)。 |
| 終端視窗太小 | 至少要 24 欄 × 6 列,實務上請給 80×24(1.2.8)。 |
| 不支援的選項:… | 選項打錯,或檔名以減號開頭——在檔名前面加 --(1.2.6)。 |
| … 是目錄,不是文字檔 | 參數給了目錄。開起來之後再用 Ctrl+O 瀏覽(1.2.5)。 |
開不了檔案
或是開起來跟預期的不一樣。
| 現象 | 原因與處理 |
|---|---|
| 「開啟失敗:Permission denied」 | 沒有讀取權限。用 ls -l 確認,必要時 sudo。 |
| 開起來是空的 | 檔案不存在。爾雅把不存在的路徑當成新檔案,第一次儲存才建立(1.2.5)。檢查路徑有沒有打錯。 |
| 開起來變成十六進位 | 檔案含 NUL 位元組,被當成二進位檔(3.3.5);或是非 UTF-8 的大檔(3.2.1)。 |
| 「detected unsupported text encoding: UTF-16LE」 | UTF-16/UTF-32 不支援。先用其他工具轉成 UTF-8(3.1.1)。 |
| 狀態列寫「大型檔案唯讀」 | 檔案 64 MiB 以上,只能看不能改(3.2)。 |
| 「報告.txt 已在頁籤中開啟」 | 不是錯誤。爾雅切到既有頁籤,避免同一個檔開兩份(2.1.1)。 |
| 只看得到檔案開頭幾行 | 捲動就好。大型檔案是按需讀取的,往下捲才會讀(3.2.3)。 |
存不進去
存檔是最不能出錯的一步,所以爾雅擋得比較兇。
| 現象 | 原因與處理 |
|---|---|
| 「儲存失敗:Permission denied」 | 檔案或所在目錄不可寫。原子儲存要在同目錄建暫存檔,所以目錄權限也算(2.1.6)。 |
| 「儲存失敗:No such file or directory」 | 路徑中的目錄不存在。爾雅不會自動建目錄(2.1.9)。 |
| 「無法將文件儲存成目錄」 | 另存新檔給的是既有目錄,補上檔名(2.1.5)。 |
| 「大型檔案使用唯讀模式;無法修改內容」 | 這個模式不能存檔(3.2.2)。 |
| 「此二進位檔案為唯讀,無法修改」 | 64 MiB 以上的二進位檔是串流唯讀(3.3.8)。 |
| 紅色問「外部檔案已有更新」 | 檔案被別的程式改過。不確定就按 N,再 F12 另存一份(2.1.7)。 |
| 「無法切換為 Big5:…無法表示的字元」 | 目標編碼表示不了文件裡的某個字。爾雅寧可不轉也不破壞內容(3.1.3)。 |
按鍵沒反應
四個可能,由高到低。
- 這個動作預設就沒綁鍵。常用語、巨集、矩形填滿與搬動、顯示游標位置,在預設配置裡全部是空的(2.4.8、2.2.6)。按 F1 看該動作右邊是不是空白。
- 你不在編輯畫面。每個畫面能按的鍵不一樣,看第二列的提示列(1.3.3)。
- 這個模式下不允許。大型檔案唯讀擋掉了編輯類動作(3.2.2);十六進位檢視對文字檔是唯讀的(3.3.1)。訊息列會說原因。
- 終端機沒把這個組合送進來。Alt 組合與修飾方向鍵最常見(4.1.1)。改綁一個按得動的鍵(4.1.4)。
怎麼確定終端機到底送了什麼
把要測的鍵綁到一個看得出效果的動作(例如 cursor_position,它會把游標位置印在訊息列),按下去有反應就代表終端機送得出來。
畫面顯示怪怪的
大部分是終端機那邊的事。
| 現象 | 原因與處理 |
|---|---|
| 中文對不齊、游標跑掉 | 終端機的字型不是等寬,或全形字寬度設定不一致。換一個 CJK 等寬字型(Sarasa、Noto Sans Mono CJK 等)。 |
| 框線變成奇怪的符號 | 終端機或字型不支援框線字元。換字型,或改用支援度好的終端機。 |
| 顏色很難看/看不清楚 | 爾雅用的是終端機的十六色,實際顏色由你的終端機主題決定。調主題就好。 |
| 畫面只剩一行黃字 | 視窗小於 24×6。放大就會自動恢復,內容不會掉(1.2.8)。 |
| 畫面有殘影 | SSH 連線不穩或終端機重繪出問題。改變一下視窗大小可以強制重畫。 |
| 看不到行的後半段 | 行比視窗寬。Ctrl+L 開自動換行,或用 End 水平捲過去(2.2.9)。 |
| 離開之後終端機怪怪的 | 正常情況下爾雅會還原終端狀態。真的異常時執行 reset 即可。 |
字變成亂碼或問號
先分清楚是「開錯編碼」還是「終端機顯示不出來」。
整份都是亂碼
編碼猜錯了。按 F7 換一種試試看,對了再存檔(3.1.2)。狀態列倒數第二格會顯示目前是哪一種。
只有某些字是方框或問號
終端機字型缺字。檔案內容其實是好的——換一個字型就會出現。特別容易發生在 Emoji 與罕用字上。
亂碼的時候不要存檔
如果是編碼猜錯造成的亂碼,存檔會把亂碼寫死進檔案。先按 F7 找到正確的編碼,確認內容正常了再存。真的不確定就先關掉頁籤(不存),原檔還是好的。
功能整個不見了
爾雅沒有選單,所以「找不到」通常是「沒綁鍵」或「這裡不支援」。
| 找不到的東西 | 實際狀況 |
|---|---|
| 全選 | 沒有這個動作。Ctrl+Home 再 Ctrl+Shift+End(2.2.4)。 |
| 取代並逐一確認 | 沒有這個模式,用 F3 + F5 代替(2.3.4)。 |
| 只在選取範圍內取代 | 目前不支援(2.3.7)。 |
| 正規表示式搜尋 | 不支援,搜尋是完全比對(2.3.1)。 |
| 分割視窗 | 沒有。要對照兩份檔案請用雙欄比對(3.4)。 |
| 自動存檔/崩潰還原 | 沒有。只有 Ctrl+S(1.1.7)。 |
| 常用語、巨集、矩形填滿 | 功能在,但預設沒綁鍵(2.4.8)。 |
| 系統剪貼簿整合 | 爾雅的剪貼區是內部的,跨程式請用終端機的複製貼上(2.2.7)。 |
| Git 整合、外掛 | 沒有,也不在範圍內(1.1.2)。 |
還是解決不了
回報問題時附上這幾樣,會快很多。
- 版本:erya --version 的輸出。
- 平台:作業系統與版本、uname -m 的架構、用的是哪一個終端機程式。
- 按鍵配置:按 F2 看到的配置名稱,或你自己的 keymap.toml。
- 訊息列上那一整句話:一字不漏地抄下來,那是最有用的線索。
- 重現步驟:從 erya 檔名 開始,一個鍵一個鍵寫下來。
- 檔案特徵:多大、什麼編碼、什麼換行格式(狀態列上都有)。
先試試看預設配置
回報之前用 ERYA_KEYMAP= erya 或在 F2 切回 Erya Terminal Safe 再試一次。如果問題消失,那就是按鍵配置的事,範圍一下子縮小很多。