" Author: Samir Benmendil <samir.benmendil[at]gmail[dot]com>
"
-filetype plugin indent on
+filetype off
+set rtp+=~/.vim/bundle/vundle/
+call vundle#rc()
+
+Bundle 'gmarik/vundle'
+Bundle 'wincent/Command-T'
+Bundle 'bling/vim-airline'
+Bundle 'ctrlp.vim'
+Bundle 'fugitive.vim'
+Bundle 'Gundo'
+Bundle 'The-NERD-tree'
+Bundle 'surround.vim'
+Bundle 'Syntastic'
+Bundle 'Tagbar'
+Bundle 'tComment'
+Bundle 'Valloric/YouCompleteMe'
+Bundle 'elzr/vim-json'
-" pathogen.vim runtime path manipulation
-silent! call pathogen#infect()
+filetype plugin indent on
" moving around, searching and patterns {{{1
set incsearch " show match for partly typed search command
nmap <silent> <Leader>n :silent nohl<CR>
" use leader-# to display the number of matches for the last search
nmap <Leader># :%s:<C-R>/::gn<CR>
+" center cursor after search
+nnoremap n nzz
+" disable arrows
+inoremap <Up> <NOP>
+inoremap <Down> <NOP>
+inoremap <Left> <NOP>
+inoremap <Right> <NOP>
+noremap <Up> <NOP>
+noremap <Down> <NOP>
+noremap <Left> <NOP>
+noremap <Right> <NOP>
set nostartofline " don't move the cursor to the first non-blank char of a line
set path=.,** " current + subdirectory search for :find, :grep:, ...
" whether to use a popup menu for Insert mode completion
set completeopt=longest,menuone,preview
+" Indent if we're at the beginning of a line. Else, do completion.
+function! InsertTabWrapper()
+ let col = col('.') - 1
+ if !col || getline('.')[col - 1] !~ '\k'
+ return "\<Tab>"
+ else
+ return "\<C-N>"
+endif
+endfunction
+inoremap <Tab> <C-R>=InsertTabWrapper()<CR>
+inoremap <S-Tab> <C-P>
+
" fix legacy vi inconsistency
map Y y$
set backup " keep a backup after owerwriting a file
set backupdir=$HOME/.vim/backupdir
-set undofile " persistent undo history
+set undofile " persistent undo history
set undodir=$HOME/.vim/backupdir
set autowrite " automatically write a file when leaving a modified buffer
+" save with sudo
+cmap w!! w !sudo tee % > /dev/null
+
" command line editing {{{1
set history=500 " how many command lines are remembered
set wildmode=longest:full " specifies how command line completion works
let g:tagbar_width = 25
let g:tagbar_iconchars = ['+', '-']
+" YouCompleteMe {{{2
+let g:ycm_extra_conf_globlist = ['/mnt/data/src/*']
+
+" vim-json {{{2
+let g:vim_json_syntax_conceal = 0
+
" functions {{{1
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
endif
-