Vim has a built in way to look up help for keywords -- the K command. Moving the cursor over a word then typing K will attempt to load a man page by running the man command in the terminal.
Many programming languages have manual systems that work in a similar way -- Ruby's ri and Go's godoc spring to mind -- Vim can support these languages by setting a custom command with keywordprg.
For example, the file that integrates Ruby's ri command (ftplugin/ruby.vim) uses setlocal to make ri the default keyword program:
It took over 120 total hours to research, plan, design and create this cheat-sheet. It is meant to be a collection of Vim's "biggest bang for your buck" features: the stuff that will provide the most usefulness to the most people.
The Vim Cheat Sheet Poster by Max Cantor is a carefully created movie-sized poster for key Vim editing commands and concepts. It was started as a Kickstarter project, and was fully-funded by 467 backers.
vim-librarian.vim by Robert Malko is a fork of Andrew Radev's simple_bookmarks.vim that allows sets of bookmarks to be restored. Like the original version, the core feature is named bookmark management, but the commands are now prefixed with VL to keep it separate.
VOoM
VOoM (vim.org: VOoM) by Vlad Irnov emulates a two-pane text outliner. It can work with fold markers with level numbers, but it can also handle various markup formats, including Markdown and vimoutliner.
Typing :Voom will create an outline of the current buffer, and the results will be displayed in a separate window.
Programming is all about focus. It's hard to focus when the phone's ringing, other people are talking about the latest terrible TV talent show, and there's a crazy busker outside attempting to cover Oasis - Wonderwall after several cans of Special Brew. But that's life, and we can't do much about it (other than invest in a seriously good quality pair of headphones). When it comes to code, however, we have to deal with a lot of noise -- implementation details that aren't relevant to the task at hand. One way of mitigating this is folding -- hiding parts of files based on various rules to help claw back some precious neurological capacity.
Vim supports six folding methods: manual, indent, expr, syntax, diff, and marker. Let's look at manual and indent to introduce the basics.
Manually Folding
Select a folding method by setting foldmethod, abbreviated to the more convenient fdm. The default value is manual, so no folding occurs. There are several ways to add folds:
If you're one of the growing number of people who synchronises their dotfiles using a service like GitHub, then you've probably found that certain systems need different configuration options. For example, if you switch between Mac OS and Linux then some executables won't be present on both.
Vim provides a few ways to mitigate this, and one of the best is the executable function. By using this function, you can make your .vimrc adapt to the system.
I use this to conditionally use ack instead of grep if it's available:
undotree.vim (GitHub: mbbill / undotree, License: BSD) by Ming Bai displays a visual representation of Vim's undo branches.
Once it's installed, a panel can be displayed by typing :UndotreeToggle that shows edits over time, and there's a diff panel which shows an overview of text changes.
QuickFix is designed to display compiler errors -- a list of errors is displayed and can be selected to jump to a specific file and line. It's also used for :vimgrep -- each item in the results list is displayed and can be used to navigate between files.
Typing :grep Vim *.md will find matches for the word Vim in all the Markdown files in the current directory. Typing :copen will open the quickfix list:
Google's Android SDK can be downloaded separately from the Eclipse tools, but due to the close level of integration between the two, Eclipse is probably the easiest way to get started with Android development. Once you know the basics, you'll be itching to break out of Eclipse and use Vim.
Setting everything up can be awkward, so "bpowell" has released vim-android, which is an installation script to quick start a Vim-friendly Android development environment. It includes Java-aware tab completion, ctags, and a script to find the AndroidManifest.xml file.
vim-dict (GitHub: szw / vim-dict, License: Vim) by Szymon Wrozynski is a client for dict servers. It uses curl to access the HTTP API, and will attempt to check dict.org by default.
A word can be checked by typing :Dict hello, and the results will be displayed in a new window.
Vdebug
Vdebug (GitHub: joonty / vdebug, License: MIT) by Jonathan Cairns is a debugger client that works with PHP, Python, Ruby, and Perl. Like other Vim debugger scripts, this one works using the DBGP protocol and is compatible with Xdebug. The author has included configuration details which can be read by typing :help VdebugSetUp.
Windows are a viewport on a buffer. Opening Vim displays a single window, which is how most text editors generally appear. However, the real power of Vim, and something people miss out on in a lot of editors, is multiple windows. Windows can be split horizontally and vertically as needed, and then moved, resized, and closed.
Window commands start with CTRL-W, which makes it pretty easy to learn the basic commands: