dotfiles/vim/shortcuts.vim

109 lines
3.1 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
nmap <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>` :ALELint<CR>
" FIXME: This results in some weird conflict with lightline
autocmd! bufwritepost ~/.vimrc source ~/.vimrc
" 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>
" open quickfix
nmap <leader>cc :botright cope<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>
map <silent> <leader><CR> :noh<CR> "disable highlighting for current word
map <leader>ss :setlocal spell!<CR>
nnoremap <leader>mk :bel copen<bar>silent (cargo run) !<bar>redraw!<CR>
nnoremap <leader>wz :call WinZoomToggle()<CR>
nmap \ :Explore<CR>
nnoremap <leader>C :close<CR>
nnoremap <leader>B :Bclose<CR>
nnoremap <leader>k :Ack<Space>
"" Fugitive
nnoremap <leader>/ :Git<CR>
nnoremap <leader>g :Git<CR>
nnoremap <leader>gd :Git diff<CR>
nnoremap <leader>gp :Git push<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>
nmap <leader>hn <Plug>(GitGutterNextHunk)
nmap <leader>hp <Plug>(GitGutterPrevHunk)
"" Ale
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
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<CR>
nmap <leader>h :ALEHover<CR>
nmap <leader>r :ALERename<CR>
" call ack when pressing gv in visual
vnoremap <silent> gv :call VisualSelection('gv', '')<CR>
map <leader>nn :NERDTreeToggle<CR>
map <leader>o :BufExplorer<CR>
"" CtrlP
" Quickly find and open a recently opened file
" let g:ctrlp_map = '<C-f>'
map <C-b> :CtrlPBuffer<CR>
map <leader>j :CtrlP<CR>
map <leader>b :CtrlPBuffer<CR>
map <leader>f :CtrlPMRUFiles<CR>
map <leader>t :CtrlPTag<CR>
let s:uname=''
let s:uname = system('uname | tr -d "\n"') " Get platform name (stripping the trailing newline)
if s:uname == "Darwin"
"" Mac specific stuff
elseif s:uname == "linux"
"" Linux specific stuff
" Wayland clipboard fix https://github.com/vim/vim/issues/5157
xnoremap "+y :call system("wl-copy", @")<CR>
nnoremap "+p :let @"=substitute(system("wl-paste --no-newline"), '<C-v><C-m>', '', 'g')<cr>p
xnoremap "*y :call system("wl-copy --primary", @")<CR>
nnoremap "*p :let @"=substitute(system("wl-paste --no-newline --primary"), '<C-v><C-m>', '', 'g')<cr>p
else
"" Unkown platform
endif
" Add shortcuts to yank/paste to unnamed/unnamedplus clipboards
noremap <Leader>y "*y
noremap <Leader>p "*p
noremap <Leader>Y "+y
noremap <Leader>P "+p
" A friggin python breakpoint. Invoke with @b "FIXME: make this decent
let @b = 'A
breakpoint()€ýajkj0'