我不常在 BBS 上直接編輯,多半都是在習慣的編輯器上寫好再貼過去。不過問題來了,我寫文章的習慣都是一直打字一直打字,直到段落結束才換行,這樣的文字如果複製起來直接貼到 BBS 上發表,雖然還是能夠正常顯示,但在編輯與回文時就會出現過長的文字而造成如上圖般糟糕的版面效果。
所以我在把文章貼到 BBS 上前,會先進行排版,將每行的字數限制在 72 字元以下。一開始我還乖乖手動一行一行按 Enter,可是這勤勞樸實的作風太不符合以 Lazy Easy 為最高指導原則的程式設計師身分了。經過一番研究後,我用 Vim 來做為我文章自動排版的工具。
要完成任務,首先得在 .vimrc
檔案裡加入以下設定:
set fo+=Bm
set tw=72
說明一下,tw
是 textwidth
,這邊的意思是每行長度為 72,你可以依個人喜好調整數值。而 fo
則是 formatoptions
的縮寫,其中的 Bm 都是與 Multibyte 相關的選項。沒加的話,預設是會採用英文規則,也就把空白當做字的間隔,因此一連串中文文字不會被斷開,那就達不到自動斷行的效果了。
接著,為了讓事情更方便些,可以加入以下的按鍵映射:
noremap <silent> <F7> gggqG
我把 F7 按鈕對應到 gggqG
,這串指令可以分成三個部分:gg
, gq
, G
。
gg
: 將游標移至檔案最前頭
gq
:從游標開始處進行格式重排
G
:將游標移至檔案最尾端
所以以後只要在 Vim 寫好文章,或是把寫好的文字貼到 Vim 上,再按下 F7,就可以立刻排成 BBS 所需要的格式囉。
只剩下一個問題……如果文章中有太長的連結,要是能自動縮網址那就更完美了。