/vim_runtime/vimrcs/extended.vim
https://gitlab.com/lokiexinferis/vim-configs · Vim Script · 168 lines · 78 code · 33 blank · 57 comment · 6 complexity · c79bf19f842a63e2f87dcc501aa94df1 MD5 · raw file
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " 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=IBM\ Plex\ Mono:h14,Hack:h14,Source\ Code\ Pro:h15,Menlo:h15
- elseif has("win16") || has("win32")
- set gfn=IBM\ Plex\ Mono:h14,Source\ Code\ Pro:h12,Bitstream\ Vera\ Sans\ Mono:h11
- elseif has("gui_gtk2")
- set gfn=IBM\ Plex\ Mono:h14,:Hack\ 14,Source\ Code\ Pro\ 12,Bitstream\ Vera\ Sans\ Mono\ 11
- elseif has("linux")
- set gfn=IBM\ Plex\ Mono:h14,:Hack\ 14,Source\ Code\ Pro\ 12,Bitstream\ Vera\ Sans\ Mono\ 11
- elseif has("unix")
- set gfn=Monospace\ 11
- endif
- " Disable scrollbars (real hackers don't use scrollbars for navigation!)
- set guioptions-=r
- set guioptions-=R
- set guioptions-=l
- set guioptions-=L
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " => Fast editing and reloading of vimrc configs
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- map <leader>e :e! ~/.vim_runtime/my_configs.vim<cr>
- autocmd! bufwritepost ~/.vim_runtime/my_configs.vim 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("%Y-%m-%d %H:%M:%S")<cr>
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " => Omni complete functions
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- autocmd FileType css set omnifunc=csscomplete#CompleteCSS
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " => Ack searching and cope displaying
- " requires ack.vim - it's much better than vimgrep/grep
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " Use the the_silver_searcher if possible (much faster than Ack)
- if executable('ag')
- let g:ackprg = 'ag --vimgrep --smart-case'
- endif
- " When you press gv you Ack after the selected text
- vnoremap <silent> gv :call VisualSelection('gv', '')<CR>
- " Open Ack and put the cursor in the right position
- map <leader>ack :Ack
- " When you press <leader>r you can search and replace the selected text
- vnoremap <silent> <leader>r :call VisualSelection('replace', '')<CR>
- " Do :help cope if you are unsure what cope is. It's super useful!
- "
- " When you search with Ack, display your results in cope by doing:
- " <leader>cc
- "
- " To go to the next search result do:
- " <leader>n
- "
- " To go to the previous search results do:
- " <leader>p
- "
- map <leader>cc :botright cope<cr>
- map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pgg
- map <leader>n :cn<cr>
- map <leader>p :cp<cr>
- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- " => 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