功能價格文件部落格
取得 mote
← 部落格
設計·2026年8月5日·閱讀時間 4 分鐘

完整保留手動輸入格式的表格編輯

是否曾經只修改了表格裡的一個詞,git diff 卻顯示整張表格都被改動?在 Markdown 中,表格是最常出現偏差的地方。

m
mote
在即時模式中以矩形框選表格儲存格的畫面。只有被選取的儲存格會填成藍色,表格外的句子不會包含在選取範圍內。
在即時模式中以矩形框選表格儲存格的畫面。只有被選取的儲存格會填成藍色,表格外的句子不會包含在選取範圍內。

Markdown 表格會留下手動整理過的痕跡。把豎線排列整齊、用空格調整儲存格的寬度,有時也會刻意打亂對齊。那個樣子本身就是檔案的原文。

但以格狀顯示表格的編輯器必須解析原文。若在重新儲存時自動對齊表格,人所排出的樣子也會跟著改變。

Typora 的表格自動對齊就是廣為人知的這類情況。為了統一欄寬,它會在豎線之間填入空格,並將結果反映到儲存的內容中。這件事已有公開議題整理,也有人另外提出希望能透過選項將它關閉的請求。

mote 決定不這麼做。畫面上會以格狀顯示表格,但檔案裡會原封不動地保留手寫的原文。

只有正在修改的儲存格會顯示原文

在即時模式中點擊表格,格狀外觀依然保持不變。只有游標所在的儲存格會變成原文,豎線符號則會淡淡地顯示。

可以使用 Tab 或方向鍵移動到其他儲存格。在最後一列按下 Enter,就會新增一列。

選取操作也很自然。在儲存格內拖曳時,只會選取文字。若拖曳到儲存格外,就會以矩形選取多個儲存格;複製時,只有選取的儲存格會被製成表格。第一列會成為標題列,對齊方式也會保留。

從表格外開始的選取範圍碰到表格時,整張表格都會被選取。不會只彆扭地選到半張表格。

整列與整欄也都可以移動。將滑鼠移到表格上時,列的左側與欄的上方會出現控點。拖曳到想要的位置即可。

在右鍵選單中,可以新增或刪除列與欄。所有操作都會被當成一次編輯處理,因此可以一次還原。未碰觸的儲存格原文則不會改變。也可以在命令選擇區中找到相同的功能。

在命令選擇區中輸入「表格」的畫面——建立表格與表格:在下方新增列各自連同快捷鍵一起顯示,後方文件中則可看到以格狀繪製的表格
在命令選擇區中輸入「表格」的畫面——建立表格與表格:在下方新增列各自連同快捷鍵一起顯示,後方文件中則可看到以格狀繪製的表格

表格因為一條豎線而垮掉了

一開始,只要在表格內輸入豎線,就一律會在前面加上反斜線。因為當時只考慮到在儲存格內放入豎線字元的情況。

但是,對直接撰寫 Markdown 表格的人來說,豎線是分隔儲存格的符號。輸入新的一列時,連分隔符號都變成了文字,表格也因此垮掉了。

所以後來改成會判斷輸入的位置。

若在一列開頭的位置輸入豎線,就會忽略它。如果後方已經有分隔符號,則會將游標移到下一個儲存格。只有在儲存格內的句子中輸入豎線時,才會進行跳脫。在表格正下方撰寫以豎線開頭的列時,也會接續成既有表格的新列。

這類問題很難只靠閱讀程式碼發現。因此,我們建立了會在實際視窗中點擊表格並拖曳控點的測試。確認表格是否正確顯示、列與欄是否朝預期的方向移動,以及應用程式是否會在過程中當掉。

儲存之後,結果會顯得更清楚。若只修改一個儲存格中的一個詞,git diff 中也只會顯示那一列。

為了對齊欄位而加入的空格、項目符號的星號,以及行尾的兩個空格也都會保持原樣。若檔案原本沒有最後的換行,連這個狀態也會保留。儲存時,可以直接在狀態列看到變更了多少位元組。

在即時模式中修改表格一個儲存格裡的詞並儲存後的狀態列與 git diff。狀態列顯示 +8 −6 B,diff 中只出現包含修改儲存格的一列與一個句子。
在即時模式中修改表格一個儲存格裡的詞並儲存後的狀態列與 git diff。狀態列顯示 +8 −6 B,diff 中只出現包含修改儲存格的一列與一個句子。

也有做出來之後又移除的功能

曾經有一段時間可以用滑鼠調整欄寬。現在已經沒有了。

Markdown 沒有用來儲存欄寬的語法。若要記住寬度,就必須在文件旁建立另一個檔案。這樣一來,那個資料夾只有在有 mote 的情況下才是完整的。透過 git 搬移、在其他裝置上開啟,或使用其他編輯器時,這些資訊就會遺失。

表格框線則透過應用程式設定解決。可以選擇要顯示成格狀,或只在標題列下方畫線。畫面、PDF 與 HTML 匯出也會套用相同的設定。

原則很簡單。無法寫進 Markdown 的值,就放在應用程式設定裡,或是不將它做成功能。

所以我們移除了調整欄寬的功能。欄寬會依照內容自動決定。文件從頭到尾都只會保留為一個 .md 檔案。

將表格重新排得漂亮的編輯器,與原封不動守住我所寫表格的編輯器。

mote 選擇了後者。

← 較舊為什麼只在游標所在的詞彙中顯示 Markdown 符號較新 →為了在任何安裝形式下都呈現相同外觀,我們決定內附 GTK
透過 RSS 持續關注。
只留下文字。
繁體中文
© 2026 mote