Fast 'Find in Files' for VIM?

强颜欢笑 提交于 2019-12-03 07:56:24

问题


What are some options for getting really fast 'Find in Files' searching in VIM?

Our codebase is large enough that searching needs to work off an index. grep/vimgrep/etc are too slow.

Indexing doesn't need to be particularly fast; I can index overnight.

Thanks,

[EDIT] I'm also working in a Windows environment.


回答1:


If it's source code (rather than full text search), then ctags with the TagList plugin should work well for your needs. See, for example:

http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourece-code-browser/

EDIT: TagList and ctags will work on Windows as well (that's what I use). See the TagList install page and FAQ. The following links might prove useful:

  • http://www.vim.org/scripts/script.php?script_id=273
  • http://vim-taglist.sourceforge.net/installation.html
  • http://vim-taglist.sourceforge.net/faq.html

There's also a TagList forum where you can get further help:

http://tech.groups.yahoo.com/group/taglist/

I set it up on my windows machine a while back, but I don't remember encountering any problems.




回答2:


Something that I use, but not through vim, is ack: http://betterthangrep.com/

It is a perl based tool, and it should be usable in Windows.




回答3:


If you're working with a large codebase, then it might be time to look for a more powerful solution than conventional tools. OpenGrok is a very fast source code search and cross-reference engine. On top of its great performance, it integrates with Subversion, Mercurial, and ClearCase, among other source revision control software. It sounds a lot like something you could use.

If you want support to use OpenGrok from within Vim, you could easily write a vim function that would call system() to start the search for you. To read more about writing new vim commands, look up :help 40.2 within vim.

I hope that's what you were looking for.




回答4:


I don't know how I found this, but looks like someone has written a plugin for google desktop




回答5:


Try to install https://github.com/mileszs/ack.vim, http://beyondgrep.com/ ,

then make a link

ln -s /usr/bin/ack-grep /usr/bin/ack 

and add

noremap <C-f> :copen<CR>:Ack -aQi --ignore-dir someignoringdir

to your .vimrc, after you can find in files through Ctrl+F, enjoy

_   /|
\'o.O'
=(___)=
   U  



回答6:


You can try this

:vimgrep /something/ */

and dont forget to open search result window after

:cw



来源:https://stackoverflow.com/questions/1095314/fast-find-in-files-for-vim

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!