|
@@ -1,462 +0,0 @@
|
|
-"
|
|
|
|
-" 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
|
|
|
|
-"
|
|
|
|
-"
|
|
|
|
-
|
|
|
|
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
-" 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
|
|
|
|
-"
|
|
|
|
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
-
|
|
|
|
-"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
|
|
|
|
- set fileencodings=utf-8,default,latin1,ucs-bom
|
|
|
|
-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=
|
|
|
|
-set statusline+=\ %<%F\ %h%m%r%y%w
|
|
|
|
-if version >= 730
|
|
|
|
- set statusline+=%q
|
|
|
|
-endif
|
|
|
|
-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
|
|
|
|
-"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-x> :bw<cr>
|
|
|
|
-nmap <c-end> :call CleanClose()<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>
|
|
|
|
-
|
|
|
|
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
-" 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>
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
-" Project environment
|
|
|
|
-"
|
|
|
|
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
-let g:vim_project_file_name = '.vim_project'
|
|
|
|
-
|
|
|
|
-function! GetSubPaths()
|
|
|
|
- let sep = '&'
|
|
|
|
- let paths = ''
|
|
|
|
- let curdir = expand('%:p:h')
|
|
|
|
- while curdir != '/'
|
|
|
|
- let paths = paths . sep . curdir
|
|
|
|
- let curdir = fnamemodify(curdir, ':h')
|
|
|
|
- endwhile
|
|
|
|
- let paths = paths . sep . '/'
|
|
|
|
- return split(paths, sep)
|
|
|
|
-endfunction
|
|
|
|
-
|
|
|
|
-function! GetVimProjectDir()
|
|
|
|
- let projectdir = ''
|
|
|
|
- let subpaths = GetSubPaths()
|
|
|
|
- let length = len(subpaths)
|
|
|
|
- let i = 0
|
|
|
|
- while i < length && projectdir == ''
|
|
|
|
- if subpaths[i] == '/'
|
|
|
|
- let projectfile = '/' . g:vim_project_file_name
|
|
|
|
- else
|
|
|
|
- let projectfile = subpaths[i] . '/' . g:vim_project_file_name
|
|
|
|
- endif
|
|
|
|
- if filereadable(projectfile)
|
|
|
|
- let projectdir = subpaths[i]
|
|
|
|
- endif
|
|
|
|
- let i = i + 1
|
|
|
|
- endwhile
|
|
|
|
- if projectdir == ''
|
|
|
|
- let projectdir = getcwd()
|
|
|
|
- endif
|
|
|
|
- return projectdir
|
|
|
|
-endfunction
|
|
|
|
-
|
|
|
|
-let g:vim_project_dir = GetVimProjectDir()
|
|
|
|
-let g:vim_project_file = vim_project_dir . '/' . vim_project_file_name
|
|
|
|
-
|
|
|
|
-execute 'set tags=' . g:vim_project_dir . '/tags'
|
|
|
|
-
|
|
|
|
-if has('autocmd')
|
|
|
|
- execute "autocmd BufRead " . g:vim_project_file_name . " set filetype=vim"
|
|
|
|
-endif
|
|
|
|
-
|
|
|
|
-if filereadable(g:vim_project_file)
|
|
|
|
- execute 'source ' . g:vim_project_file
|
|
|
|
-endif
|
|
|