VIM在代码库中查找单词

时间:2013-09-21 04:57:53

标签: vim

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

同样,执行的静音假设是抑制外部程序的输出,但它不起作用..

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

1 个答案:

答案 0 :(得分:2)

您在寻找文字或符号吗?如果您正在寻找符号(函数,变量,数组......),您可能会发现ctags和/或cscope更适合。

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

但是......你没有问过什么,你对我们有什么要求?代码批评?

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

我会使用:cwindow而不是:copen。

除此之外,你的功能似乎没问题。

修改

嗯不,不行,最后一行无论如何都行不通。以下修订后的功能适用于我grepprggrepformat设置:

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

毕竟,wincmd p行可能没有必要。

我不相信{V}可以完全隐藏grep的输出。