filetype plugin indent on
-" pathogen.vim runtime path manipulation
-silent! call pathogen#infect()
-
" moving around, searching and patterns {{{1
set incsearch " show match for partly typed search command
set ignorecase " ignore case when using a search pattern
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
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
set viminfo='100,<50,s10,h,n~/.vim/viminfo " viminfo defaults but save file in .vim
" plugins {{{1
+silent! call pathogen#infect() " pathogen.vim runtime path manipulation
+
" airline {{{2
let g:airline_detect_whitespace=2
let g:airline_whitespace_symbol = 'Ξ'
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
endif
-