" Author: Samir Benmendil <samir.benmendil[at]gmail[dot]com>
"
-" use xdg
-set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
-
" bundles {{{1
filetype off
+set runtimepath& " reset rtp
+autocmd!
+
set runtimepath+=$XDG_DATA_HOME/vim/vundle
call vundle#rc('$XDG_DATA_HOME/vim')
Bundle 'ervandew/ag.git'
Bundle 'http://git.code.sf.net/p/vim-latex/vim-latex'
Bundle 'kien/ctrlp.vim'
+Bundle 'kshenoy/vim-signature'
Bundle 'majutsushi/tagbar'
Bundle 'scrooloose/nerdtree'
Bundle 'scrooloose/syntastic'
Bundle 'sjl/gundo.vim'
Bundle 'tomtom/tcomment_vim'
+Bundle 'tpope/vim-endwise'
Bundle 'tpope/vim-fugitive'
+Bundle 'tpope/vim-repeat'
Bundle 'tpope/vim-surround'
Bundle 'tpope/vim-unimpaired'
Bundle 'valloric/youcompleteme'
-Bundle 'zhaocai/goldenview.vim'
Bundle 'ompugao/ros.vim'
Bundle 'ompugao/ctrlp-ros'
+Bundle 'firef0x/pkgbuild.vim'
Bundle 'derekwyatt/vim-fswitch'
-Bundle 'jalcine/cmake.vim'
+" seems to have problems right now... may be add later?
+"Bundle 'jalcine/cmake.vim'
+Bundle 'powerman/vim-plugin-viewdoc'
+
+" remove entries first
+set runtimepath -=$HOME/.vim
+set runtimepath -=$HOME/.vim/after
+set runtimepath -=$XDG_CONFIG_HOME/vim
+set runtimepath -=$XDG_CONFIG_HOME/vim/after
+" then prepend and append them
+set runtimepath ^=$XDG_CONFIG_HOME/vim
+set runtimepath +=$XDG_CONFIG_HOME/vim/after
filetype plugin indent on
+" bindings {{{1
+" allow both <space> and / to be <leader>
+map <space> <leader>
+nnoremap <leader><cr> :make<cr>
+
" moving around, searching and patterns {{{1
set incsearch " show match for partly typed search command
set ignorecase " ignore case when using a search pattern
set smartcase " override 'ignorecase' when pattern has upper case characters
-set hlsearch " highlight all matches for the last used search pattern
+set hlsearch " highlight all matches for the last used search pattern
" use leader-n to unhighlight search
nmap <silent> <Leader>n :silent nohl<CR>
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>
+noremap <Up> <NOP>
+noremap <Down> <NOP>
+noremap <Left> <NOP>
+noremap <Right> <NOP>
+inoremap <Up> <NOP>
+inoremap <Down> <NOP>
+inoremap <Left> <NOP>
inoremap <Right> <NOP>
-noremap <Up> <NOP>
-noremap <Down> <NOP>
-noremap <Left> <NOP>
-noremap <Right> <NOP>
+cnoremap <Up> <NOP>
+cnoremap <Down> <NOP>
+cnoremap <Left> <NOP>
+cnoremap <Right> <NOP>
+cnoremap <C-K> <Up>
+cnoremap <C-J> <Down>
+cnoremap <C-H> <Left>
+cnoremap <C-L> <Right>
set nostartofline " don't move the cursor to the first non-blank char of a line
-set path=.,** " current + subdirectory search for :find, :grep:, ...
+set path=.,include/,../include/,/usr/include/c++/*,/opt/ros/hydro/include
" displaying text {{{1
set scrolloff=5 " number of screen lines to show around the cursor
set list " show chars defined in 'listchars'
set listchars=tab:»·,trail:· " list of strings used for list mode
+set listchars+=extends:⋯,precedes:⋯
+set sidescrolloff=1 " don't scroll over the listchars
set number " show the line number for each line
set relativenumber " show the relative line number for each line
" syntax, highlighting and spelling {{{1
-set background=dark " Dark background, d'uh!
+colorscheme badwolf
syntax on
-set spelllang=en_gb " list of accepted languages
set dictionary=spell " list of dictionary files for keyword completion
" Spell Check http://tex.stackexchange.com/a/52932
let b:myLang=0
map <F1> :ls<CR>:b<space>
+nmap <C-L> <C-W>w
+nmap <C-H> <C-W>W
+
" using the mouse {{{1
set mouse=rnv " list of flags for using the mouse
set ttymouse=xterm " type of mouse
vnoremap . :normal .<CR>
" add line without changing position or leaving mode
-map <Leader>o :set paste<CR>m`o<ESC>``:set nopaste<CR>
-map <Leader>O :set paste<CR>m`O<ESC>``:set nopaste<CR>
+noremap <silent> <Leader>o :set paste<CR>m`o<ESC>``:set nopaste<CR>
+noremap <silent> <Leader>O :set paste<CR>m`O<ESC>``:set nopaste<CR>
" Don't use Ex mode, use Q for formatting
map Q gq
set foldlevelstart=0 " value for 'foldlevel' when starting to edit a file
" space will toggle current fold in normal mode
-nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
+nnoremap <leader><Space> za
" create folds around visual selection
-vnoremap <Space> zf
+vnoremap <leader><Space> zf
" save and restore folds
set viewoptions=folds,cursor " don't save local options
" command line editing {{{1
set history=500 " how many command lines are remembered
-set wildmode=longest:full " specifies how command line completion works
+set wildmode=longest:full,full " specifies how command line completion works
set wildmenu " command-line completion shows a list of matches
" various {{{1
set virtualedit=block " let cursor move past last char in <C-V> mode
-set viminfo='100,<50,s10,h,n$XDG_CACHE_HOME/vim/viminfo " viminfo defaults but save file in .vim
+set viminfo='100,<50,s10,h,n$XDG_CACHE_HOME/vim/viminfo " viminfo defaults but save file in .cache
set viewdir=$XDG_CACHE_HOME/vim
" plugins {{{1
" airline {{{2
let g:airline_detect_whitespace=2
-let g:airline_whitespace_symbol = 'Ξ'
-let g:airline_linecolumn_prefix = '␊ '
-let g:airline_left_sep = '▶'
-let g:airline_right_sep = '◀'
let g:airline#extensions#tabline#enabled = 1
+let g:airline_powerline_fonts = 1
" GoldenView {{{2
-let g:goldenview__enable_default_mapping = 0
-nmap <silent> <C-N> <Plug>GoldenViewSplit
-nmap <silent> <C-L> <Plug>GoldenViewNext
-nmap <silent> <C-H> <Plug>GoldenViewPrevious
-nmap <silent> <C-M> <Plug>GoldenViewSwitchMain
-nmap <silent> <C-S-M> <Plug>GoldenViewPrevious
+"let g:goldenview__enable_default_mapping = 0
+"nmap <silent> <C-N> <Plug>GoldenViewSplit
+"nmap <silent> <C-L> <Plug>GoldenViewNext
+"nmap <silent> <C-H> <Plug>GoldenViewPrevious
+"nmap <silent> <C-M> <Plug>GoldenViewSwitchMain
+"nmap <silent> <C-S-M> <Plug>GoldenViewPrevious
" Gundo {{{2
nnoremap <F7> :GundoToggle<CR>
" fugitive {{{2
nmap <silent> <leader>dd :tab split \| Gdiff \| wincmd h<CR>
+" delete fugitive buffers when closed
+autocmd BufReadPost fugitive://* set bufhidden=delete
" NERDTree {{{2
" open/close NERDTree with \e
let g:tex_flavor='latex'
let g:Tex_DefaultTargetFormat='pdf'
+" vim-viewdoc {{{2
+let g:no_viewdoc_maps = 1
+nnoremap K :call ViewDoc('doc', '<cword>')<cr>
+
" functions {{{1
" auto source vimrc when saved
autocmd bufwritepost vimrc source $MYVIMRC