Notepad--:把「比對」放進核心的輕量跨平台文字編輯器

摘要

Notepad-- 是一款由華人開發者製作的跨平台文字編輯器,開源免費、沒有廣告、不鎖功能,內建語法高亮、檔案比對、資料夾比對與批次尋找取代。

推薦
軟體名稱
Notepad--
版本
3.9
收費
免費
開源
開源
更新時間
2026-10-06 20:54

一個文字編輯器的價值,在於它拒絕長大

Notepad-- 是一款簡單的文字編輯器:它能開文字、能顯示文字、能改文字,然後大致就停在這裡。它跑在 Windows、macOS 與 Linux 上,開源免費,沒有任何廣告,也沒有任何功能被鎖在付費牆後面。這四句話讀起來像廣告詞,但其實是一份規格:它們決定了誰一年之後還會把這支程式留在機器上。

真正有意思的決定,是作者在那個很窄的框子裡放了什麼。除了編輯區本身,還有語法高亮、檔案比對、資料夾比對,以及批次尋找取代。這四項裡有三項根本不算「編輯」功能 —— 它們處理的是你已經有的文字,跟你正要打出來的文字,是兩個不同的問題。

主視窗

跨平台是關於習慣的承諾,不是關於安裝檔的承諾

能在三個系統上跑,宣稱起來很容易,做到卻難得多。人對跨平台編輯器的期待,其實比行銷話術講的窄:同樣的快速鍵要能用,同一個檔案打開來要長得一樣,而且在一台機器上寫好的檔案,不該在另一台上被悄悄改寫。一支能正確打開檔案、卻用不同的換行符號存回去的程式,技術上守住了承諾,實務上已經把它弄壞了。

這也是為什麼那些不起眼的細節,比功能表上的項目更關鍵。換行符號、字元編碼,以及位元組順序標記在來回一趟之後還在不在,決定了一個檔案編輯完之後還是不是同一個檔案。這些東西全都不會出現在工具列的截圖上,但人們說一支編輯器「可靠」時,講的就是這些。

純文字在傳遞途中壞掉,通常是三件看不見的事

幾乎每一個「檔案壞了」的故事,追到最後都是三個沒有人刻意做出的決定。第一個是編碼:同一串位元組當成 UTF-8 讀、當成 GBK 讀、當成 Latin-1 讀,會得到三份不同的內容,而其中只有一份是當初寫下的那一份。第二個是換行:Windows 的傳統用兩個字元結束一行,Unix 的傳統用一個,而一支會在兩者之間悄悄轉換的編輯器,會把「改了一行」變成版本控制裡的「整個檔案都改了」。第三個是位元組順序標記,檔案開頭那幾個位元組,有的工具會寫、有的工具要求、有的工具直接拒收。

而跨平台編輯器正好是三件事同時撞上的地方,因為同一個檔案被期待在對這三件事看法完全不同的系統之間旅行。安靜地把這件事處理好,並在需要的時候讓選擇看得見,價值勝過工具列上再多按鈕。

批次尋找與取代

換掉一個詞很簡單。在四百個檔案裡換掉一個詞,是穿著同一件衣服的另一種操作,差別全在邊界上。範圍是什麼:一個資料夾、某種副檔名,還是只有剛好開著的那幾個分頁。什麼算命中:完全相符、只比對整詞,還是樣式。那些你開著但還沒存檔的檔案怎麼辦。以及當替換不是一詞換一詞,而是帶著捕獲片段的樣式時,又要怎麼算。

把「安全的一次批次修改」跟「消失的一整個下午」分開的習慣只有一個,就是預覽:在按下確定之前先看命中清單與數量,如果數量比預期大,就停下來把樣式再讀一遍。批次操作危險,不是因為它強大,而是因為它快 —— 快會拿掉那個原本會讓人察覺不對勁的瞬間。

檔案比對

同一段文字的兩個版本

對很多人來說,檔案比對才是這支程式存在的理由。它底下的想法是對齊:找出兩份檔案都同意的最大行集合,把這些行當成錨點,兩個錨點之間的一切就是變動。這就是為什麼「搬移」而不是「修改」的一段內容,會顯示成一處刪除加一處新增 —— 演算法沒有「意圖」這個概念,只有順序。

在一行變動裡再逐字元比一次,是同一套原則的第二輪,而它正是讓「只改了一個逗號」看得出來、而不是把整段標成不同的關鍵。實務上的價值不在顏色,而在於能在五秒內回答一個問題:這兩份檔案是真的不同,還是只是空白不一樣。

比對資料夾,問的是另一個問題

資料夾比對回答的,是檔案比對答不出來的那一題:這兩棵樹哪裡不一樣。有用的輸出是一份清單而不是一份差異 —— 完全相同、內容不同、只在左邊、只在右邊 —— 接下來的工作,就是只往「不相同」的那幾列裡鑽。對任何一個會保留設定目錄副本、在兩台機器之間同步專案、或者想知道安裝程式到底動了什麼的人來說,那份清單就是全部。

跨平台

顏色是閱讀輔助,不是檢查

語法高亮經常被誤認成一種「理解」。它實際做的事窄得多、也有用得多:一份語法定義描述哪些字元序列是關鍵字、字串、註解與數字,編輯器把它們塗上顏色。它不解析程式、不做任何解析度上的判斷,有顏色的文字也不等於正確的文字。它真正辦到的是讓結構一眼可見 —— 一個沒有結束的字串吞掉了半個檔案、一段永遠沒關閉的註解、一個開錯位置的括號。

開源、免費,而且沒有東西要賣給你

開源與沒有廣告不是同一件事,分清楚有幫助。開源意味著程式碼可以被讀、被編譯、被分叉,也意味著某個功能不會因為一個商業決定而從你腳下被抽走。沒有廣告意味著介面在你工作時不會跟你的注意力討價還價,也沒有哪個功能被故意做差,好讓升級看起來划算。對一支要拿來放設定檔、日誌與腳本的程式來說,這兩件事不是意識形態,而是它為什麼能一直可靠。

它適合哪裡

老實的總結很窄。它不是整合開發環境:不編譯、不重構、不除錯,也不該有人期待它做這些。它是那支比大型工具更早開好畫面的編輯器,是能毫無怨言吃下一百 MB 日誌的那一支,也是它的比對視窗能讓「哪一份才是現在的版本」這場爭論當場結束的那一支。小、免費、跨平台,在這裡不是妥協,而是全部的重點。