VOoM (Vim Outliner of Markups) is a plugin for text editor Vim that turns Vim into a two-pane outliner.
Description and download page: http://www.vim.org/scripts/script.php?script_id=2657
This page is for screenshots.
The default outline layout after the command :Voom [markup]. The outline window (Tree buffer) is on the left.
This screenshot shows VOoM help file, "doc/voom.txt", which is written as an outline. It is a standard Vim help file except that it uses non-default fold markers set from a modeline at the bottom of the file. The command :Voomhelp opens this help file as an outline in a new tabpage.
|In this screenshot the Tree buffer (on the right) and the source buffer are each split in two windows to show different parts on the same outline. VOoM Tree buffers (there is one for each source buffer) can be displayed in any number of different windows and tab pages, just like any other Vim buffer. It is also possible to have an entirely different outline view in another tab page.|
This is animated GIF, see full-size image (17 sec, 102 KB).
VOoM can perform all standard outline operations typically found in an outliner program: Insert New Headline, Move nodes Up/Down/Left/Right, Copy/Cut/Paste, Sort in various ways. In addition, outline operations can be applied to a group of sibling nodes in Visual selection.
This animation shows two sibling nodes "AA" and "BB" being moved Up: the two nodes are selected in the Tree buffer using Visual mode and then Ctrl-Up is pressed repeatedly (or ^^, or <LocalLeader>u). Note that the outline operation Move Up is automatically applied to subtrees, that is to top level nodes and all their descendants.
creates the outline from reStructuredText (reST) section titles. This screenshot shows the source for reStructuredText specification available here. All major outline operations are supported and can be used to rearrange document sections. The command line area shows the current node's UNL (Uniform Node Locator) as echoed by the command :Voomunl.
VOoM was originally written to work with start fold markers with level numbers, which is one of Vim's built-in folding methods and is the most versatile outline markup.
VOoM can currently handle a variety of markups, including popular lightweight markup languages. These markups have headlines (also called headings, headers, section headers, titles) and thus support an outline structure. VOoM can work with headlines in the following formats:
The Python Log buffer, __PyLog__, is created by the command :Voomlog. When present, Python's sys.stdout and sys.stderr are appended to it instead of printed on Vim command line.
The __PyLog__ buffer is modeled after the log pane of Leo outlining editor. The Vim tab page in the screenshot emulates the default layout of Leo panes: the tree pane (top left), the log pane (top right), the body pane (below).
Several other VOoM features were inspired by Leo:
The command line area shows output of the command :Voomunl.
It is UNL (Uniform Node Locator) of node under the cursor. The term is from Leo UNL.py plugin. An UNL is like a path to the node. It lists headlines of all ancestor nodes.
The Quickfix window shows output of the command :Voomgrep.
It is like :vimgrep followed by :copen, but instead of showing matching lines it shows matching nodes and their UNLs. In this Vim script file, nodes are mostly functions. So, executing
produces a list of functions in which "some_name" is used.
The command :Voomgrep can also perform boolean AND/NOT searches and hierarchical searches (tag inheritance).
A two-pane text outliner makes an excellent organizer of bookmarks and various notes.
Vim can be configured to highlight URL links (http://..., ftp://..., file:///...) and to launch them with mouse clicks or other keys. Several Vim plugins show how to do that, e.g., netrw's gx command, utl.vim.
The command :Voomgrep is handy for finding data in a large, database-like outline, especially when there is a tagging system.
Since VOoM is not a "filetype" plugin, it should be compatible with almost any plain text note-taking format.
|VOoM Tree buffer and __PyLog__ buffer in console Vim on Windows. VOoM works with terminal Vim just as well as with GUI Vim. It should even be usable when 'compatible' is set.|
Linux, GUI Vim. Shown are $VIMRUNTIME/autoload/netrw.vim, its outline, the __PyLog__ buffer. Another Linux screenshot is here.
The VOoM plugin is cross-platform. It should work on any system with Python 2 or 3 and vim/gvim compiled with the Python interface.
This website is on GitHub: github.com/vim-voom