mirror of
https://git.decapod.one/brethil/dotfiles
synced 2024-10-31 18:01:30 +01:00
158 lines
4.5 KiB
VimL
158 lines
4.5 KiB
VimL
"""" 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>
|
||
nmap <C-W>n :tabnext<CR>
|
||
nmap <C-W>p :tabprev<CR>
|
||
nmap <C-W>N :tabnew<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>/ :Git<CR>
|
||
nnoremap <leader>\ :0Git<CR>
|
||
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>Gc :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>gp :GitGutterPrevHunk<CR>
|
||
nnoremap <leader>gn :GitGutterNextHunk<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>
|
||
map <leader>m :Maps<CR>
|
||
|
||
"" Indent Guides
|
||
map <leader>I :IndentGuidesToggle<CR>
|
||
map <leader>i :set cursorcolumn!<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 = 'obreakpoint(<28>kr<1B><>a0j'
|
||
|
||
" 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>
|