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
" 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