dotfiles/vim/shortcuts.vim

157 lines
4.4 KiB
VimL
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

"""" Leader shortcuts
let mapleader = ","
" also use space as leader
map <Space> <leader>
nmap <leader>w :w!<CR>
command! W execute 'w !sudo tee % > /dev/null' <bar> edit!
" nmap <leader>W :w!<CR>
"Reload vimrc on config change
map <leader>e :e! ~/.vimrc<CR>
map <leader>ef :e! $DOTFILES/vim/functions.vim<CR>
map <leader>ec :e! $DOTFILES/vim/plugins_config.vim<CR>
map <leader>es :e! $DOTFILES/vim/shortcuts.vim<CR>
map <leader>ep :e! $DOTFILES/vim/plugs.vim<CR>
autocmd! bufwritepost ~/.vimrc source ~/.vimrc
autocmd! bufwritepost $DOTFILES/vim/* source ~/.vimrc
autocmd! bufwritepost $DOTFILES/vim/plugs.vim PlugInstall
" Quickly open a markdown buffer for scribble
map <leader>x :e ~/buffer.md<CR>
" Toggle paste mode on and off
nmap <leader>pp :setlocal paste!<CR>
" Re-select the text block just pasted
nnoremap <Leader>vv V`]
" Easy tab navigation with <leader>T
nmap <leader>Tn :tabnext<CR>
nmap <leader>TN :tabnew<CR>
nmap <leader>Tp :tabprev<CR>
nmap <leader>Tc :tabclose<CR>
" open quickfix
nmap <leader>cc :botright cope<CR>
" open loclist
nmap <leader>ll :botright lope<CR>
" close quickfix (also see <leader>C below)
nmap <leader>cx :hide<CR>
nmap <leader>co ggVGy:tabnew<CR>:set syntax=qf<CR>pgg
" next cope error
map <leader>cn :cn<CR>
" previous cope error
map <leader>cp :cp<CR>
"disable highlighting for current word
map <silent> <leader><CR> :noh<CR>
map <leader>ss :setlocal spell!<CR>
nnoremap <leader>m :bel copen<bar>silent make <bar>redraw!<CR>
nnoremap <leader>wz :call WinZoomToggle()<CR>
nnoremap <leader>C :close<CR>
nnoremap <leader>B :Bclose<CR>
nnoremap <leader>k :Rg<CR>
"" Fugitive
nnoremap <leader>/ :0Git<CR>
nnoremap <leader>g :Git<Space>
nnoremap <leader>Gd :Gvdiffsplit<CR>
nnoremap <leader>Gb :Git blame<CR>
nnoremap <leader>Gp :Git push<CR>
nnoremap <leader>Gl :vert Git log<CR>
nnoremap <leader>M :Git commit<CR>
nnoremap <leader>Gpf :Git push --force-with-lease<CR>
"" Gitutter
nnoremap <leader>u :GitGutterBufferToggle<CR>
nnoremap <leader>L :GitGutterLineHighlightsToggle<CR>
nnoremap <leader>hn :GitGutterNextHunk<CR>
nnoremap <leader>hp :GitGutterPrevHunk<CR>
"" Coverage Highlight
nnoremap <leader>H :HighlightCoverageForAll<CR>
" Ale
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
nmap <leader>R :ALERepeatSelection<CR>
nmap <leader>sv :ALEGoToDefinition -vsplit<CR>
nmap <leader>sh :ALEGoToDefinition -split<CR>
nmap <leader>st :ALEGoToDefinition -tab<CR>
nmap <leader>A :ALEGoToDefinition<CR>
nmap <leader>n :ALEFindReferences -relative<CR>
nmap <leader>h :ALEHover<CR>
nmap <leader>r :ALERename<CR>
nmap <leader>` :ALELint<CR>
nmap <leader>F :ALEFix<CR>
map <leader>nn :NERDTreeToggle<CR>
"" fzf.vim
" Quickly find and open a recently opened file
map <leader>o :Buffers<CR>
map <leader>j :GFiles<CR>
map <leader>J :Files<CR>
map <leader>f :History<CR>
map <leader>T :BTags<CR>
map <leader>t :Tags<CR>
map <leader>l :Lines<CR>
map <leader>c :CtrlPQuickfix<CR>
map <leader>s :Snippets<CR>
map <leader>; :Commands<CR>
"" CSV
" highlight current column
map <leader>hc :HiColumn<CR>
"" Indent Guides
map <leader>I :IndentGuidesToggle<CR>
"" Goyo
nmap <leader>za :Goyo 80%x85%<CR>
nmap <leader>zz :Goyo<CR>
""Misc stuff
if g:uname == "Darwin"
"" Mac specific stuff
elseif g:uname == "Linux"
"" Linux specific stuff
function! s:WaylandYank()
if v:event['regname'] == '+' || (v:event['regname'] == 'w' && s:plus_to_w)
call system('wl-copy', getreg(v:event['regname']))
endif
endfunction
" run s:WaylandYank() after every time text is yanked
augroup waylandyank
autocmd!
autocmd TextYankPost * call s:WaylandYank()
augroup END
map "+p :<C-U>let @"=substitute(system('wl-paste --no-newline'), '<C-v><C-m>', '', 'g') \| exec 'normal! ' . v:count1 . 'p'<cr>
map "+P :<C-U>let @"=substitute(system('wl-paste --no-newline'), '<C-v><C-m>', '', 'g') \| exec 'normal! ' . v:count1 . 'P'<cr>
else
"" Unknown platform
endif
" Add shortcuts to yank/paste to unnamed/unnamedplus clipboards
map <Leader>y "+y
map <Leader>p "+P
map <Leader>Y "+y
map <Leader>P "+P
map <Leader>yp <Plug>yankstack_substitute_older_paste
map <leader>yn <Plug>yankstack_substitute_newer_paste
" Insert a python breakpoint
let @b = 'ibreakpoint()
<1B><>a'
" visual mode mappings
vnoremap <silent> <leader>k :call VisualSelection('LAck', '')<CR>
vnoremap <silent> <leader>gs :call GitShowVisual()<CR>
vnoremap <silent> <leader>r :call VisualSelection('replace', '')<CR>