Selaa lähdekoodia

Update .vimrc: new status line and other minor changes

Emmanuel Bouthenot 12 vuotta sitten
vanhempi
commit
a02cfcd179
1 muutettua tiedostoa jossa 90 lisäystä ja 38 poistoa
  1. 90 38
      .vim/vimrc

+ 90 - 38
.vim/vimrc

@@ -6,6 +6,78 @@
 "  but WITHOUT ANY WARRANTY
 "
 
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Useful functions
+"
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+function! CleanClose()
+    let todelbufNr = bufnr("%")
+    let newbufNr = bufnr("#")
+    if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
+        exe "b".newbufNr
+    else
+        bnext
+    endif
+    if (bufnr("%") == todelbufNr)
+        new
+    endif
+    exe "bd".todelbufNr
+endfunction
+
+function! GetFileSize()
+    let size = ''
+    let bytes = getfsize(expand('%:p'))
+    if bytes <= 1024
+        let size = bytes . 'B'
+    elseif bytes <= 1048576
+        let size = (bytes / 1024) . 'KB'
+    elseif bytes <= (1073741824)
+        let size = (bytes / 1048576) . 'MB'
+    elseif bytes <= 1099511627776
+        let size = (bytes / 1073741824) . 'GB'
+    elseif bytes <= 1125899906842624
+        let size = (bytes / 1099511627776) . 'TB'
+  endif
+    return size
+endfunction
+
+function! GetMode()
+    let curmode = mode()
+    let mode = curmode
+    if curmode == 'n'
+        let mode = 'NORMAL'
+    elseif curmode == 'i'
+        let mode = 'INSERT'
+    elseif curmode == 'R'
+        let mode = 'REPLACE'
+    elseif curmode == 'v'
+        let mode = 'VISUAL'
+    elseif curmode == 'V'
+        if has("multi_byte")
+            let mode = 'V⋅LINE'
+        else
+            let mode = 'VLINE'
+        endif
+    elseif curmode == 'V'
+        if has("multi_byte")
+            let mode = 'V⋅BLOC'
+        else
+            let mode = 'VBLOC'
+        endif
+    endif
+    return mode
+endfunction
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Load extentions through pathogen
+"
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+if filereadable($HOME . "/.vim/bundle/pathogen/autoload/pathogen.vim")
+    source ~/.vim/bundle/pathogen/autoload/pathogen.vim
+    call pathogen#infect()
+endif
+
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 " General Settings
 "
@@ -37,8 +109,8 @@ if has("multi_byte")
         let &termencoding = &encoding
     endif
     set encoding=utf-8
-    setglobal fileencoding=utf-8 bomb
-    set fileencodings=ucs-bom,utf-8,default,latin1
+    setglobal fileencoding=utf-8
+    set fileencodings=utf-8,default,latin1,ucs-bom
 endif
 
 "Syntax highlight
@@ -47,7 +119,6 @@ set t_Co=256
 set bg=dark
 colorscheme xoria256
 
-
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 " Interface Settings
 "
@@ -67,7 +138,20 @@ set ttyfast "fast terminal connection support
 
 set shortmess=a "abbreviations on status line
 set laststatus=2 "always statusline
-set statusline=%<%F\ %h%m%r%y%=%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"}%k\ %-14.(%l,%c%V%)\ %P
+set statusline=
+set statusline+=\ %<%F\ %h%m%r%y%w%q
+set statusline+=\ [%{GetMode()}(%n,%{mode()})]
+set statusline+=\ %{fugitive#statusline()}
+set statusline+=%=
+set statusline+=[
+set statusline+=%{&fileformat}
+set statusline+=,%{&fenc==\"\"?&enc:&fenc}
+set statusline+=%{(exists(\"+bomb\")\ &&\ &bomb)?\",bom\":\"\"}
+set statusline+=%{(exists(\"+binary\")\ &&\ &binary)?\",bin\":\"\"}
+set statusline+=%{&endofline==1?\",eol\":\",noeol\"}
+set statusline+=]
+set statusline+=\ %{GetFileSize()}
+set statusline+=\ %k\ %-14.(%l/%L,%c%V%)\ %P\ %3p%%
 
 set wildmenu "display completion menu
 set wildmode=list:longest,list:full "content of completion menu
@@ -78,7 +162,6 @@ set wildchar=<TAB> "wildcar expansion character
 set modeline "allow last lines of documents set vim mode
 set modelines=3 "number of lines to check for modelines
 
-
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 " Keyboard Settings
 "
@@ -113,6 +196,7 @@ nmap <c-s-up> :tabnew<cr>
 nmap <c-s-down> :tabclose<cr>
 
 nmap <c-x> :bw<cr>
+nmap <c-end> :call CleanClose()<CR>
 
 nmap <F6> :vsplit<cr>
 nmap <F7> :split<cr>
@@ -127,7 +211,6 @@ map <c-Down> <c-w>j
 vmap > >gv
 vmap < <gv
 
-
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 " Editor Settings
 "
@@ -163,7 +246,7 @@ endif
 "show some not printable chars
 set list
 if has("multi_byte")
-    set listchars=trail:·,extends:>,precedes:<,nbsp:•,tab:→\ 
+    set listchars=trail:·,extends:>,precedes:<,nbsp:•,tab:▷\⋅
 else
     set listchars=tab:>.,trail:·,extends:>,precedes:<,nbsp:%
 endif
@@ -269,37 +352,6 @@ let Tlist_WinWidth = 50
 " toggle Tlist with F9
 nnoremap <silent> <F9> :Tlist<CR>
 
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Useful functions
-"
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-function! CleanClose()
-    let todelbufNr = bufnr("%")
-    let newbufNr = bufnr("#")
-    if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
-        exe "b".newbufNr
-    else
-        bnext
-    endif
-    if (bufnr("%") == todelbufNr)
-        new
-    endif
-    exe "bd".todelbufNr
-endfunction
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Load pathogen
-"
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-if filereadable($HOME . "/.vim/bundle/pathogen/autoload/pathogen.vim")
-    source ~/.vim/bundle/pathogen/autoload/pathogen.vim
-    call pathogen#infect()
-endif
-
-
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 " Gundo extension Setup
 "