sponsor Vim development Vim logo Vim Book Ad

WOIM.vim : WOIM outliner (replaced by HyperList: Script# 4006)

 script karma  Rating 467/119, Downloaded by 2422    Comments, bugs, improvements  Vim wiki

created by
Geir Isene
script type
THIS PLUGIN HAS BEEN REPLACED WITH THE HYPERLIST PLUGIN - SEE: http://www.vim.org/scripts/script.php?script_id=4006

It's an Outliner, a TODO-list solution, a project management tool, a Business Process Management aid, a data modeler, a Use Case facilitator, a way to describe the human DNA or the history of the universe ;) It can also encrypt your lists and be used as a very structured  password safe.

WOIM is a methodology to describe anything - any state, item(s), pattern, action, process, transition, program, instruction set etc.

This plugin does both highlighting and various automatic handling of WOIM lists, like collapsing lists or parts of lists in a sophisticated way.

The plugin incorporates encryption. You can encrypt any part of a WOIM list or take advantage of the autoencryption feature by making the WOIM list a dot file - i.e. prefixing the file name with a dot (such as ".test.woim"). You can use this plugin to make a password safe - it turns off viminfo and swap files to ensure security.

For information on WOIM, read the WOIM description in full:



Use tabs/shifts or * for indentations

Use <SPACE> to toggle one fold
Use \0 to \9, \a, \b, \c, \d, \e, \f to show up to 15 levels expanded

Use <leader>s to remove underlining of States (prefixed with S:)
Use <leader>S to add underlining of States (prefixed with S:)
Use <leader>t to remove underlining of Transitions (prefixed with T:)
Use <leader>T to add underlining of Transitions (prefixed with T:)

Use <leader>v to add a checkbox at start of item or to toggle a checkbox
Use <leader>V to add/toggle a checkbox with a date stamp for completion

Use "gr" (without the quotation marks, signifies "Goto Ref") while the cursor is on a WOIM reference to jump to that destination in a WOIM list. Use "n" after a "gr" to verify that the reference destination is unique. A reference can be in the list or to a file by the use of #file:/pathto/filename, #file:~/filename or #file:filename.

Use <leader><SPACE> to go to the next open template element (a template element is a WOIM item ending in an equal sign)

As a sort of "presentation mode", you can traverse a WOIM list by using g<DOWN> or g<UP> to view only the current line and its ancestors. An alternative is <leader><DOWN> and <leader><UP> to open more levels down.

Use <leader>L to convert the entire document to LaTaX

The LaTeX conversion includes color coding of the various elements similar to the colors used for WOIM files within VIM.

Use <leader>z to encrypt the current line (including all sublevels if folded)
Use <leader>Z to encrypt the current file (all lines)
Use <leader>x to decrypt the current line (mark all subsequent encrypted lines)
Use <leader>X to decrypt the current file (all lines)

If you want a WOIM list to be automatically encrypted upon saving and decrypted upon opening it, just prefix the filename with a dot (like ".test.woim").

When using encryption in a WOIM list or for the whole file, you will be asked for a password - twice when saving the file and once when opening it. You must have OpenSSL in your path to take advantage of these features.

Syntax updated at start and every time you leave Insert mode

To use a WOIM list within any other file type, you can use nested syntax. Add the following to that other syntax highlighting plugin file:

  syn include @WOIM ~/.vim/syntax/woim.vim
  syn region WoimSnip matchgroup=Snip start="WOIMstart" end="WOIMend" contains=@WOIM
  hi link Snip SpecialComment

If you add those three lines in your .vim/syntax/txt.vim you will be able to include WOIM lists in files with a .txt extension like this:

This is a WOIM test list
  Here is a child to the above item
    Here is "grand child"
  Here we are one level back
    And here's another level down
    [5] Dance steps
    [3] Hurray

The "WOIMstart" and "WOIMend" must be at the start of the line.
install details
Download woim.vba. Then do:

vim woim.vba
:so %

Then read the file README_WOIM that appears in your .vim directory.

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
hyperlist.vba 2.0 2012-04-05 7.0 Geir Isene WOIM has become HyperList. This version (2.0) is the same as the initial upload of the new HyperList project. WOIM is now deprecated. Long live HyperList: http://vim.sourceforge.net/scripts/script.php?script_id=4006
woim.vba 1.7 2012-01-02 7.0 Geir Isene Plugin compatible with the newly released WOIM version 1.7 which includes several real life examples of WOIM use. See http://isene.com/woim.pdf for the newest version.

Release notes:
Expanded "gr" (Goto Reference): Made it possible to reference external files by the use of #file:/pathto/filename, #file:~/filename or #file:filename As long as the reference is prefixed with "file:" after the "#", the command "gr" will open the referenced file.
Added HTML conversion vith the use of <leader>H.
Improved LaTeX conversion.
After an HTML/LaTeX conversion, filetype is set to html/tex.
Changed the color of multi-indicator (+) from red to purple.
woim.vba 1.6 2011-12-08 7.0 Geir Isene Changes since previous version:
Added marking of literal regions with special marking of start/end ("/")
Added <leader><DOWN> and <leader><UP>
Fixed syntax marking for State/Transitions where indent is an asterisk ("*")
Fixed escaping "\", "{" and "}" for LaTeX conversion
woim.vba 1.5.3 2011-09-18 7.0 Geir Isene New feature: LaTeX conversion: Turn your WOIM list into a LaTeX document. Mapped to <leader>L (feature suggested by  Shantanu Kulkarni). Added "set autoindent" to plugin settings (thanks to Shantanu Kulkarni). Minor fixes. Updated documentation.
woim.vba 1.5.2 2011-09-08 7.0 Geir Isene   Changes:
  Added "presentation mode" where you can traverse a WOIM list with "g<DOWN>" or "g<UP>" to view only the current line and its ancestors.
  Changed Quotes and Comments to only cover one line (before when it covered several lines, the plugin became very slow for large lists).
  Added instructions in doc file on using WOIM list in other file types.
woim.vba 1.5.1 2011-08-24 7.0 Geir Isene Changes:
Minor updates to the documentation.
woim.vba 1.5.0 2011-08-15 7.0 Geir Isene Added encryption - both manual and automatic via OpenSSL:

  <leader>z encrypts the current line (including all sublevels if folded)
  <leader>Z encrypts the current file (all lines)
  <leader>x decrypts the current line
  <leader>X decrypts the current file (all lines)

A dot file (file name starts with a "." such as .test.woim) is automatically encrypted on save and decrypted on opening. You can now use this plugin for encrypted lists or a very structured password safe.
woim.vba 1.4.7 2011-06-02 7.3 Geir Isene Changes:
Modified the GotoRef function (fixed a bug and included feed back)
Better syntax highlighting for folding in gvim
Updating the README_WOIM and documentation files + other cosmetic changes
Added the possibility of disabling/overriding the WOIM plugin key mapping
Added an ftdetect file into woim.vba
(Thanks to Sergey Khorev for the last two improvements)
woim.vba 1,4,6 2011-05-31 7.3 Geir Isene Perfection:   Minor fixes due to a bout of perfectionism.

At this point I have nothing on the todo list - no fixes to be done and no features I want to implement.
So, I am looking for your input as inspiration to take this even further :)
woim.vba 1.4.5 2011-05-30 7.3 Geir Isene Major Update;


