| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353 | 
							- "
 
- " Vim configuration file (~/.vimrc)
 
- " 2009, kolter <kolter@openics.org>
 
- "
 
- "  This file is distributed in the hope that it will be useful,
 
- "  but WITHOUT ANY WARRANTY
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " General Settings
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- "Term settings (under tmux)
 
- if &term =~ '^screen'
 
-     "tmux will send xterm-style keys when its xterm-keys option is on
 
-     execute "set <xUp>=\e[1;*A"
 
-     execute "set <xDown>=\e[1;*B"
 
-     execute "set <xRight>=\e[1;*C"
 
-     execute "set <xLeft>=\e[1;*D"
 
- endif
 
- set nocompatible "no vi compatibility
 
- set history=200 "command history size
 
- set undolevels=120 "undo levels count
 
- set autoread "notify file changes
 
- set autochdir "switch to the current file directory
 
- set clipboard+=unnamed "share system clipboard
 
- set backup "enable backups
 
- set backupdir=~/.vim/backups "backup directory
 
- set directory=~/.vim/tmp "directory to place swap files in
 
- "Encoding settings
 
- if has("multi_byte")
 
-     if &termencoding == ""
 
-         let &termencoding = &encoding
 
-     endif
 
-     set encoding=utf-8
 
-     setglobal fileencoding=utf-8 bomb
 
-     set fileencodings=ucs-bom,utf-8,default,latin1
 
- endif
 
- "Syntax highlight
 
- syntax on
 
- set t_Co=256
 
- set bg=dark
 
- colorscheme xoria256
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Interface Settings
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- set title "show title
 
- set number "show line numbers
 
- set ruler "statusline for each window
 
- set visualbell t_vb= "visual beep
 
- set showcmd "show incomplete commands
 
- set confirm "raise a dialog asking what to do instead of failing
 
- "set mouse=a "enable mouse support
 
- set lazyredraw "do not redraw when running macros
 
- 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 wildmenu "display completion menu
 
- set wildmode=list:longest,list:full "content of completion menu
 
- "ignore some extensions while completing filename
 
- "set wildignore=*.o,*.so,,*.gz,*.bz2,*.tar,*.tgz,*.tbz2,*.png,*.jpg,*.jpeg,*.gif
 
- 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
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " keep ctrl-a/ctrl-e for begining/end of line
 
- nmap <c-a> <c-o>I
 
- imap <c-a> <c-o>I
 
- vmap <c-a> <c-o>I
 
- nmap <c-e> <c-o>A
 
- imap <c-e> <c-o>A
 
- vmap <c-e> <c-o>A
 
- "reopen current file
 
- map <F5> :e!<cr>
 
- "using redraw to disable highlighted search patterns
 
- nnoremap <c-L> :nohl<cr><c-L>
 
- "map F1 to open previous buffer
 
- nmap <F1> :bp<cr>
 
- imap <F1> <ESC>:bp<cr>a
 
- "map F2 to open next buffer
 
- nmap <F2> :bn<cr>
 
- imap <F2> <ESC>:bn<cr>a
 
- imap <c-@> <c-x><c-o>
 
- nmap <c-s-left> :tabprevious<cr>
 
- nmap <c-s-right> :tabnext<cr>
 
- nmap <c-t> :tabnew<cr>
 
- nmap <c-k> :tabclose<cr>
 
- nmap <c-x> :bw<cr>
 
- nmap <F6> :vsplit<cr>
 
- nmap <F7> :split<cr>
 
- "ctrl-$arrow to cycle around splitted windows
 
- map <c-left> <c-w>h
 
- map <c-right> <c-w>l
 
- map <c-Up> <c-w>k
 
- map <c-Down> <c-w>j
 
- "ident in visual mode keep selection
 
- vmap > >gv
 
- vmap < <gv
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Editor Settings
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- set fileformats=unix,dos,mac "support all three, in this order
 
- set hidden "make possible to change buffer without saving
 
- set backspace=indent,eol,start "enhance backspacing
 
- set report=0 "agressive reporting
 
- set pastetoggle=<F11> "use <F11> to toggle between 'paste' and 'nopaste'
 
- set nostartofline "leave the cursor where it is
 
- "indent settings
 
- set autoindent
 
- set smartindent
 
- set cindent
 
- "tabs and spaces settings
 
- set expandtab "tab are spaces
 
- set tabstop=4
 
- set shiftwidth=4
 
- set shiftround "round indent to shiftwidth
 
- set softtabstop=4
 
- set showmatch "brace/parenthese/bracket matching
 
- set nowrap "wrap long lines
 
- if has("multi_byte")
 
-     set showbreak="…"
 
- else
 
-     set showbreak="+++"
 
- endif
 
