Vim使用ag搜索光标下的单词

时间:2015-04-07 08:15:56

标签: vim

我想将<Leader>a映射到用ag搜索光标下的单词

我写了这个:

noremap <Leader>a  :Ag!<C-u><C-r>=Escape(expand('<cword>'))<CR>

function! Escape(stuff)
    return substitute(escape(a:stuff, '\/.*$^~[]'), "\n", '\\n', "g")
endfunction

不幸的是,当我在单词<Leader>a上点击foo时,我得到了这个:

:foo

Ag!消失,尾随<CR>未执行。

我的错误在哪里?

3 个答案:

答案 0 :(得分:8)

您在地图中添加了<c-u>,它会移除:Ag!

您可能希望-Q使用ag进行文字搜索。

对于<CR>问题,<CR>用于<c-r>=表达式,您需要额外<CR>个来启动命令。

答案 1 :(得分:0)

noremap <leader>a :Ag! "<cword>"<cr>

答案 2 :(得分:0)

添加我在 GitHub 中找到的答案,由 junegunn 回答,以防有人需要

nnoremap <silent> <Leader>ag :Ag <C-R><C-W><CR>

Original link