" 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'
-" rtp + xdg {{{1
" 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 add prepend and append them
+" 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=.,include/,../include/,/usr/include/c++/*,/opt/ros/hydro/include
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
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
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