為每行加上前綴的速查表是一份精簡的參考資料,列出最常見的標記 — 項目符號、註解字元、引號、SQL 或 shell 片段、記錄標籤,以及 HTML 包裝標籤 — 並搭配一個能逐字套用到每一行的單一工具。基於瀏覽器的 為每行加上前綴和後綴 工具正是為此而生:貼上你的每一行文字,輸入前綴(或後綴,或兩者皆輸入),然後將裝飾後的結果下載為 UTF-8 TXT 檔。這個轉換刻意採用逐字處理,因此括號、反斜線、錢字號、星號和括弧等字元都會照原樣插入 — 沒有 regex、沒有替代符號展開,也沒有 Markdown 或 HTML 解析會讓你感到意外。最多可處理 1,000,000 個字元,原始行序與空白會完整保留,且檔案是在瀏覽器本地端產生。這種可預測性正是讓模式速查表之所以有用的原因:每一個模式都能放心地在任何文字來源上重複產生相同的結果,無需上傳到任何伺服器。

add prefix to each line cheat sheet
add prefix to each line cheat sheet

「為每行加上前綴」速查表實際涵蓋的內容

大多數搜尋「為每行加上前綴」速查表的人,並不是想找一篇長篇文章 — 他們想要的是一張快速參考卡,把反覆出現的編輯工作對應到已知的字元模式。反覆出現的工作可以歸納為幾個類別:將純文字轉為項目符號或編號清單、加上註解標記使其成為合法的 shell 或設定檔內容、在 SQL、JSON 或程式碼中用引號或括弧包圍識別字、在記錄行加上標籤或時間戳記,以及將每行用 HTML 或 XML 標籤包起來。一旦辨識出模式,同樣的一行規則(「如果我在每行開頭寫 - ,就能得到 Markdown 項目清單」)就能套用到任何輸入。

當底層工具具有可預測性時,速查表才真正發揮作用:它不應該悄悄刪除空白、修改標點、變更大小寫、排序條目、去除重複值,或刪除最後一個空行。為每行加上前綴和後綴工具的說明明確指出不會做上述任何動作 — 它會對每個邏輯輸入行串接 前綴 + 原始行 + 後綴,以 CRLF/CR/LF 進行分割,並將輸出統一為 LF,然後就此打住。這意味著你根據它建立的速查表,在下一個檔案、下一位同事的機器、以及下次從不同編輯器貼上時,仍然能正常運作。相同的模式在免 API 指南 無需 API 為每行加上前綴 中有完整說明,該指南以此工具作為參考實作。

三步驟為每行加上前綴

  1. 貼上或輸入你想要裝飾的每一行。輸入最多接受 1,000,000 個字元。工具會保留行序與每行內部的空白,包括你可能用於巢狀縮排或程式碼區塊的開頭空白與定位字元。
  2. 輸入前綴、後綴或兩者皆輸入,並選擇是否保留空白行不變。每個前綴與後綴都是最多 200 個 Unicode 字元的純文字,且兩者中至少要有一個不是空的。一個名為 保留空白行不變 的切換選項,決定空白行或僅含空白的行是否會被裝飾或原樣保留。
  3. 產生精確的結果、檢查預覽,並下載 UTF-8 TXT 檔。預覽使用預先格式化區域,因此空白與換行都能忠實呈現。任何控制項的編輯都會清除舊結果並撤銷其下載網址,因此在設定描述不同輸出後,舊檔案不會被意外儲存。

常見的前綴與後綴模式

下表就是速查表本身:針對每個常見工作,列出你應該在工具中輸入的前綴或後綴。標記中的空白與定位字元是有意安排的 — 它們會照原樣插入。

工作前綴後綴
Markdown 無序項目符號- (空白)
Markdown 編號項目符號1. (空白)
Shell、Python 或 YAML 註解# (空白)
SQL 字串常值''
引號識別字(類 JSON)""
以逗號分隔的行清單(空白),
HTML 清單項目包裝<li></li>
Markdown 行內程式碼區段``
記錄時間戳記預留位置[2024-01-15 14:30:00] (空白)
中括號核取標記[ ] (空白)

關於使用此表的兩個簡短說明。第一,像「以逗號分隔的行清單」這類工作只需要後綴,因為前綴是空的;只要兩個標記中至少有一個不是空的,工具仍會執行。第二,這些標記都是真實的 Unicode 文字,因此像 📌 這類表情符號,或像 注意: 這類 CJK 字串,使用方式與 ASCII 完全相同 — 產生的檔案是標示為 UTF-8 純文字的 Blob,只要下游編輯器能讀取 UTF-8,結果就能正確呈現。

空白行、空白字元與換行符的處理方式

由於轉換是逐行進行的,空白行、僅含空白的行、以及最後換行的處理方式,正是大多數意外發生的地方。工具為此提供一個明確的切換選項,其餘部分則記載於運作契約中,以確保結果可重現。

輸入情況「保留空白行不變」開啟時此選項關閉時
空行原樣保留為空行加上前綴與後綴
僅含空白或定位字元的行保留相同的空白加上前綴與後綴
包含實際內容的行加上前綴與後綴加上前綴與後綴
輸入末尾的換行最後一個空邏輯行保持空白最後一個空邏輯行會被裝飾
CRLF 或傳統 Mac 的 CR 換行辨識並統一為 LF辨識並統一為 LF

此切換選項絕不會刪除任何一行 — 它只決定是否套用裝飾。因此當選項開啟時,僅含一個空格的行會以原樣保留為該空格,這在需要保留段落間視覺間距時是正確的行為。如果你希望每個邏輯行(包括尾端換行後的最後一個空行)都套用相同的標記,請關閉此選項。預覽視窗中的視覺換行並不會在下載的檔案中新增真正的換行,因此下載的 TXT 中長行仍然會是長行。

何時該選擇其他工具

此速查表涵蓋的是純文字裝飾,但有幾個常見需求落在它的範圍之外。如果你需要在每行前加上連續編號(1、2、3 …)而非固定前綴,請改用 為文字加上行號,因為編號產生、前導零和自訂分隔符是各自獨立的工作。如果你需要將每行中的某段文字替換為另一段 — 例如將 foo 全部改寫為 bar — 那是純文字子字串替換,屬於 尋找與取代文字 的範疇。如果結果需要是 JSON 陣列、SQL IN 清單或 CSV 列,專屬的 為每行加上引號 工具會套用各格式實際需要的跳脫規則,包括此速查表刻意忽略的逗號與雙引號規則。

最後,如果你覺得速查表本身沒問題,但單一剪貼區的容量不足以處理大量內容(通常是數十萬行的層級),請先使用 文字檔分割工具 分割來源,對每個部分套用相同的前綴與後綴,再用 文字檔合併工具 重新組合。即使在會讓一般文字編輯器卡住的大型檔案上,這三個步驟仍都在瀏覽器本地端執行,因此工作流程保持可預測、可稽核,且完全無需上傳。

延伸閱讀:無需 Regex 在 Notepad++ 中為每行加上引號