set number set nowrap set cursorline set showmatch set visualbell set t_vb= set mouse=a set hlsearch set smartcase set incsearch set showmode set ruler set autoindent set shiftwidth=4 set softtabstop=4 set undolevels=1000 set backspace=indent,eol,start colo desert set laststatus=2 let g:currentmode={ \ 'n' : 'NORMAL ', \ 'no' : 'N·Operator Pending ', \ 'v' : 'Visual ', \ 'V' : 'V·Line ', \ '\' : 'V·Block ', \ 's' : 'Select ', \ 'S' : 'S·Line ', \ '\' : 'S·Block ', \ 'i' : 'INSERT ', \ 'o' : 'INSERT ', \ 'R' : 'R ', \ 'Rv' : 'V·Replace ', \ 'c' : 'Command ', \ 'cv' : 'Vim Ex ', \ 'ce' : 'Ex ', \ 'r' : 'Prompt ', \ 'rm' : 'More ', \ 'r?' : 'Confirm ', \ '!' : 'Shell ', \ 't' : 'Terminal ' \} " Automatically change the statusline color depending on mode function! ChangeStatuslineColor() if (mode() =~# '\v(n|no)') exe 'hi! StatusLine ctermfg=008' elseif (mode() =~# '\v(v|V)' || g:currentmode[mode()] ==# 'V·Block' || get(g:currentmode, mode(), '') ==# 't') exe 'hi! StatusLine ctermfg=005' elseif (g:currentmode[mode()] ==# 'INSERT') exe 'hi! StatusLine ctermfg=004' else exe 'hi! StatusLine ctermfg=006' endif return '' endfunction " Find out current buffer's size and output it. function! FileSize() let bytes = getfsize(expand('%:p')) if (bytes >= 1024) let kbytes = bytes / 1024 endif if (exists('kbytes') && kbytes >= 1000) let mbytes = kbytes / 1000 endif if bytes <= 0 return '0' endif if (exists('mbytes')) return mbytes . 'MB ' elseif (exists('kbytes')) return kbytes . 'KB ' else return bytes . 'B ' endif endfunction function! ReadOnly() if &readonly || !&modifiable return '' else return '' endfunction set laststatus=2 set statusline= set statusline+=%{ChangeStatuslineColor()} set statusline+=%0*\ %{toupper(g:currentmode[mode()])} set statusline+=%8*\ %<%F\ %{ReadOnly()}\ %m\ %w\ " File+path set statusline+=%* set statusline+=%8*\ %y\ " FileType set statusline+=%7*\ %{(&fenc!=''?&fenc:&enc)}\[%{&ff}]\ " Encoding & Fileformat set statusline+=%8*\ %-3(%{FileSize()}%) " File size set statusline+=%0*\ %3p%%\ \ %l:\ %3c\ " Rownumber/total (%) hi User1 ctermfg=007 hi User2 ctermfg=008 hi User3 ctermfg=008 hi User4 ctermfg=008 hi User5 ctermfg=008 hi User7 ctermfg=008 hi User8 ctermfg=008 hi User9 ctermfg=007