- "show some not printable chars
 
- set list
 
- if has("multi_byte")
 
-     set listchars=trail:·,extends:>,precedes:<,nbsp:•,tab:→\ 
 
- else
 
-     set listchars=tab:>.,trail:·,extends:>,precedes:<,nbsp:%
 
- endif
 
- "search settings
 
- set hlsearch "highlight searches
 
- set incsearch "incremental searches
 
- set ignorecase "ignore case in search patterns
 
- set infercase "smart case support
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Code folding
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- set foldmethod=indent   "fold based on indent
 
- set foldnestmax=10      "deepest fold is 10 levels
 
- set nofoldenable        "dont fold by default
 
- set foldlevel=1
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Email Settings
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- if has('autocmd')
 
-     autocmd BufRead ~/.mutt/tmp/mutt-* set filetype=mail
 
-     autocmd FileType mail set autoindent expandtab formatoptions=tcqn
 
-     autocmd FileType mail vmap D dO[...]<CR>
 
-     autocmd FileType mail call EnableSpellChecking()
 
- endif
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Filetypes Settings
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- filetype plugin indent on
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Global Triggers
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- if has('autocmd')
 
-     "reload Vim config file after saving
 
-     autocmd BufWritePost $MYVIMRC :source $MYVIMRC
 
-     "always limit the width for text files
 
-     autocmd BufRead *.txt set tw=78
 
-     autocmd QuickFixCmdPre * botright cwindow 5
 
- endif
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Spell Checking
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- "set spellfile=~/.vim/spell/words
 
- function! EnableSpellChecking()
 
-     setlocal spell spelllang=fr,en_us
 
-     let b:spell = 1
 
- endfunction
 
- function! DisableSpellChecking()
 
-     setlocal nospell
 
-     unlet b:spell
 
- endfunction
 
- function! ToggleSpell()
 
-     if !exists("b:spell")
 
-         execute 'call EnableSpellChecking()'
 
-     else
 
-         execute 'call DisableSpellChecking()'
 
-     endif
 
- endfunction
 
- nmap <F4> :call ToggleSpell()<CR>
 
- imap <F4> <Esc>:call ToggleSpell()<CR>a
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " TagList setup
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Settings for taglist.vim
 
- " Define ctags parser path
 
- let Tlist_Ctags_Cmd = "~/.vim/bin/ctags-exuberant"
 
- "Tlist pane get focus on toggle
 
- let Tlist_GainFocus_On_ToggleOpen = 1
 
- " Tlist pane is closed once something is selected
 
- "let Tlist_Close_On_Select = 1
 
- " vim exists if the Tlist window is the last remaining
 
- let Tlist_Exit_OnlyWindow = 1
 
- " highlight current position in tag list
 
- let Tlist_Auto_Highlight_Tag = 1
 
- " Update the tag list regularly
 
- let Tlist_Auto_Update = 0
 
- " remove empty lines on Tlist pane
 
- let Tlist_Compact_Format = 1
 
- " show functions/methods signatures
 
- "let Tlist_Display_Prototype = 1
 
- " show only the tags for the current buffer
 
- let Tlist_Show_One_File = 1
 
- " Tlist pane width
 
- 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
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Gundo sidebar on the right
 
- let g:gundo_right = 1
 
- " Gundo layout
 
- let g:gundo_width = 60
 
- let g:gundo_preview_height = 40
 
- " Gundo status lines
 
- let g:gundo_tree_statusline = "Gundo"
 
- let g:gundo_preview_statusline = "Gundo Preview"
 
- " Preview pane below the buffer
 
- let g:gundo_preview_bottom = 1
 
- " Close Gundo panes on revert
 
- let g:gundo_close_on_revert = 1
 
- " F3 key to show/hide Gundo sidebar
 
- nnoremap <F3> :GundoToggle<CR>
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Syntastic extension Setup
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " automatically open/close pane when errors (or not)
 
- let g:syntastic_auto_loc_list = 1
 
- " Redefine errors/warning symbols on sidebar
 
- let g:syntastic_error_symbol = 'EE'
 
- let g:syntastic_style_error_symbol = 'ee'
 
- let g:syntastic_warning_symbol = 'WW'
 
- let g:syntastic_style_warning_symbol = 'Ws'
 
- " redefine default python linter
 
- "let g:syntastic_python_checker = 'pylint'
 
- " add options to python linter
 
- "let g:syntastic_python_checker_args = ''
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " CtrlP extension Setup
 
- "
 
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
- " Change default key
 
- let g:ctrlp_map = '<c-o>'
 
- " Match window height
 
- let g:ctrlp_max_height = 20
 
- " Add a key to search in opened buffers
 
- map <c-b> :CtrlPBuffer<cr>
 
 
  |