最近發現 vim-airline 這個 plugin,其實就是 powerline 的 copy,vim powerline 也出來蠻久了,大部分人其實都不會去深入研究要怎樣設定 statusline,所以像這種可以很快速套用,又好看功能又好的 plugin 都很受歡迎。
我以前都是用自己寫的設定,還接了 hahhah.vim,長得比較簡單:
一直沒換到 powerline 其實主要原因是它要有裝 patch 過,加了幾個新符號的字型才好看,然後這有些麻煩所以一直沒嘗試。不過前兩天看到的 airline ,README 列出的一些差異讓我對它蠻感興趣的,讓我感興趣的點是:
- airline 是 pure vim script,powerline 則有一些 python
- 簡單, 速度也比 powerline 快
而且它也支援 powerline patch 過的字形來做類似的效果,只是一開始設定時發現右邊的三角形位置怎麼一直不太正確,研究了一下發現是全形半形的問題:
在 iTerm 裡面有個設定是Treat ambiguous-width characters as double width
,開啟這個選項,iTerm 就會把沒有定義字寬的一些字元當成是兩倍寬,也就是全形字,會有這個選項是因為一些符號、標點,在 Unicode 裡面不論是中文英文都是共用的,但是在中文的世界會習慣是用全形,如果設定錯,會出現的問題其實也沒很大,通常是全行字的符號塞進半形的空間,或是反過來,不過如果有排版需求的話就很重要了,像是 BBS,所以要用 iTerm 上 BBS 這個選項就很重要了。
powerline 自訂的這幾個 新符號,也是歸類在這些字元,剛好我以前都會用 iTerm 上工作站連 BBS,所以那個選項有開,結果就是如上圖下半部那樣,符號的右邊多了一個空白的寬度。這張圖上下的差異只有該選項有沒有打開而已,不過雖然搞清楚問題在哪,我最後還是決定不要用三角形,只用了 branch 的符號而已,結果就是本文的第一張圖那樣。