Created the documentation, includin the whole WOIM definition to make it
easily accessible within VIM.  Added the INSTALL and README files.

Created a Vimball file ("woim.vba") for easy install. Simply do:

vim woim.vba
:so %
woim.vim 1.4.2 2011-05-29 5.7 Geir Isene Fixes in 1.4.2:

Fixed "gr" (Goto Ref) for references with single quotes ('')

Added the search pattern from "gr" to the search register ("/) so that "n" can successively be used to test if the referenced destination is unique (which it should be).
woim.vim 1.4.1 2011-05-27 5.7 Geir Isene New feature:

Goto Reference: With the cursor at a WOIM reference, press "gr" to jump to that reference in the WOIM list.

Now you can navigate more easily in WOIM lists.
woim.vim 1.4 2011-05-23 5.7 Geir Isene This could have been the long awaited version 1.0 - but instead I decided to synchronize the version numbering of this VIM plugin and the WOIM description itself. From now on the releases will be synchronized, with minor fixes in the VIM plugin released as minor releases (i.e. a fix to 1.4 would be 1.4.1 and would still be on par with the WOIM definition version 1.4). The version 1.4 of the WOIM definition adds time repetition as well as "checking" of todo-list items.

This release:

New feature: Added the option of checkboxes for items (Thanks to Christopher Truett (VIM script #3584). You can now easily add a checkbox in front of any item by <leader>v and subsequently toggle that checkbox via the same (<leader>v) or <leader>V if you want to add a time stamp to a box that you "check" (this also toggles the timestamp if you "uncheck" the item).

Fixes: Some minor cleanup.
woim.vim 0.9.9 2011-04-17 6.0 Geir Isene Fix: Fixed interference between Operators and Tags

(with the advent of WOIM 1.4 [soon], this syntax/filetype plugin should reach the long awaited version 1.0)
woim.vim 0.9.8 2010-12-14 5.7 Geir Isene Feature: States (S:) is underlined by default.  <leader>s removes the underlining, while <leader>S turns on underlining of States.  Transitions are not underlined by default.  <leader>T turns on underlining, while <leader>t removes the underlining of Transitions.
Fix: Removed unnecessary "contained" to make lists syntax marked even within stub lists.
Fix: Small fixes in grouping and containing of elements.
woim.vim 0.9.6 2010-12-03 5.7 Geir Isene Feature: Added "*" as possible indentation
Fix:         Changed Multiline indicator from "*" to "+"

Now compatible with WOIM v. 1.2
woim.vim 0.9.3 2009-12-11 6.0 Geir Isene Christian Bryn caught an important bug/lacking setting. The syntax file now sets noexpandtab.
woim.vim 0.9.2 2009-10-25 6.0 Geir Isene A few needed minor fixes.
woim.vim 0.9.1 2009-08-21 6.0 Geir Isene New_feature:
Added highlighting of item motions:
<<          means "delete this item" (put at the end of a line)
>>#1.1. means "move this item to after item 1.1."
->           means "indent item right"
<-<-       means "indent item two left"
>>#1.-> means "move item to after item 1. and indent right"

woim.vim 0.9 2009-08-10 6.0 Geir Isene New_feature: Accommodated for the use of subroutine calls (##ref)
Fix: Cleaned up syntax variable names to fit modern WOIM
Fix: Multi-lines have consecutive lines start with a <space>
Fix: Quotes or Comment can now span several lines
Fix: Comments allowed in Operators
Fix: Comments and references allowed inside Qualifiers
Fix: Identifier must end in a period and then a space
Bug_fix: Allowing a period to be part of a tag
Bug_fix: Fixed wrong markup for astrices not used for multi-line
woim.vim 0.8.6 2009-07-24 6.0 Geir Isene Bug fix: Corrected attributes ending in capitals that was treated as a WOIMkey
Bug fix: Fixed references containing a hyphen
woim.vim 0.8.5 2009-07-23 6.0 Geir Isene New feature: Expanded Attributes to include relative times and greater/smaller than.
New feature: References with spaces are now accommodated for by putting it in quotes.
New feature: Made references in attributes possible.
Bug fix: Fixed references that includes ampersands ("&").
woim.vim 0.8.1 2009-07-22 6.0 Geir Isene Bug fix: Fixed highlighting of attributes with a colon (like time stamps)
woim.vim 0.8 2009-07-21 6.0 Geir Isene New feature: Expanded folding to a maximum of 15 levels with folding levels set with <leader>a to <leader>f for levels 10 to 15.
Improvement: Better syntax highlighting for indexes
Bug fix: Fixed syntax syncing when entering the document in the first place
woim.vim 0.7.2 2009-07-15 6.0 Geir Isene Better syntax highlighting for references.
Added unobtrusive highlighting of vim bottom set-lines.
woim.vim 0.7.1 2009-06-16 6.0 Geir Isene Bug fix: Fixed an error in syntax highlighting properties containing a "-" (like ISO dates).
woim.vim 0.7 2009-06-13 6.0 Geir Isene Added macro to jump to next point in a template and fill in the value. A template item is an item that ends in an equal sign and where the value after the equal sign is to be filled out. Example:

   Task name =
   Responsible person =
   Deadline =
woim.vim 0.6 2009-04-13 6.0 Geir Isene Some minor adjustments, but a needed upgrade if you are a WOIM user.
(WOIM = task list, descriptive system, process description, state description... it can describe anything,)
WOIM.vim 0.4 2009-01-16 6.0 Geir Isene Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
SourceForge.net Logo