VIM在代码库中查找单词

VIM在代码库中查找单词,vim,Vim,我正在尝试创建一个VIM函数,它允许我在代码库中查找单词 通过使用linux的外部grep函数,然后突出显示该单词的所有出现 另外,假设execute上的静默命令正在抑制外部程序的输出,但它不工作 set grepprg=grep\ -rns\ -C\ 1\ " set grepformat=%f:%l:%m function! WordFind() let l:word = input("Find:") execute 'silent grep ' . l:word . '

我正在尝试创建一个VIM函数,它允许我在代码库中查找单词 通过使用linux的外部grep函数,然后突出显示该单词的所有出现

另外,假设execute上的静默命令正在抑制外部程序的输出,但它不工作

set grepprg=grep\ -rns\ -C\ 1\ "
set grepformat=%f:%l:%m

function! WordFind()
    let l:word = input("Find:")
    execute 'silent grep ' . l:word . ' .'
    :redraw!
    :copen
    execute '/' . l:word
endfunction

你在找单词或符号吗?如果您正在寻找符号(函数、变量、数组…),您可能会发现CTAG和/或cscope更适合

有关详细信息,请参阅:帮助标签

但是。。。你什么都没问那么,你想从我们这里得到什么?代码评论

函数的最后一行似乎没有用,因为quickfix窗口中的每一行至少包含一次单词。它只会在第一行水平移动光标,这是没有用的

我会使用:cwindow而不是:copen

除此之外,您的功能似乎还可以

编辑

不,不行,最后一行也不行。使用您的
grepprg
grepformat
设置,下面修订的功能对我有效:

function! WordFind()
    let l:word = input("Find:")
    execute 'silent grep ' . l:word . ' .'
    redraw!
    cwindow
    wincmd p
    let @/ = l:word
endfunction
毕竟,
wincmd p
行可能不是必需的


我不相信
grep
的输出可以完全隐藏在clivim中。

您看过
:h vimgrep
?是的。。但是我不使用vimgrep,它似乎比grep慢。哦。。我的帖子中没有关于代码块的评论。无论如何,我的问题是在函数的末尾,我试图突出显示我搜索的单词的所有出现处,但这不起作用。在进行搜索之前,您需要使用wincmd p切换到活动窗口。确定我尝试在:cwindow行后插入“:wincmd p”。。但是仍然没有做突出显示的事情..看我的编辑,那一行可能没有必要,因为我认为我没有完全得到你想要的。