fix: add missing visual mode mappings for clipboard, movement, and editing
Some checks are pending
test / startup (macos-latest) (push) Waiting to run
test / startup (ubuntu-latest) (push) Waiting to run
test / shellcheck (push) Waiting to run

,p ,P ,F ,W ,* now work in visual mode. 0→^ and C-d/C-u centering
carry into visual selections. Cheat sheet updated with (v) markers.
This commit is contained in:
m1ngsama 2026-04-26 15:32:55 +08:00
parent 01c67d841b
commit 4fd9a09948
2 changed files with 13 additions and 5 deletions

View file

@ -103,6 +103,7 @@ nnoremap <leader>h :bprevious<cr>
nnoremap <leader>cd :lcd %:p:h<cr>:pwd<cr> nnoremap <leader>cd :lcd %:p:h<cr>:pwd<cr>
nnoremap 0 ^ nnoremap 0 ^
vnoremap 0 ^
nnoremap gV `[v`] nnoremap gV `[v`]
cnoremap <C-p> <Up> cnoremap <C-p> <Up>
@ -139,14 +140,18 @@ nnoremap <silent> <C-s> :w<CR>
inoremap <silent> <C-s> <C-o>:w<CR> inoremap <silent> <C-s> <C-o>:w<CR>
nnoremap <C-d> <C-d>zz nnoremap <C-d> <C-d>zz
vnoremap <C-d> <C-d>zz
nnoremap <C-u> <C-u>zz nnoremap <C-u> <C-u>zz
vnoremap <C-u> <C-u>zz
if has('clipboard') if has('clipboard')
nnoremap <leader>y "+y nnoremap <leader>y "+y
vnoremap <leader>y "+y vnoremap <leader>y "+y
nnoremap <leader>Y "+Y nnoremap <leader>Y "+Y
nnoremap <leader>p "+p nnoremap <leader>p "+p
vnoremap <leader>p "+p
nnoremap <leader>P "+P nnoremap <leader>P "+P
vnoremap <leader>P "+P
endif endif
nnoremap <leader>qo :copen<CR> nnoremap <leader>qo :copen<CR>

View file

@ -22,6 +22,7 @@ endfunction
" ── Utilities ────────────────────────────────────────────────────────────── " ── Utilities ──────────────────────────────────────────────────────────────
nnoremap <leader>F gg=G`` nnoremap <leader>F gg=G``
vnoremap <leader>F =
nnoremap <leader>wa :wa<CR> nnoremap <leader>wa :wa<CR>
nnoremap <silent> <Leader>= :exe "resize " . (winheight(0) * 3/2)<CR> nnoremap <silent> <Leader>= :exe "resize " . (winheight(0) * 3/2)<CR>
@ -30,11 +31,13 @@ nnoremap <silent> <Leader>- :exe "resize " . (winheight(0) * 2/3)<CR>
nnoremap <leader><leader> <c-^> nnoremap <leader><leader> <c-^>
nnoremap <leader>W :%s/\s\+$//<CR>:let @/=''<CR> nnoremap <leader>W :%s/\s\+$//<CR>:let @/=''<CR>
vnoremap <leader>W :s/\s\+$//<CR>:let @/=''<CR>gv
nnoremap <leader>ev :edit $MYVIMRC<CR> nnoremap <leader>ev :edit $MYVIMRC<CR>
nnoremap <leader>sv :source $MYVIMRC<CR>:echo "vimrc reloaded"<CR> nnoremap <leader>sv :source $MYVIMRC<CR>:echo "vimrc reloaded"<CR>
nnoremap <leader>* :%s/\<<C-r><C-w>\>//g<Left><Left> nnoremap <leader>* :%s/\<<C-r><C-w>\>//g<Left><Left>
vnoremap <leader>* :s///g<Left><Left><Left>
if has('clipboard') if has('clipboard')
nnoremap <leader>cp :let @+ = expand("%:p")<CR>:echo "Copied: " . expand("%:p")<CR> nnoremap <leader>cp :let @+ = expand("%:p")<CR>:echo "Copied: " . expand("%:p")<CR>
@ -256,11 +259,11 @@ function! s:CheatSheet() abort
\ ' s+2ch easymotion jump', \ ' s+2ch easymotion jump',
\ ' cs"'' surround', \ ' cs"'' surround',
\ ' ,u undo tree', \ ' ,u undo tree',
\ ' ,y clipboard yank', \ ' ,y ,p clipboard y/p (v)',
\ ' Alt+j/k move line', \ ' Alt+j/k move line (v)',
\ ' ,* replace word', \ ' ,* replace word (v)',
\ ' ,F re-indent file', \ ' ,F re-indent (v)',
\ ' ,W strip whitespace', \ ' ,W strip trailing (v)',
\ '', \ '',
\ ' ── git ───────────────────', \ ' ── git ───────────────────',
\ ' ,gs status', \ ' ,gs status',