dotfiles/vim/.vim/plugin/mappings.vim
2026-03-29 00:03:55 +01:00

67 lines
1.8 KiB
VimL

" search/substitute
nnoremap <silent> <Leader>h :nohlsearch<CR>
nnoremap %s :%s/\v
nnoremap <C-s> :s/\v
vnoremap <C-s> :s/\v
nnoremap / /\v
nnoremap ? ?\v
" splits
nnoremap <Space>Q :wa<CR><C-w>o<C-w>q
nnoremap <Space> <C-w>
nnoremap <Space>S <C-w>s<C-w>j
nnoremap <Space>V <C-w>v<C-w>l
" fugitive
nnoremap <Space>G :tab G<CR>
nnoremap <Space>g :G<CR>
" terminal / tab commands
command -nargs=0 Vt execute "vertical term"
command -nargs=0 Nt execute "tabnew %:p:h"
" man
augroup man
autocmd!
autocmd FileType man nnoremap q :q!<CR>
augroup END
" netrw
nnoremap - :e %:p:h<CR>
let g:netrw_last_char = ''
let g:netrw_last_reverse = 0
function! NetrwJumpToCharRepeat(reverse, repeat)
if a:repeat && g:netrw_last_char != ''
let l:ch = g:netrw_last_char
let l:rev = (a:reverse ? !g:netrw_last_reverse : g:netrw_last_reverse)
else
let l:ch = nr2char(getchar())
let l:rev = a:reverse
let g:netrw_last_char = l:ch
let g:netrw_last_reverse = a:reverse
endif
let l:pattern = '\c^' . escape(l:ch, '\~[]')
call search(l:pattern, l:rev ? 'bW' : 'W')
endfunction
augroup netrw_search
autocmd!
autocmd FileType netrw nnoremap <buffer> / /\V
autocmd FileType netrw nnoremap <buffer> ? ?\V
autocmd FileType netrw silent! unmap <buffer> f
autocmd FileType netrw silent! unmap <buffer> F
autocmd FileType netrw silent! unmap <buffer> ;
autocmd FileType netrw silent! unmap <buffer> ,
autocmd FileType netrw nnoremap <buffer> f :call NetrwJumpToCharRepeat(0, 0)<CR>
autocmd FileType netrw nnoremap <buffer> F :call NetrwJumpToCharRepeat(1, 0)<CR>
autocmd FileType netrw nnoremap <buffer> ; :call NetrwJumpToCharRepeat(0, 1)<CR>
autocmd FileType netrw nnoremap <buffer> , :call NetrwJumpToCharRepeat(1, 1)<CR>
augroup END
" singlechar
let g:singlechar_keylen_warning = 0
let g:singlechar_static_cursor = 1