123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- "
- " Vim configuration file (~/.vimrc)
- " 2009-2014, kolter <kolter@openics.org>
- "
- " This file is distributed in the hope that it will be useful,
- " but WITHOUT ANY WARRANTY
- "
- " {{{ Load Plugins
- call plug#begin('~/.vim/plugged')
- Plug 'junegunn/indentLine'
- Plug 'sjl/gundo.vim'
- Plug 'scrooloose/syntastic'
- Plug 'majutsushi/tagbar'
- Plug 'scrooloose/nerdtree'
- Plug 'bling/vim-airline'
- Plug 'kien/ctrlp.vim'
- Plug 'tpope/vim-fugitive'
- Plug 'airblade/vim-gitgutter'
- Plug 'gregsexton/gitv'
- Plug 'terryma/vim-multiple-cursors'
- Plug 'jlanzarotta/bufexplorer'
- Plug 'flazz/vim-colorschemes'
- Plug 'vim-scripts/comments.vim'
- Plug 'ervandew/supertab'
- Plug 'rstacruz/sparkup'
- Plug 'Lokaltog/vim-easymotion'
- Plug 'editorconfig/editorconfig-vim'
- Plug 'godlygeek/tabular'
- Plug 'plasticboy/vim-markdown'
- Plug 'http://git.openics.org/kolter/vim-bindzone.git'
- call plug#end()
- " }}}
- " {{{ General Settings
- " Filetypes Settings
- if has('autocmd')
- filetype plugin indent on
- "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
- "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=1000 "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
- set fileencodings=utf-8,default,latin1,ucs-bom
- endif
- "Syntax highlight
- syntax on
- set t_Co=256
- set bg=dark
- colorscheme grb256
- " }}}
- " {{{ 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 ttimeout
- set ttimeoutlen=100
- set scrolloff=999
- set sidescrolloff=5
- set shortmess=a "abbreviations on status line
- set laststatus=2 "always statusline
- 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-s-up> :tabnew<cr>
- nmap <c-s-down> :tabclose<cr>
- nmap <c-d> :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 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 backspace=indent,eol,start "enhance backspacing
- set smartindent
- set cindent
- set smarttab
- "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 nocindent formatoptions=tcqn
- autocmd FileType mail vmap D dO[...]<CR>
- autocmd FileType mail call EnableSpellChecking()
- 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
- " }}}
- " {{{ 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>
- " }}}
- " {{{ airline extension setup
- let g:airline_powerline_fonts=1
- let g:airline#extensions#tabline#enabled=1
- " }}}
- " {{{ tagbar extension setup
- nmap <F8> :TagbarToggle<CR>
- " }}}
- " vim: foldmethod=marker foldlevel=0 foldenable
|