" override plugin keymaps.
autocmd VimEnter * vnoremap <C-c> "+y
autocmd VimEnter * vnoremap <C-x> "+x
- autocmd VimEnter * nnoremap <C-v> "+p
+ "autocmd VimEnter * nnoremap <C-v> "+p
autocmd VimEnter * inoremap <C-v> <c-r>+
endif
+" ctrl+d as EOF exits shells and the like. Add a keymap for the same here.
+nnoremap <C-d> :q<cr>
+
nnoremap <C-p> :Denite file/rec<cr>
nnoremap <space>/ :Denite grep:.<cr>
nnoremap <space>s :Denite buffer<cr>
au Filetype gnuplot map <buffer> <F5> :call OpenIn("gnuplot -persist") <CR>
-au Filetype c,cpp,objc map <buffer> <F11> :vsplit<CR>:FSRight<CR>
-au Filetype c,cpp,objc map <buffer> <S-F11> :FSHere<CR>
+" Performs a vertial split and a FSHere. For a header file the split is
+" performed to the left, for an implementation file to the right.
+function FSvsplit()
+ " We split to the right on header files
+ if match(expand('%:e'), 'h.*') >= 0
+ execute ':leftabove vsplit'
+ else
+ execute ':rightbelow vsplit'
+ endif
+
+ execute ':FSHere'
+endfunction
+
+au Filetype c,cpp,objc map <buffer> <F12> :call FSvsplit()<CR>
+" Terminal-based vi report S-F12 as F24
+au Filetype c,cpp,objc map <buffer> <S-F12> :FSHere<CR>
+au Filetype c,cpp,objc map <buffer> <F24> :FSHere<CR>
au Filetype markdown map <buffer> <F5> :call RunMarkdown()<CR>
au Filetype asciidoc map <buffer> <F5> :call RunAsciidoc()<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Some plugin-specific settings
-" Add :imap to :map of plugin
-imap <C-l> <Plug>Unicoder
if filereadable($HOME . '/.vim/keymaps-local.vim')