Vim Tips Wiki
Advertisement
Tip 1119 Printable Monobook Previous Next

created 2006 · complexity intermediate · author Matt Zyzik · version 6.0


I use Vim for all text editing, even software development. At one point I stopped using IDEs. One major reason is that Vim can do all the major things I need from IDEs (tabs, file trees, greping, syntax highlighting, indentation, completion, "quickfix"ing, etc).

Vim Plugins

Still Vim needs plugins to do some IDE-like things that aren't built in. Here are some Vim scripts that make Vim more like an IDE.

Note: You can use pathogen to isolate your plugins and make it easier to experiment with new plugins.

Project/Filetree Browsing

  • NERDTree is a tree explorer plugin for navigating the filesystem.
  • vtreeexplorer is a tree based file explorer.
  • project.tar.gz gives you a "project" view of files, rather than a straight file system view

Buffer/File Browsing

  • bufexplorer lets you navigate through open buffers
  • minibufexpl which will allow for tabs of all your files (works really well).
  • lookupfile Lookup files using Vim7 ins-completion
  • Command-T plugin, inspired by the "Go to File" window bound to Command-T in TextMate
  • MRU access recently opened files.

Code Browsing

  • taglist gives you an outline of the source you're viewing
  • Tagbar similar to taglist but can order tags by scope
  • indexer.tar.gz generates tags for all files in project automatically and keeps tags up-to-date. Using ctags. Can work as add-on for project.tar.gz, but also can work independently.

See also Browsing programs with tags and Cscope.

Writing Code

  • snipMate provides code snippets (like templates for writing common code idioms).
  • snippetsEmu is an alternative to snipMate.
  • AutoComplPop gives you code completion as you type.

See also Omni completion and Make Vim completion popup menu work just like in an IDE.

Vim Functionality

  • matchit improves % matching
  • bufkill allows you to delete a buffer without actually closing the window.
  • gundo visualizes your undo tree.
  • surround makes it easier to delete/change/add parentheses/quotes/XML-tags/much more.

IDE integration

You may want to use your IDE for some tasks like debugging, so some integration between Vim and the IDE can be helpful.

Source Control Integration

There are many Vim plugins for different source control management systems. Here are a few.

See also Category:VersionControl

Debugging

There are several projects to add debugging functionality to vim

  • Clewn implements full gdb support in the vim editor: breakpoints, watch variables, gdb command completion, assembly windows, etc.
  • vim-debug, which creates an integrated debugging environment in VIM.
  • gdbvim plugin: Watch in vim what you debug in gdb. And more.

Refactoring

Comments

For when you're stuck with Visual Studio: see ViEmu at http://www.ngedit.com/viemu.html


Code navigation in vi offers much more than a standard IDE, because of the ability to execute the desired combination of commands. Generate an index much more rapidly than an IDE with a heavy GUI interface:

For example, one can take advantage of the tag stack:

For C++, follow the instructions: on using OmniCpp Define a custom .ctags file

--c++-kinds=+p
--fields=+iaS
--extra=+q
--language-force=C++

From a console (the exclude options may vary) generate the tags file as follows:

ctags --exclude=.svn --exclude=target -R .
Advertisement