Search Ag.vim:使用光标下的单词作为搜索模式的*部分*?

Search Ag.vim:使用光标下的单词作为搜索模式的*部分*?,search,vim,Search,Vim,使用Ag.vim插件,您可以通过调用:Ag轻松搜索光标下的单词,无需任何参数,但如何将光标下的单词作为搜索模式的一部分?我试图在vimrc中添加一点内容,以便在Ruby文件中搜索方法定义。比如: autocmd FileType ruby noremap K :Ag! "\bdef <C-R><C-W>\b"<CR> autocmd文件类型ruby noremap K:Ag!“\bdef\b” 它无法识别。此外,我还尝试了\b和\作为单词边界。Ag在Vim

使用Ag.vim插件,您可以通过调用
:Ag
轻松搜索光标下的单词,无需任何参数,但如何将光标下的单词作为搜索模式的一部分?我试图在vimrc中添加一点内容,以便在Ruby文件中搜索方法定义。比如:

autocmd FileType ruby noremap K :Ag! "\bdef <C-R><C-W>\b"<CR>
autocmd文件类型ruby noremap K:Ag!“\bdef\b”

它无法识别
。此外,我还尝试了
\b
\
作为单词边界。Ag在Vim的上下文之外使用
\b
,但我知道它在某些上下文中将
\
转换为
\b

我通常使用一个技巧,只需在当前单词上按
*
,然后使用
:AgFromSearch
,您可以指定具体路径,例如
:AgFromSearch/any/path/

如果您确实想将word作为搜索模式的一部分,可以使用
(当前word)

nmap:Ag“def”/any/path/
augroupruby
“清除此augroup的autocmds
自动驾驶!
“使用此版本:
autocmd文件类型ruby nnoremap K:execute'Ag!“\bdef.”展开(“”)。“\b”
“或此项,^R^W通过按然后获得:
autocmd文件类型ruby nnoremap K:Ag!”\bdef^R^W\b
螺旋端
  • 如上所述,使用
    augroup
    autocmd!
    清洁剂
    ~/.vimrc

  • nnoremap
    noremap
    好,除非您真的想要一个普通、可视和操作员挂起模式的映射(这没有任何意义)

  • 需要
    以确保您的映射仅限于当前缓冲区


不要使用通用的搜索工具,CTAG或cscope在该游戏中的表现要好得多,并且在不添加插件的情况下得到了Vim的很好的支持。@romainl啊,我一直想学习如何使用CTAG,我想现在是时候了:)很好,谢谢:)。我确实在
augroups
中使用了
autocmd!
,但这是一个很好的观点也使用
。酷,我不知道
,它在这里工作!
 nmap  <silent> <D-f> :Ag "def <cword>" /any/path/<CR>   
augroup Ruby

  " clear this augroup's autocmds
  autocmd!

  " use this version:
  autocmd FileType ruby nnoremap <buffer> K :<C-u>execute 'Ag! "\bdef ' . expand('<cword>') . '\b"'<CR>

  " or this one, ^R^W is obtained by pressing <C-v><C-r> then <C-v><C-w>:
  autocmd FileType ruby nnoremap <buffer> K :Ag! "\bdef ^R^W\b"<CR>

augroup END