在每一行前面加上前綴,代表把同一段固定的字面文字插入一段文字區塊的每一行前面,例如把 apple、banana 和 cherry 這些項目,當前綴是一個減號加一個空白時,就會變成 - apple、- banana 和 - cherry。這項轉換會完整保留原始行的內容,只把前綴放到該行的最前端,並為每一行產生一行裝飾過的結果。前綴並非正規表達式,工具也不會在行內尋找樣式。每一行都會收到完全相同的字面字串,因此括號、反斜線、星號、括弧和錢字號等字元會與輸入時完全一致地出現在輸出中。正是這個特性,讓這項操作在 Markdown 項目符號、程式碼註解、SQL 片段、記錄標籤和 shell 提示字元時都能穩定運作。Lizely 的 為每一行加上前綴和後綴 工具會在瀏覽器本地端執行這項轉換,並提供可顯示完整輸出結果的預覽,以及最後可下載的 UTF-8 TXT 檔。文字絕不會被傳送到伺服器,因此同一個工具也適用於原始程式碼、內部記錄,以及任何不應離開本地機器的資料。

「為每一行加上前綴」的轉換會產生什麼結果
「為每一行加上前綴」的轉換會接收一段文字區塊,完整保留每一行,並在每一行的開頭加上同一個字面字串。輸出會與輸入一對一對應:三行的輸入會產生三行的輸出,唯一的差別在於每行的開頭現在都帶有前綴。
一個簡單的三項目清單,在轉換前看起來像這樣:
- apple
- banana
- cherry
套用前綴 "- " 之後,同樣的三行在轉換後看起來像這樣:
- - apple
- - banana
- - cherry
原始行內的內容不會有任何改變。前端的空白、tab 和縮排都會保留,輸出的行數與輸入的行數相同。這項操作的「字面」特性正是結果可預測的原因:前綴字串不會被當作 regex 解析,不會從樣板展開,也不會被解讀為 Markdown 或 HTML。括號、引號、錢字號、反斜線、星號和括弧都會以前綴欄位中呈現的樣子原樣插入。
「為每一行加上前綴」能解決的具體任務
在 shell、程式碼和內容工作中,為每一行加上同一個開頭字串是最常見的文字操作之一。這個模式適用於任何需要在每一行開頭加上同一段字元序列的場合:
- Markdown 項目符號和工作清單: 一個步驟就能把純文字轉成 - item 或 * item 的條目。
- 原始程式碼註解: 在每一行前面加上 //、#、-- 或 %,讓一個生效的區塊在不用刪除底層文字的情況下變成無作用。
- 記錄和追蹤標籤: 在每一行輸出前加上 [INFO]、[DEBUG] 或 [ERROR],讓記錄彙整工具能夠分組。
- SQL 片段: 透過在每一行前面加上關鍵字和逗點,從「一行一欄」的區塊建立 SELECT 欄位清單或 INSERT 欄位清單。
- 路徑和命名空間的加入: 在端點清單的每一行前面加上像 /api/v1/ 的路由前綴,以產生完整的 URL 路由。
- 加引號和加括號: 在每一行前面加上引號、方括號或括弧,同時由後綴處理結尾字元。
- 縮排和階層標示: 在每一行前面加上兩個或四個空白,以視覺化方式把區塊巢狀嵌入更長的文件中。
3 個步驟為每一行加上前綴
執行字面前綴轉換最快速的方式,是使用一個在本地端執行的瀏覽器工具。「為每一行加上前綴和後綴」可處理多達一百萬個字元,且不需上傳任何內容,並可將結果匯出為 UTF-8 純文字檔。
- 貼上或輸入要裝飾的行。 開啟工具,將最多一百萬個字元的文字放入輸入區。行的順序和原始行內容都會被保留,工具不會裁切任何一行的開頭或結尾、不會合併內部空白、不會改變大小寫、不會移除 tab、不會排序項目,也不會去除重複值。
- 輸入前綴、後綴,或兩者都輸入。 在前綴欄位中輸入字面的開頭字串。如果也需要結尾字串,則一併填入後綴欄位。每個前綴和後綴的上限為 200 個 Unicode 字元,且兩者之中至少要有一個不是空的,因為產生一個完全相同的複本並沒有任何價值。
- 選擇空白行的處理原則並產生結果。 切換是否要讓空白行保持不變,點擊「產生」,檢查預覽,再下載 UTF-8 TXT 檔。修改輸入、前綴、後綴或空白行設定時,先前的結果會被清除,其下載 URL 也會失效,如此可避免在控制項描述不同輸出時,舊的結果仍可被下載。
整個流程都在瀏覽器中執行。文字永遠不會送到遠端伺服器,因此相同的流程也適用於原始程式碼、內部記錄,以及任何應保留在本地機器的資料。
可以直接複製的實作範例
底下的四個範例使用相同的三行輸入和一個簡短的前綴。它們顯示預期結果,讓你在套用到真實文字區塊前能先測試這個模式。前綴顯示在箭頭左側,裝飾後的該行則顯示在箭頭右側。
範例 1:建立 Markdown 項目符號清單
前綴:-
- apple → - apple
- banana → - banana
- cherry → - cherry
這是典型的「產生項目符號清單」情境。在減號後加上空白,可讓渲染後的 Markdown 保持可讀,因為大多數變體會把 "- apple" 和 "-apple" 視為不同的清單標記。
範例 2:把一段程式碼區塊註解掉
前綴:#
- apple → # apple
- banana → # banana
- cherry → # cherry
許多 shell、Python、Ruby 和 YAML 的方言會把開頭的 # 視為註解標記。在一段生效區塊的每一行加上 "# ",就會把該區塊轉換成直譯器忽略的區塊,同時原始文字仍可見且可還原。
範例 3:為記錄行加上狀態標籤
前綴:[INFO]
- apple → [INFO] apple
- banana → [INFO] banana
- cherry → [INFO] cherry
方括號標籤在記錄函式庫和結構化記錄彙整工具中很常見。由於前綴是以字面方式插入,括號和其後的空白會原封不動地保留在輸出中,不需要任何 regex 跳脫。
範例 4:為路徑或路由加上前綴
前綴:/api/v1/
- apple → /api/v1/apple
- banana → /api/v1/banana
- cherry → /api/v1/cherry
每個端點名稱會變成一個完整的合格 URL 路由。正斜線會被視為一般字元:不會對原始行進行 URL 編碼、不會去除空白,也不會做路徑標準化。
如需更長的現成前綴字串清單,涵蓋 SQL、JSON、TOML、Dockerfile 和 CSS,請參考 為每一行加上前綴:樣式速查表 指南。
空白行與邊界情況
直接的範例通常不會有空白行,但實際貼上的文字幾乎都會有。下表說明在空白行、僅含空白的行,以及含有實際內容的行中,每種空白行設定的行為。
| 設定 | 空白行 | 僅含空白的行 | 含有內容的行 |
|---|---|---|---|
| 啟用「跳過空白行」 | 完全原樣保留 | 完全原樣保留(保留空白) | 以前綴和後綴裝飾 |
| 停用「跳過空白行」 | 以前綴和後綴裝飾 | 以前綴和後綴裝飾(保留空白) | 以前綴和後綴裝飾 |
「跳過空白行」選項會把空字串和僅含空白的字串都視為空白。含有任何非空白字元的行一定會被裝飾,而裝飾行內部的空白永遠不會被裁切或合併,因此開頭的 tab 和結尾的空白會原封不動地保留在輸出中。
行尾會被標準化為 LF。Windows 的 CRLF、傳統 Mac 的 CR,以及 Unix 的 LF 分界,在輸入時都會被辨識,並在產生的檔案中轉換成 LF,這表示 Windows 風格的貼上和 Unix 風格的貼上會產生相同的下載結果。輸入中結尾的換行會產生一個邏輯上的最後空白行;啟用「跳過空白行」時,該行會保持空白;停用該選項時,該行則會加上前綴和後綴。這是有意為之,以避免結果悄悄遺失輸入所代表的分界。預覽中的視覺換行不會在實際下載的檔案中新增真正的換行字元。
需要留意的限制與行為
這項工具有其刻意設下的範圍。它只會對「跳過空白行」原則所選定的每一行,串接前綴 + 原始行 + 後綴,並以 LF 串接結果。它不會在行內尋找和取代文字、不會加上序號、不會解析 CSV 欄位、不會編輯 Word 文件,也不會推斷語法。對於從指定起始值開始計數的數字前綴,為文字加上行號 是對應的工具;當目標是改變每一行內的子字串時,尋找和取代文字 是對應的工具。
可下載的檔案是 UTF-8 純文字 Blob。它不包含位元組順序標記、不含 RTF 樣式、不含試算表引號、不含 CSV 跳脫,也不含由檔名衍生的前綴。如果下游格式有自己的跳脫規則,例如 JSON 陣列、SQL IN 子句或 CSV 列,則必須另外為該格式加上引號或進行跳脫。MDN 的 Blob 文件 中的 Blob 參考資料,說明了如何在 JavaScript 中建構 MIME 類型為 text/plain 的 Blob,以及為什麼產生的檔案會是純位元組而非渲染後的 HTML。
輸入上限為一百萬個字元,以保持瀏覽器在大型轉換時的記憶體使用和渲染回應速度,每個前綴和後綴的上限為 200 個 Unicode 字元。由於此操作使用 JavaScript 字串,產生的 Blob 標示為 UTF-8 純文字,因此表情符號和非拉丁文字都會被插入;任何系統字型能渲染的文字系統都會原封不動地通過。空輸入和超過上限的情況會顯示可見的錯誤,而不是產生部分結果,如此可讓下載檔案與預覽所顯示的內容保持一致。
延伸閱讀:如何在 Word 文件中改變換行符號的顏色。