例如,我想抽出hello/world
並粘貼成hello/world
尋求抽出文本,並自動特殊字符轉義
我試過唬弄的其他實例進行搜索,然後鍵入/\v ctr-r 0
,並在搜索欄放置整個hello/world
但實際上,它只搜索hello
。
有沒有辦法在粘貼過程中自動轉義特殊字符?
例如,我想抽出hello/world
並粘貼成hello/world
尋求抽出文本,並自動特殊字符轉義
我試過唬弄的其他實例進行搜索,然後鍵入/\v ctr-r 0
,並在搜索欄放置整個hello/world
但實際上,它只搜索hello
。
有沒有辦法在粘貼過程中自動轉義特殊字符?
添加此到vimrc文件讓您直觀地選擇一些東西,按*鍵,它會用轉義字符
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>
搜索您可能會感興趣的:
" return a representation of the selected text
" suitable for use as a search pattern
function GetVisualSelection()
let old_reg = @a
normal! gv"ay
let raw_search = @a
let @a = old_reg
return substitute(escape(raw_search, '\/.*$^~[]'), "\n", '\\n', "g")
endfunction
xnoremap <leader>r :<C-u>%s/<C-r>=GetVisualSelection()<CR>/
它或多或少採用了與上述相同的策略,但採用稍微清潔且可重用的方式。
hello/world
。<leader>r
。:%s/hello\/world/
,隨時爲您...<CR>
。@glts,不,它也適用於Mac OS X和Windows(在這些平臺上,它與'@ +'完全相同,我不會擁有它在我的跨平臺配置中,如果情況並非如此,因爲我每天使用該命令幾十次;-)),但當沒有剪貼板支持時,它無法工作。應該使用常規的「A-Z」寄存器。我將編輯我的答案(以及我的配置中的函數)來解決這個問題。 – romainl
這裏的答案將有助於:http://stackoverflow.com/q/6870902。一個好的解決方案是在https://github.com/nelstrom/vim-visual-star-search – glts
可能重複[VIM編輯器:如何在vim中以可視模式選擇它之後搜索一個單詞?](http:/ /stackoverflow.com/questions/6870902/vim-editor-how-can-i-search-a-word-after-selecting-it-in-visual-mode-in-vim) – bzupnick
謝謝!我是否刪除該問題? – bzupnick