Super UserMost useful Vim plugin?
[+38] [18] Mutewinter
[2009-07-20 12:10:08]
[ vim plugins text-editing ]

What is the most useful plugin for the Vim Text Editor [1]?

[+23] [2009-07-20 13:08:51] Charles Roper

NERDTree [1]

The NERD tree allows you to explore your filesystem and to open files and directories. It presents the filesystem to you in the form of a tree which you manipulate with the keyboard and/or mouse. It also allows you to perform simple filesystem operations.


(6) Why would you use this when vim comes with netrw that does the same things? - DaveParillo
(3) @DaveParillo: because NERDTree is far more superior - hasen j
[+14] [2009-07-20 12:36:25] innaM

If you are doing any kind of programming, the taglist plugin [1] is essential.

You'll get a list of all functions/methods in your current buffer or all your buffers or your complete project.

enter image description here


[+13] [2009-07-20 13:07:13] Charles Roper

SnipMate [1] ( Git repo [2])

snipMate.vim aims to be an unobtrusive, concise vim script that implements some of TextMate's snippets features in Vim. A snippet is a piece of often-typed text that you can insert into your document using a trigger word followed by a <tab>.

[+9] [2009-07-20 13:14:55] nik

The version control system plugin -- vcscommand [1]

for manipulating files controlled by CVS, SVN, SVK and git within VIM, including committing changes and performing diffs using the vimdiff system


(3) It's actually called "vcscommand" now that it supports most VCSes. Mercurial support is in the works too. - rq
[+9] [2010-10-18 14:41:08] Ton van den Heuvel

Command-T [1].

The Command-T plug-in for VIM provides an extremely fast, intuitive mechanism for opening files with a minimal number of keystrokes. It's named "Command-T" because it is inspired by the "Go to File" window bound to Command-T in TextMate.

It's very similar to FuzzyFinder, with the following advantages over FuzzyFinder:

  • easier to setup, does require that Ruby is enabled in Vim though
  • better performance thanks to a small C backend
  • allows searching based on parts of the complete path name instead of just the filename

[+7] [2009-07-20 12:41:55] innaM

Another really useful one is the surround plugin [1]:

Surround.vim is all about "surroundings": parentheses, brackets, quotes, XML tags, and more. The plugin provides mappings to easily delete, change and add such surroundings in pairs.


[+6] [2009-07-20 12:11:57] Mutewinter

FuzzyFinder [1] is a file searching plugin for Vim. It allows the user to type in any part of a file or buffer name and switch to it quickly.

FuzzyFinder screenshot


(1) If this is the one based on Jamis Buck's fuzzy_file_finder gem, you might mention that as a requirement to install. - jtimberman
[+5] [2009-07-20 12:56:27] Sam Saffron

vimrails [1] hands down, but keep in mind I'm really biased, most of the time I spend in Vim is working on Ruby on Rails applications.


[+4] [2010-06-05 04:44:27] stephenmm

I just started using it recently but I really really dig arpeggio [1]. It allows a new mapping mechanism where ANY two simultaneous key presses causes the right hand side to be executed. I think it will probably change the way I use VIM.

A close runner up is conque [2] which allows you to run a shell inside of vim. I have wanted this for over a decade and someone finally came out with it. It works fairly well.


[+3] [2010-10-14 15:53:47] Neg_EV

minibufexplorer [1]

I cant believe no one has mentioned minibufexplorer yet. This plugin is very simple; it displays what buffers are opened, provides some navigation commands, and displays some very useful information about the state of the buffers by color coding their names.

Almost everyone I have met who use vim use it. I couldn't imagine working with multiple buffers without it.


(1) Small side note, here is a list of highest rated scripts from… - Neg_EV
[+3] [2009-07-31 06:42:10] jtimberman

The Vim config I use is available on GitHub [1]. It integrates plugins mentioned above:

  • NERDtree
  • Taglist
  • Fuzzy File Finder (the one by Jamis Buck [2])
  • Surrounds

