How to navigate in large project in VIM

How do you manage big projects (hundreds of files) using only VIM?

I personally start having problems in any larger than small project.

  • is there any way to quickly 'go to file', preferably with name completition?
  • same for 'go to class definition', when it is in another file
  • I kinda know all the VIM basics, so I don't have problem using it for writing scripts or quick editing some source code. But it gets really messy for me when I have to navigate between files.


    VIM has excellent support for tags . Once you have created a tags file for your project, you can jump to a definition or declaration of a method, class, etc., including jumping across files, all inside the same editing session.

    Try

    :help tags
    

    To generate a tags file for C/C++, go to your shell prompt (I'm assuming your system is *nix/Cygwin) and type

    info ctags
    

    or

    ctags --help
    

    I like simple solutions, my favorite way to navigate at the moment is:

    Add to ~/.vimrc.local

    set path=$PWD/**
    

    Then type this in the editor to find the file anywhere in the current working directory (pwd)

    :find user_spec.rb
    

    You can use tab-completion on the filenames to find multiple choices as well, making this TextMate convert very happy.


    I use a combination of NERDTree (directory sidebar), FuzzyFinder Textmate (go-to-file like TextMate's CMD+T), and Sessions (:h sessions) to help me deal with large projects.

    I would suggest using some sessions helper plugin. I would mention what I use, but I'm not satisfied with it yet. Just Google "vim sessions".

    One thing to note with getting FuzzyFinder Textmate to work is that it depends on an old version the FuzzyFinder plugin, specifically v2.16. Anything higher and you'll get errors. But it's definitely worth the trouble. While it doesn't have name completion, its search is smart so if I search for fro/time/actionsphp it will pull up the file apps/(fro)ntend/modules/(time)_tracking/actions/(actions).class.(php) (parenthesis denote what it's matching). It makes it very easy to pick out files that are only unique by their folder name.

    链接地址: http://www.djcxy.com/p/78010.html

    上一篇: 如何在Rails 4中引用CSS中的图像

    下一篇: 如何在VIM的大型项目中导航