+ " Display unexpected 'fileformat', 'fileencoding' and 'bomb' settings.
+ function! s:StatuslineFileFormat()
+ if &fileformat != 'unix'
+ return '[' . &fileformat . ']'
+ else
+ return ''
+ endif
+ endfunction
+ function! s:StatuslineFileEncoding()
+ if &fileencoding != '' && &fileencoding != 'utf-8'
+ \ && &filetype != 'help'
+ return '[' . &fileencoding . ']'
+ else
+ return ''
+ endif
+ endfunction
+ function! s:StatuslineFileBOMB()
+ if exists('+bomb') && &bomb
+ return '[BOM]'
+ else
+ return ''
+ endif
+ endfunction
+
+ " Return current syntax group in brackets or nothing if there's none.
+ function! s:StatuslineSyntaxGroup()
+ let l:group = synIDattr(synID(line('.'), col('.'), 1), 'name')
+ if l:group != ''
+ return '[' . l:group . '] '
+ else
+ return ''
+ endif
+ endfunction
+
+ " Short function names to make 'statusline' more readable.
+ function! SBC()
+ return s:StatuslineBufferCount()
+ endfunction
+ function! SRF()
+ return s:StatuslineRelativeFilename()
+ endfunction
+ function! SFF()
+ return s:StatuslineFileFormat()
+ endfunction
+ function! SFE()
+ return s:StatuslineFileEncoding()
+ endfunction
+ function! SFB()
+ return s:StatuslineFileBOMB()
+ endfunction
+ function! SSG()
+ return s:StatuslineSyntaxGroup()
+ endfunction
+