From 374a1aa33519d74cbc51656a429df924ee144027 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Fri, 5 Jul 2024 13:05:11 +0800 Subject: Update --- vim/init/keymaps.vim | 66 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 25 deletions(-) (limited to 'vim/init') diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim index 2475ad8..68a82a5 100644 --- a/vim/init/keymaps.vim +++ b/vim/init/keymaps.vim @@ -2,18 +2,19 @@ " " Only for key mapping " -" - COMMON_MAPPING -" - MANAGE_VIMRC -" - MOVING_WITH_READLINE -" - INSERT_SURROUNDING -" - JUMP_TO_TABS_WITH_ALT -" - MANAGE_TABS -" - MANAGE_BUFFERS -" - SURROURD_WITH_CHAR -" - REDIRECTION_WITH_BUFFER -" - QUICK_SUBSTITUTE -" - 终端支持 -" - 编译运行 +" COMMON_MAPPING +" MANAGE_VIMRC +" MOVING_WITH_READLINE +" INSERT_SURROUNDING +" JUMP_TO_TABS_WITH_ALT +" MANAGE_TABS +" MANAGE_BUFFERS +" FOLDING +" SURROURD_WITH_CHAR +" REDIRECTION_WITH_BUFFER +" QUICK_SUBSTITUTE +" 终端支持 +" 编译运行 " "====================================================================== " vim: set ts=4 sw=4 tw=78 noet : @@ -54,12 +55,6 @@ nmap cq :cq " Switch wrap nmap W :set wrap! -" Show fold level when it changes -nnoremap zm zm:set foldlevel -nnoremap zr zr:set foldlevel -" Use l to open fold -nnoremap l foldclosed('.') == -1 ? 'l' : 'zo' - " :W sudo saves the file " (useful for handling the permission-denied error) command! W execute 'w !sudo -S tee %' edit! @@ -265,7 +260,6 @@ noremap l :exe "buffer ".g:lastbuffer " set filetype noremap ft :set filetype= -noremap fm :set foldmethod= " Let l toggle between this and the last accessed buffer augroup SaveLastBuffer @@ -274,6 +268,23 @@ au BufLeave * let g:lastbuffer = bufnr() augroup END +"---------------------------------------------------------------------- +" FOLDING +"---------------------------------------------------------------------- + +" Set foldmethod +noremap fm :set foldmethod= + +" Show fold level when it changes +nnoremap zm zm:set foldlevel +nnoremap zr zr:set foldlevel +" Use l to open fold +nnoremap l foldclosed('.') == -1 ? 'l' : 'zo' +" Open fold in next line +nnoremap zo foldclosed('.') == -1 ? 'jzo' : 'zo' +nnoremap zO foldclosed('.') == -1 ? 'jzO' : 'zO' + + "---------------------------------------------------------------------- " SURROURD_WITH_CHAR "---------------------------------------------------------------------- @@ -323,26 +334,31 @@ nnoremap rr :Redir " Press n times for area, and for substitute "---------------------------------------------------------------------- +" substitute across file +vnoremap s y:%s//0/g + let g:search_not_in_register = 1 +" When leaving visual mode, resume search_not_in_register +autocmd Modechanged [vV\x16]*:* let g:search_not_in_register = 1 + function! ExpandSelectionBySearch(sep) if g:search_not_in_register - " Save current selection to register s, and keep selection - execute 'norm "sygv' + " Save current selection to register, and keep selection + execute 'norm ygv' let g:search_not_in_register = 0 endif " Use register s to go to next search, counts/total is displayed in " statusline - call feedkeys(a:sep.."\s"..a:sep.."e\") + call feedkeys(a:sep.."\0"..a:sep.."e\") endfunction function! SubstituteBySearch() " Apply current search for default substitute text - call feedkeys(":s//\s/g\\") + call feedkeys(":s//\0/g\\") endfunction + vnoremap call ExpandSelectionBySearch('/') vnoremap call ExpandSelectionBySearch('?') vnoremap call SubstituteBySearch() -" When leaving visual mode, resume search_not_in_register -autocmd Modechanged [vV\x16]*:* let g:search_not_in_register = 1 "---------------------------------------------------------------------- -- cgit v1.2.3-70-g09d2