第二部・基本編輯 / 2.1

開檔、頁籤與儲存

把檔案叫進來、在頁籤之間切換、安全地寫回磁碟。這一章也講清楚爾雅怎麼保護你的檔案:原子儲存、外部修改偵測,還有那三個要你按 S/Y/N 的確認列。

閱讀時間 約 14 分鐘 對象 全體使用者 先備知識 1.3 版本 v1.0 ・ 2026-08-26
2.1.1

四種把檔案打開的方法

從命令列帶進來,或在編輯器裡面叫出來。

方法做法與結果
啟動時帶檔名erya a.txt b.txt,一個檔案一個頁籤,停在第一個(見 1.2.5)。
Ctrl+O 檔案對話盒叫出一個可以用方向鍵瀏覽的目錄清單,選中的檔案在新頁籤打開。
Ctrl+N 新頁籤開一個空白的未命名文件,第一次儲存時再決定檔名。
F12 另存新檔把目前的內容存成另一個檔名。存完之後這個頁籤就改成編輯新檔案,原檔留在磁碟上不再被這個頁籤碰。
同一個檔不會被開兩次

要開的路徑如果已經在某個頁籤裡,爾雅會直接切過去,並在訊息列說「報告.txt 已在頁籤中開啟」。這樣就不會出現兩個頁籤各改一半、互相覆蓋的慘劇。

2.1.2

檔案對話盒怎麼操作

五個鍵就夠:上、下、進去、上一層、取消。

爾雅 Erya │ 開啟檔案 │ /home/leo/docs
↑/↓ 選取 Enter/→ 開啟 ←/Backspace 上層 Esc/Q 取消
┌────────────────────────────────────────────┐ │ 📂 .. │ │ 📂 archive │ │▶ 📂 drafts │ │ 報告.txt │ │ 附錄.md │ │ nginx.conf │ └────────────────────────────────────────────┘
/home/leo/docs │ 3/6
↑/↓ 選取 Enter/→ 開啟 ←/Backspace 上層 Esc/Q 取消
按鍵做什麼
↑ ↓上下選一個項目。清單比框高時會自動捲動。
PageUp PageDown整頁跳。
Home End跳到清單最上面/最下面。
Enter 或 →目錄就進去,檔案就開啟。
← 或 Backspace回上一層目錄。回去之後游標會停在你剛剛離開的那個目錄上。
Esc 或 Q整個取消,回到編輯畫面。
  • 目錄前面標 📂,檔案前面留空白,所以視覺上目錄會排在一起。
  • 排序規則是目錄在前、檔案在後,各自再依名稱排(不分大小寫)。
  • 第一列的 .. 是上一層,跟按 ← 一樣。
  • 選中的那一列是灰底黑字加 ▶。
  • 狀態列顯示目前目錄與「第幾個/共幾個」。
  • 對話盒一開始停在目前文件所在的目錄;未命名文件則是目前工作目錄。
Esc 是取消,不是回上一層

這一點跟很多檔案總管不一樣。回上一層是 ← 或 Backspace;Esc 會直接關掉整個對話盒。爾雅的 Esc 在每一個畫面都是「離開這個畫面」,這裡也不例外(見 1.3.7)。

2.1.3

頁籤:新增、切換、關閉

四個鍵,全部在第一列看得到結果。

按鍵動作說明
Ctrl+N新增空白頁籤開一個未命名文件並切過去。
F10下一個頁籤到最後一個再按會繞回第一個。
F9上一個頁籤同樣會繞回去。
F11關閉目前頁籤有未儲存內容時會先問(見 2.1.8)。
關掉最後一個頁籤不會離開程式

爾雅永遠至少留一個頁籤。把最後一個關掉之後,它會留下一個新的空白未命名文件。真的要離開請按 Ctrl+X。

離開程式時,爾雅會逐一檢查每一個背景頁籤有沒有未儲存的內容,有的話就切過去問你(S 存/Y 放棄/N 返回),全部處理完才真的結束。不會出現「以為存好了,結果第三個頁籤沒存到」的狀況。

2.1.4

每個頁籤各自記得什麼

大部分東西是各自獨立的,只有兩樣是共用的。

各頁籤獨立

  • 游標位置與捲動位置
  • 選取範圍與選取種類
  • 復原/重做紀錄(各自最多 100 步)
  • 最近一次的搜尋與取代條件
  • 插入/覆寫模式
  • 自動換行開關
  • 編碼與換行格式
  • 段落寬度

全部頁籤共用

  • 剪貼區——在 A 頁籤複製,可以到 B 頁籤貼上
  • 按鍵配置與介面語言——在系統設定改了會同時套用到所有頁籤(見 4.2.2)

常用語與巨集則是存在檔案裡,載入之後對目前頁籤生效(見 2.4.5)。

跨檔案搬東西就是這樣做

在 A 檔案選一段按 Ctrl+C,F10 切到 B 檔案,Ctrl+V 貼上。爾雅的剪貼區是程式內部的,跟系統剪貼簿是兩回事——要跟其他應用程式互傳,得用終端機自己的選取複製功能(見 2.2.7)。

2.1.5

儲存與另存新檔

