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

now*_*wox 6 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
Run Code Online (Sandbox Code Playgroud)

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

:foo
Run Code Online (Sandbox Code Playgroud)

Ag!消失和后<CR>未执行.

我的错误在哪里?

Ken*_*ent 8

你添加<c-u>了你的映射,它将删除:Ag!

您可能希望-Q用于ag进行文字搜索.

对于这个<CR>问题,你<CR><c-r>=表达式,你需要一个额外的<CR>来启动命令.