mirror of
https://github.com/amix/vimrc
synced 2025-02-28 14:12:51 +08:00
161 lines
4.7 KiB
VimL
161 lines
4.7 KiB
VimL
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
" 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
|
|
|
|
" 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
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" autocompletado en modo VISUAL
|
|
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 $" <esc>`>a"<esc>`<i"<esc>
|
|
vnoremap $* <esc>`>a*<esc>`<i*<esc>
|
|
vnoremap $> <esc>`>a><esc>`<i<<esc>
|
|
vnoremap $? <esc>`>a?<esc>`<i¿<esc>
|
|
vnoremap $= <esc>`>o=<esc>yl99p`<O=<esc>yl99p
|
|
vnoremap $b <esc>`<Obegin<esc>`>oend<esc>`<V`>>
|
|
vnoremap $f <esc>`<A<space>{{{<esc>`>i}}}<esc>zxza
|
|
|
|
" autocompletado en modo INSERT
|
|
inoremap $1 ()<esc>i
|
|
inoremap $2 []<esc>i
|
|
inoremap $3 {}<esc>i
|
|
inoremap $4 {<esc>o}<esc>O
|
|
inoremap $' ''<esc>i
|
|
inoremap $" ""<esc>i
|
|
inoremap $* **<esc>i
|
|
inoremap $> <><esc>i
|
|
inoremap $? ¿?<esc>i
|
|
inoremap $= =<esc>yl99pYpO
|
|
inoremap $% (<esc>l%a)<esc>%a
|
|
inoremap $b begin<cr><bs>end<esc>O
|
|
inoremap $f <space>{{{<esc>o}}}<esc>O<esc>zxi
|
|
inoremap $<space>f <esc>?*<cr>v`>$f
|
|
|
|
" autocompletado en modo NORMAL
|
|
nmap $* I*<esc>A*<esc>
|
|
nmap $% i(<esc>l%a)<esc>%a
|
|
nmap $f $a<space>{{{<esc>o}}}<esc>O<esc>zxi
|
|
nmap $<space>f v?*<cr><esc>`<a<space>{{{<esc>`>i}}}<esc>zxza
|
|
|
|
" saltarse del paréntesis final sin tener que salir del modo INSERT
|
|
inoremap $$ <esc>la
|
|
|
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
" => 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
|