四種把檔案打開的方法
從命令列帶進來,或在編輯器裡面叫出來。
| 方法 | 做法與結果 |
|---|---|
| 啟動時帶檔名 | erya a.txt b.txt,一個檔案一個頁籤,停在第一個(見 1.2.5)。 |
| Ctrl+O 檔案對話盒 | 叫出一個可以用方向鍵瀏覽的目錄清單,選中的檔案在新頁籤打開。 |
| Ctrl+N 新頁籤 | 開一個空白的未命名文件,第一次儲存時再決定檔名。 |
| F12 另存新檔 | 把目前的內容存成另一個檔名。存完之後這個頁籤就改成編輯新檔案,原檔留在磁碟上不再被這個頁籤碰。 |
要開的路徑如果已經在某個頁籤裡,爾雅會直接切過去,並在訊息列說「報告.txt 已在頁籤中開啟」。這樣就不會出現兩個頁籤各改一半、互相覆蓋的慘劇。
檔案對話盒怎麼操作
五個鍵就夠:上、下、進去、上一層、取消。
| 按鍵 | 做什麼 |
|---|---|
| ↑ ↓ | 上下選一個項目。清單比框高時會自動捲動。 |
| PageUp PageDown | 整頁跳。 |
| Home End | 跳到清單最上面/最下面。 |
| Enter 或 → | 目錄就進去,檔案就開啟。 |
| ← 或 Backspace | 回上一層目錄。回去之後游標會停在你剛剛離開的那個目錄上。 |
| Esc 或 Q | 整個取消,回到編輯畫面。 |
- 目錄前面標 📂,檔案前面留空白,所以視覺上目錄會排在一起。
- 排序規則是目錄在前、檔案在後,各自再依名稱排(不分大小寫)。
- 第一列的 .. 是上一層,跟按 ← 一樣。
- 選中的那一列是灰底黑字加 ▶。
- 狀態列顯示目前目錄與「第幾個/共幾個」。
- 對話盒一開始停在目前文件所在的目錄;未命名文件則是目前工作目錄。
這一點跟很多檔案總管不一樣。回上一層是 ← 或 Backspace;Esc 會直接關掉整個對話盒。爾雅的 Esc 在每一個畫面都是「離開這個畫面」,這裡也不例外(見 1.3.7)。
頁籤:新增、切換、關閉
四個鍵,全部在第一列看得到結果。
| 按鍵 | 動作 | 說明 |
|---|---|---|
| Ctrl+N | 新增空白頁籤 | 開一個未命名文件並切過去。 |
| F10 | 下一個頁籤 | 到最後一個再按會繞回第一個。 |
| F9 | 上一個頁籤 | 同樣會繞回去。 |
| F11 | 關閉目前頁籤 | 有未儲存內容時會先問(見 2.1.8)。 |
爾雅永遠至少留一個頁籤。把最後一個關掉之後,它會留下一個新的空白未命名文件。真的要離開請按 Ctrl+X。
離開程式時,爾雅會逐一檢查每一個背景頁籤有沒有未儲存的內容,有的話就切過去問你(S 存/Y 放棄/N 返回),全部處理完才真的結束。不會出現「以為存好了,結果第三個頁籤沒存到」的狀況。
每個頁籤各自記得什麼
大部分東西是各自獨立的,只有兩樣是共用的。
各頁籤獨立
- 游標位置與捲動位置
- 選取範圍與選取種類
- 復原/重做紀錄(各自最多 100 步)
- 最近一次的搜尋與取代條件
- 插入/覆寫模式
- 自動換行開關
- 編碼與換行格式
- 段落寬度
全部頁籤共用
- 剪貼區——在 A 頁籤複製,可以到 B 頁籤貼上
- 按鍵配置與介面語言——在系統設定改了會同時套用到所有頁籤(見 4.2.2)
常用語與巨集則是存在檔案裡,載入之後對目前頁籤生效(見 2.4.5)。
在 A 檔案選一段按 Ctrl+C,F10 切到 B 檔案,Ctrl+V 貼上。爾雅的剪貼區是程式內部的,跟系統剪貼簿是兩回事——要跟其他應用程式互傳,得用終端機自己的選取複製功能(見 2.2.7)。
儲存與另存新檔
Ctrl+S 存回原檔,F12 存成新檔。
- 已經有檔名的文件:Ctrl+S 直接寫回去,訊息列出現「已儲存 …」,第一列的星號消失。
- 未命名的新文件:Ctrl+S 會自動跳出「另存新檔:」輸入列要你打檔名,打完按 Enter。不必自己記得改按 F12。
- 另存新檔:F12 會把目前路徑當預設值放進輸入列,改掉檔名再按 Enter。存完之後這個頁籤就跟著新檔案走了。
- 輸入列可以用 ← → 移動游標、Backspace Delete 刪字,路徑太長時會自動捲動。
- 檔名留空按 Enter 會被擋下來(「檔名不可為空」),並重新問一次。
- 目標是一個目錄時會失敗並顯示「無法將文件儲存成目錄」。
- 路徑中的目錄必須先存在,爾雅不會自動幫你建目錄。
存檔時實際發生的事
不是直接往原檔上蓋,是先寫暫存檔再換掉。
- 暫存檔一定跟原檔同目錄。所以目錄本身要有寫入權限——只有檔案可寫但目錄不可寫時,儲存會失敗。
- Unix 上會保留原檔的權限。存完之後 chmod 不會被打回預設值,指令稿的執行位元也還在。
- 存成 UTF-8 時採用分塊串流寫入,大文件不會為了存檔再複製一份完整內容到記憶體。
- 存檔會順便把編碼與換行格式的轉換一起寫進去(見 3.1.2)。
檔案被別的程式改掉了
爾雅每 250 毫秒看一次磁碟,反應方式看你有沒有改過。
你沒改過(乾淨的文件)
自動重新載入,訊息列說「偵測到外部更新;已安全重新載入檔案」。你看到的永遠是磁碟上的最新內容。
常見情境:另一個視窗剛存了檔、git pull 換掉了檔案。
你改過(有未儲存內容)
不會自動蓋掉你的東西。訊息列先提醒「檔案已被外部程式修改;儲存前需要確認」,等你按 Ctrl+S 時才跳出紅色確認列。
常見情境:你正在改,同事也存了一版。
| 按鍵 | 動作 | 結果 |
|---|---|---|
| O | 覆寫 | 用你手上的版本蓋過去。磁碟上那一版的改動就沒了。 |
| R | 重新載入 | 丟掉你的修改,讀進磁碟上的版本。你剛剛打的字就沒了。 |
| N / Esc | 取消 | 什麼都不做,回到編輯。兩邊的內容都還在,可以先另存新檔再慢慢處理。 |
O 跟 R 都會弄丟一邊的內容,而且沒辦法復原。安全的做法是先按 N 取消,用 F12 把手上的版本另存成別的檔名,之後再用雙欄比對(F4)把兩版合起來(見 3.4)。
乾淨文件被自動重新載入之後,原本的復原/重做紀錄會一併清空——因為那些步驟是對舊內容做的,套回新內容只會出事。這是刻意的行為,但第一次遇到常會嚇一跳。
未儲存就要離開
兩個場合會被攔下來,選項都是 S/Y/N。
| 按鍵 | 做什麼 |
|---|---|
| S | 先存檔再繼續離開/關閉。沒有檔名的話會先問你檔名。 |
| Y | 放棄變更,直接離開/關閉。這一步之後救不回來。 |
| N / Esc | 取消,回到編輯。 |
看到問句就反射性按 Y 是最容易弄丟內容的動作。爾雅的 Y 一律代表「放棄變更」,要存檔請按 S。三個確認列(離開、關頁籤、外部衝突)都把每個字母的意思寫在同一列上,按之前讀一下。
常見錯誤
存檔與開檔最容易卡住的六個狀況。
| 現象 | 原因與處理 |
|---|---|
| 「儲存失敗:Permission denied」 | 檔案或所在目錄沒有寫入權限。原子儲存需要在同目錄建暫存檔,所以目錄權限也算(2.1.6)。 |
| 「儲存失敗:No such file or directory」 | 路徑中的目錄不存在。爾雅不會自動建目錄,先在外面 mkdir -p。 |
| 「無法將文件儲存成目錄」 | 另存新檔時給的路徑是既有目錄。補上檔名。 |
| 「檔名不可為空」 | 輸入列直接按了 Enter。它會再問一次,打完檔名再確認。 |
| 改了半天發現改到舊版本 | 檔案在你開啟之後被外部改過,而你沒注意到訊息列的提醒。先按 N 取消再另存一份(2.1.7)。 |
| 復原按不動了 | 文件剛剛被自動重新載入,復原紀錄一起清空了(2.1.7)。 |