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

Jav*_*per 2 vim vim-plugin ag

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

用例示例:

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

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

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

编辑:

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

Pet*_*ker 5

你有几种方法可以做到这一点:

  • 通过寄存器插入文本<c-r>{reg}.在这种情况下,搜索寄存器,/.例如<c-r>/
  • 您也可以在光标下插入单词 <c-r><c-w>
  • 根据文档,:h AgFromSearch您可以:AgFromSearch运行使用当前的搜索模式

您可以结合使用:AgFromSearch*绘制映射来一步完成所有操作.将以下内容添加到您的~/.vimrc文件中:

nnoremap <leader>* *:AgFromSearch<cr>
Run Code Online (Sandbox Code Playgroud)

现在您可以<leader>*用来执行搜索.默认<leader>\这样的\*.有关:h <Leader>更多信息,请参阅

有关更多帮助请参阅:

:h c_ctrl-r
:h c_ctrl-r_ctrl-w
:h :AgFromSearch
:h <Leader>
:h registers
:h quote/
Run Code Online (Sandbox Code Playgroud)