From 4fd9a09948a1a9a30d9c344e8360eaaa0fde4d28 Mon Sep 17 00:00:00 2001 From: m1ngsama Date: Sun, 26 Apr 2026 15:32:55 +0800 Subject: [PATCH] fix: add missing visual mode mappings for clipboard, movement, and editing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ,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. --- modules/core.vim | 5 +++++ modules/tools.vim | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/modules/core.vim b/modules/core.vim index 25e2ab4..b5a1351 100644 --- a/modules/core.vim +++ b/modules/core.vim @@ -103,6 +103,7 @@ nnoremap h :bprevious nnoremap cd :lcd %:p:h:pwd nnoremap 0 ^ +vnoremap 0 ^ nnoremap gV `[v`] cnoremap @@ -139,14 +140,18 @@ nnoremap :w inoremap :w nnoremap zz +vnoremap zz nnoremap zz +vnoremap zz if has('clipboard') nnoremap y "+y vnoremap y "+y nnoremap Y "+Y nnoremap p "+p + vnoremap p "+p nnoremap P "+P + vnoremap P "+P endif nnoremap qo :copen diff --git a/modules/tools.vim b/modules/tools.vim index 3e32b3f..35eef54 100644 --- a/modules/tools.vim +++ b/modules/tools.vim @@ -22,6 +22,7 @@ endfunction " ── Utilities ────────────────────────────────────────────────────────────── nnoremap F gg=G`` +vnoremap F = nnoremap wa :wa nnoremap = :exe "resize " . (winheight(0) * 3/2) @@ -30,11 +31,13 @@ nnoremap - :exe "resize " . (winheight(0) * 2/3) nnoremap nnoremap W :%s/\s\+$//:let @/='' +vnoremap W :s/\s\+$//:let @/=''gv nnoremap ev :edit $MYVIMRC nnoremap sv :source $MYVIMRC:echo "vimrc reloaded" nnoremap * :%s/\<\>//g +vnoremap * :s///g if has('clipboard') nnoremap cp :let @+ = expand("%:p"):echo "Copied: " . expand("%:p") @@ -256,11 +259,11 @@ function! s:CheatSheet() abort \ ' s+2ch easymotion jump', \ ' cs"'' surround', \ ' ,u undo tree', - \ ' ,y clipboard yank', - \ ' Alt+j/k move line', - \ ' ,* replace word', - \ ' ,F re-indent file', - \ ' ,W strip whitespace', + \ ' ,y ,p clipboard y/p (v)', + \ ' Alt+j/k move line (v)', + \ ' ,* replace word (v)', + \ ' ,F re-indent (v)', + \ ' ,W strip trailing (v)', \ '', \ ' ── git ───────────────────', \ ' ,gs status',