そろそろ自分の statusline をさらしてみるか

こんな感じです。どうでっしゃろ。

" set statusline
" function inspired by http://memo.officebrook.net/20050512.html#p01
function! GetCharCodeForSTL()
  let str = ''

  if &fileencoding ==? 'utf-8'
    let str = '[UTF-8]'
  elseif &fileencoding ==? 'cp932' || &fileencoding ==? 'sjis'
    let str = '[SJIS]'
  elseif &fileencoding ==? 'euc-jp'
    let str = '[EUC-JP]'
  else
    let str = '[ETC]'
  endif

  if &fileformat == 'unix'
    let str = str . '[LF]'
  elseif &fileformat == 'dos'
    let str = str . '[CRLF]'
  elseif &fileformat == 'mac'
    let str = str . '[CR]'
  endif

  return str
endfunction

set statusline=%m%r%y%{GetCharCodeForSTL()}\ %1.50F\ %=\ L.\ %l\ /\ %L\ \ C.\ %c 

表示は、だいたい以下のようになる。括弧に囲まれた部分が動的に決定される*1

[(変更の有無)][(ReadOnlyかどうか)][(ファイルタイプ)][(文字コード)][(改行コード)] (ファイル名の絶対パス:最大50文字)  L. (現在行) / (最大行)  C. (現在列)

*1:ただしファイル名の絶対パスまでが左寄せで、それ以降は右寄せ。