可以说我想在文件中搜索一些文本块.有没有办法对该文本进行视觉块选择,然后将其作为当前搜索词?这样我就能在不替换命令左侧输入整个内容的情况下执行// replacementText/g.
你必须原谅我,我不记得我在哪里找到这个的,但它确实有奇迹。只需添加到您的.vimrc. 在目视选择后使用您的*典型#:
" Search for selected text, forwards or backwards.
vnoremap <silent> * :<C-U>
\let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
\gvy/<C-R><C-R>=substitute(
\escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
\gV:call setreg('"', old_reg, old_regtype)<CR>
vnoremap <silent> # :<C-U>
\let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
\gvy?<C-R><C-R>=substitute(
\escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
\gV:call setreg('"', old_reg, old_regtype)<CR>
Run Code Online (Sandbox Code Playgroud)
这里真正的优点是,这可以转义任何特殊字符,而不是仅仅粘贴到搜索命令中。它还减少了击键次数,从而最大限度地提高了任务的活力。