""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Important: " This requries that you install https://github.com/amix/vimrc ! " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => GUI related """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Set font according to system if has("mac") || has("macunix") set gfn=Hack:h14,Source\ Code\ Pro:h15,Menlo:h15 elseif has("win16") || has("win32") set gfn=Hack:h14,Source\ Code\ Pro:h12,Bitstream\ Vera\ Sans\ Mono:h11 elseif has("gui_gtk2") set gfn=Hack\ 14,Source\ Code\ Pro\ 12,Bitstream\ Vera\ Sans\ Mono\ 11 elseif has("linux") set gfn=Hack\ 14,Source\ Code\ Pro\ 12,Bitstream\ Vera\ Sans\ Mono\ 11 elseif has("unix") set gfn=Monospace\ 11 endif " Open MacVim in fullscreen mode if has("gui_macvim") set fuoptions=maxvert,maxhorz au GUIEnter * set fullscreen endif " Disable scrollbars (real hackers don't use scrollbars for navigation!) set guioptions-=r set guioptions-=R set guioptions-=l set guioptions-=L " Colorscheme set background=dark colorscheme peaksea """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Fast editing and reloading of vimrc configs """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" map <leader>e :e! ~/.vim_runtime/my_configs.vim<cr> autocmd! bufwritepost vimrc source ~/.vim_runtime/my_configs.vim """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Turn persistent undo on " means that you can undo even when you close a buffer/VIM """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" try set undodir=~/.vim_runtime/temp_dirs/undodir set undofile catch endtry """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Command mode related """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Smart mappings on the command line cno $h e ~/ cno $d e ~/Desktop/ cno $j e ./ cno $c e <C-\>eCurrentFileDir("e")<cr> " $q is super useful when browsing on the command line " it deletes everything until the last slash cno $q <C-\>eDeleteTillSlash()<cr> " Bash like keys for the command line cnoremap <C-A> <Home> cnoremap <C-E> <End> cnoremap <C-K> <C-U> cnoremap <C-P> <Up> cnoremap <C-N> <Down> " Map ½ to something useful map ½ $ cmap ½ $ imap ½ $ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Parenthesis/bracket """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" vnoremap $1 <esc>`>a)<esc>`<i(<esc> vnoremap $2 <esc>`>a]<esc>`<i[<esc> vnoremap $3 <esc>`>a}<esc>`<i{<esc> vnoremap $$ <esc>`>a"<esc>`<i"<esc> vnoremap $q <esc>`>a'<esc>`<i'<esc> vnoremap $e <esc>`>a"<esc>`<i"<esc> " Map auto complete of (, ", ', [ inoremap $1 ()<esc>i inoremap $2 []<esc>i inoremap $3 {}<esc>i inoremap $4 {<esc>o}<esc>O inoremap $q ''<esc>i inoremap $e ""<esc>i """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => General abbreviations """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" iab xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Omni complete functions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" autocmd FileType css set omnifunc=csscomplete#CompleteCSS """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Helper functions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" func! DeleteTillSlash() let g:cmd = getcmdline() if has("win16") || has("win32") let g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\]\\).*", "\\1", "") else let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*", "\\1", "") endif if g:cmd == g:cmd_edited if has("win16") || has("win32") let g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\\]\\).*\[\\\\\]", "\\1", "") else let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*/", "\\1", "") endif endif return g:cmd_edited endfunc func! CurrentFileDir(cmd) return a:cmd . " " . expand("%:p:h") . "/" endfunc