And many more (like git, ruby). See the README. You can download a tarball [3] or zipfile [4], too.

As an IRC user and (obviously) a GitHub user, I use GitHub's " Gist [5]" service for pasting code and log output for helping people, or for getting help. I already upvoted other plugins above that I'm using, but this one deserves mention as "highly useful" (to me, at least).

Gist.vim [6]

It's also on GitHub [7].


[+2] [2009-08-12 12:52:16] juanjux

I use:

  • MRU: most recent files
  • bufferexplorer: easily change open buffers
  • NERD_commenter: comment code in any language
  • NERD_tree: file management Project: project files management
  • pythonhelper: show the class and method under the cursor
  • pythoncomplete: intelligent completion for Python รง
  • taglist: show symbols of currently open buffers (class names, methods, etc)
  • xml: utilities for XML and HMTL files

[+2] [2009-08-28 08:58:52] secureBadshah

I have used the DrawIt plug-in ( in gVim and it works well for small diagrams. I have mostly made network topology diagrams with this. I also used vertical block copy-paste heavily with this plug-in to adjust the components in the diagrams.

Vertical block fill-with-character is also useful for this. Actually, I rarely bother with DrawIt these days; vim's replace mode + vertical blocks are sufficiently convenient for ASCII art diagrams. - Marius Gedminas
[+2] [2009-09-08 02:57:42] hasen j

Lusty Explorer [1]

Official Description:

LustyExplorer is a fast and responsive way to manage files and buffers in Vim. It includes both a filesystem explorer (for opening new files) and a buffer explorer (for switching between currently open files) through a mostly common interface.


(1) This! LustyExplorer has increased my productivity in Vim so much. I tried many other ways of handling files, but this addon, coupled with some of my own custom code (adding Most Recently Used functionality) makes accessing almost any file super fast. Especially browsing is very fast. Or if you know the file name, and it was, say amongst the 50 most recently used files, it's almost instant. - Svend
do Lusty Explorer and NERDTree implement about the same functionality? - Sergey
[+1] [2011-06-10 15:45:44] Mark

VimWiki [1]

Vimwiki is a personal wiki for Vim -- a number of linked text files that have their own syntax highlighting.

With vimwiki you can

  • organize notes and ideas
  • manage todo-lists
  • write documentation

This is a really good one if you like to "live in vim". Just type <Leader>ws and you get a menu of your wikies, i.e. your personal notes on any topic, in whatever directory they reside. They're also easily exportable as html. I used to use Viki before, but Vimwiki feels smoother. - Dalker
[+1] [2011-06-30 16:58:42] Baha

UltiSnips [1]

This is the initial release of UltiSnips. It is the Ultimate solution for snippets under Vim. Snippets are intelligent text that spares you a lot of typing. Like many snippets solutions, this one ins heavily inspired by TextMates Snippet Syntax and offers all features that TextMate offers. But in Vim.

I like it over Snipmate because it supports nested placeholders!


[+1] [2009-07-20 14:06:00] DoxaLogos

Project [1] plugin

You can use this plugin's basic functionality to set up a list of frequently-accessed files for easy navigation. The list of files will be displayed in a window on the left side of the Vim window, and you can press or double-click on filenames in the list to open the files. This is similar to how some IDEs I've used work. I find this easier to use than having to navigate a directory hierarchy with the file-explorer. It also obviates the need for a buffer explorer because you have your list of files on the left of the Vim Window.


[+1] [2009-07-20 14:07:06] DoxaLogos

Session Manager [1]

Vim provides a ':mksession' command to save the current editing session. This plug-in helps to work with Vim sessions by keeping them in the dedicated location and by providing commands to list all sessions, open session, open last session, close session, save session and show last session. From a list of sessions you can open session, delete session, edit session and edit extra session script. Please note that session name can contain spaces and does not have to have a .vim extension.