Vim 已經有一個盤古之白的專案 PanGu.vim,但我還是另外寫了 bootleq/vim-wordword。
根源問題
大部分語言書寫都是以空白作文字區隔,例如 this one
兩字中間的空白;
而中文是一個例外,我們每個字都是連在一起的
。
當混用兩種文字系統時,例如「word文字word
」,就不知道交接處要不要加空白了。
雖然不會有「word文
是一個字,字word
是另一個字」的問題,但「word文字
」連在一起又似乎和「word 文字
」有不同意境。
Word divider 相關花絮
-
西方歷史上也有完全不使用空白和符號間隔的 scriptio continua:
-
日文一般來說和中文一樣,但包含大量假名時可以有例外,比較像韓文(未確認),在真正斷字的地方加上空白。
-
CSS4 有個 text spacing 草案,但好像沒有明確相關的部分。
精簡的 Vim 盤古之白實作
因為 Vim 的 regexp 可以搜尋 word boundary,又 multibyte 文字永遠被視為 word(見 'iskeyword'
選項),所以其實只要 :%substitute/\>\<./ \0/g
就搞定了加空白的工作。
Vim plugin 適合 Unix 哲學
比起處理更多(甚至包含未有定論的)排版規則,專心做好「加上空白」比較重要。
而要發揮工具的最大價值,應儘力減少在 Vim 中使用它的成本,例如提供 user-operator 或其它容易呼叫的介面。