status line會在vim底下有一個視窗,用以顯示狀態,透過laststatus=0關閉status line,或laststatus=2永遠開啟status line。透過statusline設定要顯示那些東西,以及如何顯示,基本上就是"%"加上修飾字(vim的document稱為item),如%F會顯示含路徑檔案名稱,%f顯示不含路徑檔案名稱,其他一般文字會被直接顯示,如set statusline=%l/%L,就會顯示"目前所在行數/全部行數",如8/50之類的字眼。而空白要用"\"escape。
有幾個特別的修飾字(item),如"*"是設定highlight group,根據group number設定前景與背景顏色,如
set statusline=%2*%F hi User2 ctermfg=3 ctermbg=0會將%F(顯示含路徑檔案名稱)顯示前景為黃色的字體。
修飾字(item)"<"則會截去過長的字串。修飾字(item)"="會把status分成左右兩部分,即靠左靠右對齊。其餘的翻翻document吧。
以下是我常用的vim設定,
set statusline= set statusline+=%1*\[%n] "buffernr set statusline+=%2*\ %<%F\ "File+path set statusline+=%3*\ %=\ %{''.(&fenc!=''?&fenc:&enc).''}\ "Encoding set statusline+=%4*\ %{(&bomb?\",BOM\":\"\")}\ "Encoding2 set statusline+=%5*\ %{&ff}\ "FileFormat (dos/unix..) set statusline+=%6*\ row:%l/%L\ col:%03c\ (%03p%%)\ "Rownumber/total (%) set statusline+=%0*\ \ %m%r%w\ %P\ \ "Modified? Readonly? Top/bot. hi User2 ctermfg=3 ctermbg=0 hi User6 ctermfg=3 ctermbg=4 set laststatus=2
參考資料
- vim document - statusline, http://vimdoc.sourceforge.net/htmldoc/options.html#'statusline'
- vim document - status-line, http://vimdoc.sourceforge.net/htmldoc/windows.html#status-line
- Learn Vimscript the Hard Way, Status Lines