Grep而不将搜索存储到";/在Vim中注册
在myGrep而不将搜索存储到";/在Vim中注册,vim,grep,cpu-registers,Vim,Grep,Cpu Registers,在my.vimrc中,我有一个映射,使一行文本“标题大写”: noremap <Leader>at :s/\v<(.)(\w{2,})/\u\1\L\2/g<CR> 将成功执行替换,而无需将搜索的文本存储到/寄存器中。经过一些快速实验,我认为没有办法不将最后一次搜索存储在/寄存器中。但是,您可以创建一个函数,该函数在执行替换之前保存/寄存器的值,然后再将其恢复 e、 g noremap地址:call CapTitle() 功能!字幕() 让l:prev_searc
.vimrc
中,我有一个映射,使一行文本“标题大写”:
noremap <Leader>at :s/\v<(.)(\w{2,})/\u\1\L\2/g<CR>
将成功执行替换,而无需将搜索的文本存储到
/
寄存器中。经过一些快速实验,我认为没有办法不将最后一次搜索存储在/
寄存器中。但是,您可以创建一个函数,该函数在执行替换之前保存/
寄存器的值,然后再将其恢复
e、 g
noremap地址:call CapTitle()
功能!字幕()
让l:prev_search=@/
调用setline(line('.')、substitute(getline('.')、'\v实际上,如果您只是将映射设置为调用
行,则搜索不会存储在寄存器中!
noremap <Leader>at :call setline(line('.'),substitute(getline('.'), '\v<(.)(\w{2,})', '\u\1\L\2', 'g'))<CR>
noremap <Leader>at :call CapTitle()<cr>
function! CapTitle()
let l:prev_search = @/
call setline(line('.'),substitute(getline('.'), '\v<(.)(\w{2,})', '\u\1\L\2', 'g'))
let @/ = l:prev_search
endfunction