VIM在代码库中查找单词
我正在尝试创建一个VIM函数,它允许我在代码库中查找单词 通过使用linux的外部grep函数,然后突出显示该单词的所有出现 另外,假设execute上的静默命令正在抑制外部程序的输出,但它不工作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 . '
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”。。但是仍然没有做突出显示的事情..看我的编辑,那一行可能没有必要,因为我认为我没有完全得到你想要的。