使用Ag.vim插件,您可以通过调用:Ag
而无需任何参数轻松搜索光标下的单词,但如何将光标下的单词包含在 part 中搜索模式?我正在尝试向我的vimrc添加一些内容来搜索Ruby文件中的方法定义。类似的东西:
autocmd FileType ruby noremap K :Ag! "\bdef <C-R><C-W>\b"<CR>
它无法识别<C-R><C-W>
。另外,我已尝试将\b
和\<
,\>
作为字边界。 Ag在Vim的上下文之外使用\b
,但我知道在某些情况下它会将\<
和\>
翻译为\b
(虽然不确定这个上下文)。
答案 0 :(得分:9)
我通常只使用一个技巧,只需在当前单词上按*
然后使用:AgFromSearch
,就可以指定具体路径,例如:AgFromSearch /any/path/
如果你真的想在搜索模式中使用单词,可以使用<cword>
(当前单词)
nmap <silent> <D-f> :Ag "def <cword>" /any/path/<CR>
答案 1 :(得分:2)
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
如上所述,使用augroup
和autocmd!
作为清洁工~/.vimrc
。
nnoremap
优于noremap
,除非您确实想要正常,可视和操作员待处理模式的单一映射(实际上并不是义)。
<buffer>
需要确保您的映射仅限于当前缓冲区。