Ctrl+S 存回原檔,F12 存成新檔。

  1. 已經有檔名的文件:Ctrl+S 直接寫回去,訊息列出現「已儲存 …」,第一列的星號消失。
  2. 未命名的新文件:Ctrl+S 會自動跳出「另存新檔:」輸入列要你打檔名,打完按 Enter。不必自己記得改按 F12。
  3. 另存新檔:F12 會把目前路徑當預設值放進輸入列,改掉檔名再按 Enter。存完之後這個頁籤就跟著新檔案走了。
Enter 確認 Esc 取消 ←/→ 移動游標 Backspace/Delete 刪除字元
另存新檔:/home/leo/docs/報告-備份.txt
  • 輸入列可以用 ← → 移動游標、Backspace Delete 刪字,路徑太長時會自動捲動。
  • 檔名留空按 Enter 會被擋下來(「檔名不可為空」),並重新問一次。
  • 目標是一個目錄時會失敗並顯示「無法將文件儲存成目錄」。
  • 路徑中的目錄必須先存在,爾雅不會自動幫你建目錄。
2.1.6

存檔時實際發生的事

不是直接往原檔上蓋,是先寫暫存檔再換掉。

① 寫暫存檔 寫在原檔的同一個目錄 ② 落盤 確認內容真的寫進磁碟 ③ 換名字 一步換掉原檔 ④ 還原權限 Unix 上保留原本的模式 任何一步失敗,原檔都維持在存檔前的樣子——不會出現寫到一半的半截檔案 因為暫存檔跟原檔在同一個目錄,換名字才會是同一個檔案系統內的原子操作
圖 2.1.1 原子儲存。中途斷電、磁碟滿了、程式被殺掉,原檔都還是完整的舊版本。
  • 暫存檔一定跟原檔同目錄。所以目錄本身要有寫入權限——只有檔案可寫但目錄不可寫時,儲存會失敗。
  • Unix 上會保留原檔的權限。存完之後 chmod 不會被打回預設值,指令稿的執行位元也還在。
  • 存成 UTF-8 時採用分塊串流寫入,大文件不會為了存檔再複製一份完整內容到記憶體。
  • 存檔會順便把編碼與換行格式的轉換一起寫進去(見 3.1.2)。
2.1.7

檔案被別的程式改掉了

爾雅每 250 毫秒看一次磁碟,反應方式看你有沒有改過。

你沒改過(乾淨的文件)

自動重新載入,訊息列說「偵測到外部更新;已安全重新載入檔案」。你看到的永遠是磁碟上的最新內容。

常見情境:另一個視窗剛存了檔、git pull 換掉了檔案。

你改過(有未儲存內容)

不會自動蓋掉你的東西。訊息列先提醒「檔案已被外部程式修改;儲存前需要確認」,等你按 Ctrl+S 時才跳出紅色確認列。

常見情境:你正在改,同事也存了一版。

外部檔案已有更新:[O]覆寫、[R]重新載入、[N/Esc]取消
按鍵動作結果
O覆寫用你手上的版本蓋過去。磁碟上那一版的改動就沒了。
R重新載入丟掉你的修改,讀進磁碟上的版本。你剛剛打的字就沒了。
N / Esc取消什麼都不做,回到編輯。兩邊的內容都還在,可以先另存新檔再慢慢處理。
不確定的時候按 N,然後 F12 另存一份

O 跟 R 都會弄丟一邊的內容,而且沒辦法復原。安全的做法是先按 N 取消,用 F12 把手上的版本另存成別的檔名,之後再用雙欄比對(F4)把兩版合起來(見 3.4)。

自動重新載入會清掉復原紀錄

乾淨文件被自動重新載入之後,原本的復原/重做紀錄會一併清空——因為那些步驟是對舊內容做的,套回新內容只會出事。這是刻意的行為,但第一次遇到常會嚇一跳。

2.1.8

未儲存就要離開

兩個場合會被攔下來,選項都是 S/Y/N。

文件尚未儲存:S 儲存後離開/Y 放棄變更/N 返回編輯
頁籤尚未儲存:S 儲存後關閉/Y 放棄變更/N 返回編輯
按鍵做什麼
S先存檔再繼續離開/關閉。沒有檔名的話會先問你檔名。
Y放棄變更,直接離開/關閉。這一步之後救不回來。
N / Esc取消,回到編輯。
Y 不是「是」,是「放棄」

看到問句就反射性按 Y 是最容易弄丟內容的動作。爾雅的 Y 一律代表「放棄變更」,要存檔請按 S。三個確認列(離開、關頁籤、外部衝突)都把每個字母的意思寫在同一列上,按之前讀一下。

2.1.9

常見錯誤

存檔與開檔最容易卡住的六個狀況。

現象原因與處理
「儲存失敗:Permission denied」檔案或所在目錄沒有寫入權限。原子儲存需要在同目錄建暫存檔,所以目錄權限也算(2.1.6)。
「儲存失敗:No such file or directory」路徑中的目錄不存在。爾雅不會自動建目錄,先在外面 mkdir -p。
「無法將文件儲存成目錄」另存新檔時給的路徑是既有目錄。補上檔名。
「檔名不可為空」輸入列直接按了 Enter。它會再問一次,打完檔名再確認。
改了半天發現改到舊版本檔案在你開啟之後被外部改過,而你沒注意到訊息列的提醒。先按 N 取消再另存一份(2.1.7)。
復原按不動了文件剛剛被自動重新載入,復原紀錄一起清空了(2.1.7)。