有没有办法将当前搜索模式插入命令行?

时间:2015-01-15 17:42:36

标签: vim vim-plugin ag

安装Ag.vim后,我经常需要将搜索从*或/复制到命令行中以搜索代码库中的所有文件。

示例用例:

  1. 我找到一串文字user_profile_uri并使用*来选择它。

  2. 我按:进入命令行模式并输入Ag开始我的文件搜索

  3. 有没有办法将搜索光标中的文本移动或复制到命令行,而无需手动复制初始文本?

    编辑:

    我接近搞清楚了。命令行中的:registers将为我提供一个寄存器列表,在命令模式下,我可以使用Ctrl+R <registerkey>进行粘贴。但是,我需要的文字看起来像\<user_profile_uri\>

1 个答案:

答案 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/