安装Ag.vim后,我经常需要将搜索从*或/复制到命令行中以搜索代码库中的所有文件。
示例用例:
我找到一串文字user_profile_uri
并使用*
来选择它。
我按:
进入命令行模式并输入Ag
开始我的文件搜索
有没有办法将搜索光标中的文本移动或复制到命令行,而无需手动复制初始文本?
编辑:
我接近搞清楚了。命令行中的:registers
将为我提供一个寄存器列表,在命令模式下,我可以使用Ctrl+R <registerkey>
进行粘贴。但是,我需要的文字看起来像\<user_profile_uri\>
答案 0 :(得分:5)
您有几种方法可以做到这一点:
<c-r>{reg}
从注册表中插入文字。在这种情况下,搜索寄存器/
。例如<c-r>/
<c-r><c-w>
:h AgFromSearch
,您可以:AgFromSearch
运行使用当前搜索模式您可以将:AgFromSearch
和*
结合起来,制作一个映射,一步完成所有操作。将以下内容添加到~/.vimrc
文件中:
nnoremap <leader>* *:AgFromSearch<cr>
现在您可以使用<leader>*
来执行搜索。默认<leader>
为\
,因此它将成为\*
。有关详细信息,请参阅:h <Leader>
。
如需更多帮助,请参阅:
:h c_ctrl-r
:h c_ctrl-r_ctrl-w
:h :AgFromSearch
:h <Leader>
:h registers
:h quote/