summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xssn.at>2009-11-29 22:01:46 +0100
committerFlorian Pritz <bluewind@xssn.at>2009-11-29 22:01:46 +0100
commit9c469a7cdab300ae53387f438dde353bc64d23c1 (patch)
tree9e3714957f7ba21115123ba3e9c97c5260e72472
parentf5d7fe2346ec00aecc12116ae9c209b3ec6e4a79 (diff)
downloaddotfiles-9c469a7cdab300ae53387f438dde353bc64d23c1.tar.gz
dotfiles-9c469a7cdab300ae53387f438dde353bc64d23c1.tar.xz
vim stuff
Signed-off-by: Florian Pritz <bluewind@xssn.at>
-rwxr-xr-x.vim/colors/vo_dark.vim81
-rwxr-xr-x.vim/colors/vo_light.vim81
-rw-r--r--.vim/doc/tags64
-rwxr-xr-x.vim/doc/vo_readme.txt1242
-rw-r--r--.vim/filetype.vim1
-rwxr-xr-x.vim/ftdetect/vo_base.vim84
-rwxr-xr-x.vim/ftplugin/vo_base.vim676
-rwxr-xr-x.vim/syntax/vo_base.vim312
8 files changed, 2541 insertions, 0 deletions
diff --git a/.vim/colors/vo_dark.vim b/.vim/colors/vo_dark.vim
new file mode 100755
index 0000000..894f17a
--- /dev/null
+++ b/.vim/colors/vo_dark.vim
@@ -0,0 +1,81 @@
+let g:colors_name="VO Dark"
+hi normal guifg=white guibg=black ctermfg=white ctermbg=black
+hi StatusLine guifg=white guibg=black ctermfg=white ctermbg=black
+hi StatusLineNC guifg=white guibg=black ctermfg=white ctermbg=black
+hi VertSplit guifg=white guibg=black ctermfg=white ctermbg=black
+hi OL1 guifg=white ctermfg=white
+hi OL2 guifg=red ctermfg=red
+hi OL3 guifg=lightblue ctermfg=lightblue
+hi OL4 guifg=violet ctermfg=magenta
+hi OL5 guifg=white ctermfg=white
+hi OL6 guifg=red ctermfg=red
+hi OL7 guifg=lightblue ctermfg=lightblue
+hi OL8 guifg=violet ctermfg=magenta
+hi OL9 guifg=white ctermfg=white
+
+" colors for tags
+hi outlTags guifg=darkred ctermfg=darkred
+
+" color for body text
+hi BT1 guifg=green ctermfg=green
+hi BT2 guifg=green ctermfg=green
+hi BT3 guifg=green ctermfg=green
+hi BT4 guifg=green ctermfg=green
+hi BT5 guifg=green ctermfg=green
+hi BT6 guifg=green ctermfg=green
+hi BT7 guifg=green ctermfg=green
+hi BT8 guifg=green ctermfg=green
+hi BT9 guifg=green ctermfg=green
+
+" color for pre-formatted text
+hi PT1 guifg=blue ctermfg=cyan
+hi PT2 guifg=blue ctermfg=cyan
+hi PT3 guifg=blue ctermfg=cyan
+hi PT4 guifg=blue ctermfg=cyan
+hi PT5 guifg=blue ctermfg=cyan
+hi PT6 guifg=blue ctermfg=cyan
+hi PT7 guifg=blue ctermfg=cyan
+hi PT8 guifg=blue ctermfg=cyan
+hi PT9 guifg=blue ctermfg=cyan
+
+" color for tables
+hi TA1 guifg=darkviolet ctermfg=cyan
+hi TA2 guifg=darkviolet ctermfg=cyan
+hi TA3 guifg=darkviolet ctermfg=cyan
+hi TA4 guifg=darkviolet ctermfg=cyan
+hi TA5 guifg=darkviolet ctermfg=cyan
+hi TA6 guifg=darkviolet ctermfg=cyan
+hi TA7 guifg=darkviolet ctermfg=cyan
+hi TA8 guifg=darkviolet ctermfg=cyan
+hi TA9 guifg=darkviolet ctermfg=cyan
+
+" color for user text (wrapping)
+hi UT1 guifg=darkred ctermfg=cyan
+hi UT2 guifg=darkred ctermfg=cyan
+hi UT3 guifg=darkred ctermfg=cyan
+hi UT4 guifg=darkred ctermfg=cyan
+hi UT5 guifg=darkred ctermfg=cyan
+hi UT6 guifg=darkred ctermfg=cyan
+hi UT7 guifg=darkred ctermfg=cyan
+hi UT8 guifg=darkred ctermfg=cyan
+hi UT9 guifg=darkred ctermfg=cyan
+
+" color for user text (non-wrapping)
+hi UB1 guifg=darkgray ctermfg=cyan
+hi UB2 guifg=darkgray ctermfg=cyan
+hi UB3 guifg=darkgray ctermfg=cyan
+hi UB4 guifg=darkgray ctermfg=cyan
+hi UB5 guifg=darkgray ctermfg=cyan
+hi UB6 guifg=darkgray ctermfg=cyan
+hi UB7 guifg=darkgray ctermfg=cyan
+hi UB8 guifg=darkgray ctermfg=cyan
+hi UB9 guifg=darkgray ctermfg=cyan
+
+" colors for folded sections
+hi Folded guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black
+hi FoldColumn guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black
+
+" colors for experimental spelling error highlighting
+" this only works for spellfix.vim with will be cease to exist soon
+hi spellErr gui=underline guifg=yellow cterm=underline ctermfg=yellow
+hi BadWord gui=underline guifg=yellow cterm=underline ctermfg=yellow
diff --git a/.vim/colors/vo_light.vim b/.vim/colors/vo_light.vim
new file mode 100755
index 0000000..beef395
--- /dev/null
+++ b/.vim/colors/vo_light.vim
@@ -0,0 +1,81 @@
+let g:colors_name="VO Light"
+hi normal guifg=black guibg=white ctermfg=white ctermbg=black
+hi StatusLine guifg=black guibg=white ctermfg=white ctermbg=black
+hi StatusLineNC guifg=black guibg=white ctermfg=white ctermbg=black
+hi VertSplit guifg=black guibg=white ctermfg=white ctermbg=black
+hi OL1 guifg=black ctermfg=black
+hi OL2 guifg=red ctermfg=red
+hi OL3 guifg=blue ctermfg=blue
+hi OL4 guifg=darkviolet ctermfg=magenta
+hi OL5 guifg=black ctermfg=black
+hi OL6 guifg=red ctermfg=red
+hi OL7 guifg=blue ctermfg=blue
+hi OL8 guifg=darkviolet ctermfg=magenta
+hi OL9 guifg=black ctermfg=black
+
+" colors for tags
+hi outlTags guifg=darkred ctermfg=darkred
+
+" color for body text
+hi BT1 guifg=darkgreen ctermfg=green
+hi BT2 guifg=darkgreen ctermfg=green
+hi BT3 guifg=darkgreen ctermfg=green
+hi BT4 guifg=darkgreen ctermfg=green
+hi BT5 guifg=darkgreen ctermfg=green
+hi BT6 guifg=darkgreen ctermfg=green
+hi BT7 guifg=darkgreen ctermfg=green
+hi BT8 guifg=darkgreen ctermfg=green
+hi BT9 guifg=darkgreen ctermfg=green
+
+" color for pre-formatted text
+hi PT1 guifg=darkblue ctermfg=cyan
+hi PT2 guifg=darkblue ctermfg=cyan
+hi PT3 guifg=darkblue ctermfg=cyan
+hi PT4 guifg=darkblue ctermfg=cyan
+hi PT5 guifg=darkblue ctermfg=cyan
+hi PT6 guifg=darkblue ctermfg=cyan
+hi PT7 guifg=darkblue ctermfg=cyan
+hi PT8 guifg=darkblue ctermfg=cyan
+hi PT9 guifg=darkblue ctermfg=cyan
+
+" color for tables
+hi TA1 guifg=darkviolet ctermfg=cyan
+hi TA2 guifg=darkviolet ctermfg=cyan
+hi TA3 guifg=darkviolet ctermfg=cyan
+hi TA4 guifg=darkviolet ctermfg=cyan
+hi TA5 guifg=darkviolet ctermfg=cyan
+hi TA6 guifg=darkviolet ctermfg=cyan
+hi TA7 guifg=darkviolet ctermfg=cyan
+hi TA8 guifg=darkviolet ctermfg=cyan
+hi TA9 guifg=darkviolet ctermfg=cyan
+
+" color for user text (wrapping)
+hi UT1 guifg=darkred ctermfg=cyan
+hi UT2 guifg=darkred ctermfg=cyan
+hi UT3 guifg=darkred ctermfg=cyan
+hi UT4 guifg=darkred ctermfg=cyan
+hi UT5 guifg=darkred ctermfg=cyan
+hi UT6 guifg=darkred ctermfg=cyan
+hi UT7 guifg=darkred ctermfg=cyan
+hi UT8 guifg=darkred ctermfg=cyan
+hi UT9 guifg=darkred ctermfg=cyan
+
+" color for user text (non-wrapping)
+hi UB1 guifg=darkgray ctermfg=cyan
+hi UB2 guifg=darkgray ctermfg=cyan
+hi UB3 guifg=darkgray ctermfg=cyan
+hi UB4 guifg=darkgray ctermfg=cyan
+hi UB5 guifg=darkgray ctermfg=cyan
+hi UB6 guifg=darkgray ctermfg=cyan
+hi UB7 guifg=darkgray ctermfg=cyan
+hi UB8 guifg=darkgray ctermfg=cyan
+hi UB9 guifg=darkgray ctermfg=cyan
+
+" colors for folded sections
+hi Folded guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=white
+hi FoldColumn guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=white
+
+" colors for experimental spelling error highlighting
+" this only works for spellfix.vim with will be cease to exist soon
+hi spellErr gui=underline guifg=darkred cterm=underline ctermfg=darkred
+hi BadWord gui=underline guifg=darkred cterm=underline ctermfg=darkred
diff --git a/.vim/doc/tags b/.vim/doc/tags
index 2c89b70..93b871e 100644
--- a/.vim/doc/tags
+++ b/.vim/doc/tags
@@ -1,4 +1,11 @@
+'snippets' snipMate.txt /*'snippets'*
+.snippet snipMate.txt /*.snippet*
+.snippets snipMate.txt /*.snippets*
Align-copyright Align.txt /*Align-copyright*
+ExtractSnips() snipMate.txt /*ExtractSnips()*
+ExtractSnipsFile() snipMate.txt /*ExtractSnipsFile()*
+Filename() snipMate.txt /*Filename()*
+ResetSnippets() snipMate.txt /*ResetSnippets()*
align Align.txt /*align*
align-align Align.txt /*align-align*
align-codepoint Align.txt /*align-codepoint*
@@ -83,3 +90,60 @@ alignmap-tt Align.txt /*alignmap-tt*
alignmap-t~ Align.txt /*alignmap-t~*
alignmaps Align.txt /*alignmaps*
alignusage Align.txt /*alignusage*
+g:snippets_dir snipMate.txt /*g:snippets_dir*
+g:snips_author snipMate.txt /*g:snips_author*
+i_CTRL-R_<Tab> snipMate.txt /*i_CTRL-R_<Tab>*
+list-snippets snipMate.txt /*list-snippets*
+multi_snip snipMate.txt /*multi_snip*
+otl2html vo_readme.txt /*otl2html*
+snipMate snipMate.txt /*snipMate*
+snipMate-$# snipMate.txt /*snipMate-$#*
+snipMate-${#:} snipMate.txt /*snipMate-${#:}*
+snipMate-${#} snipMate.txt /*snipMate-${#}*
+snipMate-author snipMate.txt /*snipMate-author*
+snipMate-commands snipMate.txt /*snipMate-commands*
+snipMate-contact snipMate.txt /*snipMate-contact*
+snipMate-description snipMate.txt /*snipMate-description*
+snipMate-disadvantages snipMate.txt /*snipMate-disadvantages*
+snipMate-expandtab snipMate.txt /*snipMate-expandtab*
+snipMate-features snipMate.txt /*snipMate-features*
+snipMate-filename snipMate.txt /*snipMate-filename*
+snipMate-indenting snipMate.txt /*snipMate-indenting*
+snipMate-placeholders snipMate.txt /*snipMate-placeholders*
+snipMate-remap snipMate.txt /*snipMate-remap*
+snipMate-settings snipMate.txt /*snipMate-settings*
+snipMate-usage snipMate.txt /*snipMate-usage*
+snipMate.txt snipMate.txt /*snipMate.txt*
+snippet snipMate.txt /*snippet*
+snippet-syntax snipMate.txt /*snippet-syntax*
+snippets snipMate.txt /*snippets*
+vimoutliner vo_readme.txt /*vimoutliner*
+vo vo_readme.txt /*vo*
+vo-activities vo_readme.txt /*vo-activities*
+vo-advanced vo_readme.txt /*vo-advanced*
+vo-auto-install vo_readme.txt /*vo-auto-install*
+vo-cautions vo_readme.txt /*vo-cautions*
+vo-checkbox vo_readme.txt /*vo-checkbox*
+vo-color vo_readme.txt /*vo-color*
+vo-command vo_readme.txt /*vo-command*
+vo-debian vo_readme.txt /*vo-debian*
+vo-executable-lines vo_readme.txt /*vo-executable-lines*
+vo-hoisting vo_readme.txt /*vo-hoisting*
+vo-install vo_readme.txt /*vo-install*
+vo-license vo_readme.txt /*vo-license*
+vo-maketags vo_readme.txt /*vo-maketags*
+vo-manual-install vo_readme.txt /*vo-manual-install*
+vo-menu vo_readme.txt /*vo-menu*
+vo-objects vo_readme.txt /*vo-objects*
+vo-other-files vo_readme.txt /*vo-other-files*
+vo-other-info vo_readme.txt /*vo-other-info*
+vo-philosophy vo_readme.txt /*vo-philosophy*
+vo-plugins vo_readme.txt /*vo-plugins*
+vo-post-processors vo_readme.txt /*vo-post-processors*
+vo-running vo_readme.txt /*vo-running*
+vo-scripts vo_readme.txt /*vo-scripts*
+vo-testing vo_readme.txt /*vo-testing*
+vo-troubleshooting vo_readme.txt /*vo-troubleshooting*
+vo-updating vo_readme.txt /*vo-updating*
+vo-version vo_readme.txt /*vo-version*
+vo_readme.txt vo_readme.txt /*vo_readme.txt*
diff --git a/.vim/doc/vo_readme.txt b/.vim/doc/vo_readme.txt
new file mode 100755
index 0000000..2102a08
--- /dev/null
+++ b/.vim/doc/vo_readme.txt
@@ -0,0 +1,1242 @@
+*vo_readme.txt* VimOutliner 0.3.4 for Vim 6.1+ *vo* *vimoutliner*
+
+Contents
+
+ LICENSE |vo-license|
+ VERSION |vo-version|
+ INSTALLING AND TESTING VIMOUTLINER |vo-install|
+ Automatic method |vo-auto-install|
+ Updating an existing installation |vo-updating|
+ Manual method |vo-manual-install|
+ Color schemes |vo-color|
+ Testing |vo-testing|
+ Debian |vo-debian|
+ USING VIMOUTLINER ON OTHER FILE TYPES |vo-other-files|
+ TROUBLESHOOTING |vo-troubleshooting|
+ VIMOUTLINER PHILOSOPHY |vo-philosophy|
+ RUNNING VIMOUTLINER |vo-running|
+ What are the comma comma commands |vo-command|
+ How do you perform basic VimOutliner activities |vo-activities|
+ Menu |vo-menu|
+ Vim Outliner objects |vo-objects|
+ Post Processors |vo-post-processors|
+ CAUTIONS!!! |vo-cautions|
+ ADVANCED |vo-advanced|
+ Executable Lines |vo-executable-lines|
+ PLUGINS |vo-plugins|
+ Checkboxes |vo-checkbox|
+ Hoisting |vo-hoisting|
+ SCRIPTS |vo-scripts|
+ vo_maketags.pl |vo-maketags|
+ otl2html.py |otl2html|
+ OTHER INFORMATION |vo-other-info|
+
+-------------------------------------------------------------------------
+LICENSE *vo-license*
+
+ VimOutliner Copyright (C) 2001, 2003 by Steve Litt
+ Copyright (C) 2004 by Noel Henson
+ Licensed under the GNU General Public License (GPL), version 2
+ Absolutely no warranty, see COPYING file for details.
+
+ If your distro doesn't come with this file
+ HTML: http://www.gnu.org/copyleft/gpl.html
+ Text: http://www.gnu.org/copyleft/gpl.txt
+
+-------------------------------------------------------------------------
+VERSION *vo-version*
+
+ Version 0.3.4
+ Released
+
+ Additions/changes:
+ Added ,,cp which works like ,,c% but forces % signs to be added
+ Color schemes have been added
+ Checkboxes and hoisting default to 'on'
+ Modified ,,cb and ,,c% (and ,,cp) to work only on headings
+ Fixed the ,,cz command to make the correct call
+ Added descriptions of VO objects to help
+ (headings, text, tables, etc.)
+
+ Bug fixes:
+ W18 errors have been fixed
+
+-------------------------------------------------------------------------
+INSTALLING AND TESTING VIMOUTLINER *vo-install*
+
+ How do I install VimOutliner?
+ Automatic Method |vo-auto-install|
+ Updating |vo-updating|
+ Manual Method |vo-manual-install|
+ Testing |vo-testing|
+
+ Automatic method *vo-auto-install*
+
+ The new automatic installation targets Unix-compatible
+ platforms.
+ $ tar xzvf vimoutliner-0.3.x.tar.gz
+ $ cd vimoutliner
+ $ sh install.sh
+
+ First you can decide whether to install the VimOutliner
+ files or abort the process leaving everything unchanged.
+ Assuming you confirmed the installation, the script
+ creates the necessary directory tree and copies the files
+ which provide the core functionality and documentation.
+
+ With the second question you decide whether you want to
+ install some brand new add-ons, currently implementing
+ hoisting and checkboxes.
+
+ Updating an existing installation *vo-updating*
+
+ Updating an existing installation might require some
+ manual work.
+
+ If you are already working with a previous VimOutliner
+ release, there is a slight chance that the current directory
+ tree is different from your current one. In this case, you
+ will have to manually migrate your files to the new locations.
+
+ The installation script creates unique backups of files
+ being replaced with newer versions. So if you put some
+ local customisations into, say $HOME/.vimoutlinerrc, you'll
+ probably have to merge the backup with the new file by hand.
+
+
+ Manual method *vo-manual-install*
+
+ You can also copy the files from the unpacked distribution
+ tarball into their destination folders by yourself. The
+ following steps are a description of what has to go where
+ and assume some knowledge of your vim setup.
+
+ If you encounter problems, please contact the mailinglist
+ for an immediate solution and more complete future
+ documentation. www.lists.vimoutliner.org
+
+ If you want to setup VimOutliner on a system running Microsoft
+ Windows, the directory $HOME denotes the base folder of the
+ vim installation. If you're on Unix based system, $HOME
+ is as usual.
+
+ You need the following subtrees in your $HOME directory:
+ $HOME/.vim/
+ doc/ ftdetect/ ftplugin/ syntax/
+ $HOME/.vimoutliner/
+ plugins/ scripts/
+
+ The distribution tarball unpacks into a directory vimoutliner
+ with the following contents
+ add-ons/
+ plugins/ (2)
+ scripts/ (2)
+ doc/ (1)
+ ftdetect/ (1)
+ ftplugin/ (1)
+ install.sh*
+ scripts/ (2)
+ syntax/ (1)
+ vimoutlinerrc (3)
+
+ (1) The content of these folders should be copied to their
+ namesakes in the $HOME/.vim folder
+ (2) The content of these folders should be copied to their
+ namesakes in the $HOME/.vimoutliner folder
+ (3) This file needs to be moved to $HOME/.vimoutlinerrc
+
+ Your $HOME/.vimrc file should contain the lines
+ filetype plugin indent on
+ syntax on
+
+ Your $HOME/.vim/ftplugin/vo_base.vim file should contain
+ the lines
+ runtime! ftdetect/*.vim
+
+ Finally, you need to integrate the online help provided
+ with VimOutliner into the vim help system. Start vim
+ and execute the following command:
+ :helptags $HOME/.vim/doc
+
+ At this point, VimOutliner should be functional.
+ Type "help vo" to get started.
+
+ Color Schemes *vo-color*
+
+ Color schemes specify the colors Vim Outliner uses when
+ displaying an outline. Colors are specified by object and level.
+ These objects currently include: headings, body text, pre-
+ formatted body text, tables and others. See |vo-objects| for
+ more information.
+
+ Color scheme files are located in the system-wide vim colors
+ directory and/or your $HOME/.vim/colors directory. You can
+ select from any of the provided schemes. Vim Outliner internally
+ includes a scheme the matches vo_light.vim.
+
+ To override the default color scheme you can edit these lines
+ in your $HOME/.vimoutlinerrc file:
+
+ "Custom Colors **********************************
+ " Uncomment this next line to force using VO on
+ " a light background
+ " colorscheme vo_light
+ " Uncomment this next line to force using VO on
+ " a dark background
+ " colorscheme vo_dark
+
+ To create your own scheme follow these simple steps:
+
+ 1. Move to your $HOME/.vim/colors directory.
+ If you don't have one, create it.
+
+ 2. Make a copy of one of the included schemes to use
+ as a starting point. You should be able to find them
+ in places like: $HOME/.vim/colors and
+ /usr/share/vim/vim63/colors. Put the copy in your
+ own colors directory ($HOME/.vim/colors)
+
+ 3. Edit the scheme file to change whatever colors you
+ wish.
+
+ 4. Select the scheme in your $HOME/.vimoutlinerrc file.
+ The line should look something like this:
+
+ colorscheme noel
+
+ That's all there is to it.
+
+ Testing base functionality *vo-testing*
+
+ rm $HOME/vo_test.otl
+ gvim $HOME/vo_test.otl
+ or vim $HOME/vo_test.otl
+ Verify the following:
+ Tabs indent the text
+ Different indent levels are different colors
+ Lines starting with a colon and space word-wrap
+ Lines starting with colons are body text. They should
+ word wrap and should be a special color (typically
+ green, but it can vary). Verify that paragraphs of body
+ text can be reformatted with the Vim gq commands.
+
+ Verify interoutline linking
+
+ Interoutline linking currently requires a working perl installation
+ to generate the necessary tag file. We are looking into porting
+ this to vim's own scripting language.
+
+ Place the following two lines in $HOME/vo_test.otl:
+ _tag_newfile
+ $HOME/vo_newfile.otl
+ Note that in the preceding, the 2nd line should be indented
+ from the first.
+
+ To create VimOutliner's tag file $HOME/.vimoutliner/vo_tags.tag,
+ run vo_maketags.pl, which resides in $HOME/.vimoutliner/scripts/:
+ $ $HOME/.vimoutliner/scripts/vo_maketags.pl $HOME/vo_test.otl
+
+ In $HOME/vo_test.otl
+ Cursor to the _tag_newfile marker
+ Press Ctrl+K
+ You should be brought to $HOME/vo_newfile.otl
+ Press Ctrl+N
+ You should be brought back to $HOME/vo_test.otl
+ Note:
+ Ctrl+K is a VimOutliner synonym for Ctrl+]
+ Ctrl+N is a VimOutliner synonym for Ctrl+T
+
+ Debian Installation *vo-debian*
+
+ Debian does include Vim Outliner as a package. However some
+ Debian version require this line to be added to your .vimrc file:
+
+ syntax on
+
+-------------------------------------------------------------------------
+USING VIMOUTLINER ON OTHER FILE TYPES *vo-other-files*
+
+ How do I use VimOutliner on non .otl files
+
+ Overview
+ Previous VimOutliner versions used the ol script to invoke
+ VimOutliner. As of VimOutliner 0.3.0, the ol script is no
+ longer necessary nor provided. Instead, VimOutliner is now a
+ Vim plugin, so Vim does all the work.
+
+ This makes VimOutliner much simpler to use in most cases,
+ but Vim plugins are file extension based, meaning that if
+ you want to use VimOutliner on a file extension other than
+ .otl, you must declare that file extension in
+ $HOME/.vim/ftdetect/vo_base.vim. In this section we'll
+ use the .emdl extension (Easy Menu Definition Language)
+ as an example.
+
+ To enable VimOutliner work with .emdl files, do this:
+ vim $HOME/.vim/ftdetect/vo_base.vim
+ Right below the line reading:
+ au! BufRead,BufNewFile *.otl setfiletype vo_base
+ Insert the following line:
+ au! BufRead,BufNewFile *.emdl setfiletype vo_base
+ Save and exit
+ Test with the following:
+ gvim $HOME/vo_test.emdl
+ You should get
+ level colors,
+ body text (lines starting with colon)
+ comma comma commands (try ,,2 and ,,1)
+
+-------------------------------------------------------------------------
+TROUBLESHOOTING *vo-troubleshooting*
+
+ Troubleshooting
+
+ I can't switch between colon based and space based body text
+ See next question
+
+ My ,,b and ,,B don't do anything. How do I fix it?
+ vim $HOME/.vim/ftplugin/vo_base.vim
+ Search for use_space_colon
+ Make sure it is set to 0, not 1
+ Rerun Vim, and ,,b and ,,B should work
+
+ I don't get VimOutliner features on files of extension .whatever
+ vim $HOME/.vim/ftdetect/vo_base.vim
+ Right below the line reading:
+ au! BufRead,BufNewFile *.otl setfiletype vo_base
+ Insert the following line:
+ au! BufRead,BufNewFile *.whatever setfiletype vo_base
+ Save and exit
+
+-------------------------------------------------------------------------
+VIMOUTLINER PHILOSOPHY *vo-philosophy*
+
+ Authoring Speed
+ VimOutliner is an outline processor with many of the same
+ features as Grandview, More, Thinktank, Ecco, etc. Features
+ include tree expand/collapse, tree promotion/demotion, level
+ sensitive colors, interoutline linking, and body text.
+
+ What sets VimOutliner apart from the rest is that it's been
+ constructed from the ground up for fast and easy authoring.
+ Keystrokes are quick and easy, especially for someone knowing the
+ Vim editor. The mouse is completely unnecessary (but is supported
+ to the extent that Vim supports the mouse). Many of the
+ VimOutliner commands start with a double comma because that's
+ very quick to type.
+
+ Many outliners are prettier than VimOutliner. Most other
+ outliners are more intuitive for the newbie not knowing Vim. Many
+ outliners are more featureful than VimOutliner (although
+ VimOutliner gains features monthly and is already very powerful).
+ Some outliners are faster on lookup than VimOutliner. But as far
+ as we know, NO outliner is faster at getting information out of
+ your mind and into an outline than VimOutliner.
+
+ VimOutliner will always give you lightning fast authoring. That's
+ our basic, underlying philosophy, and will never change, no
+ matter what features are added.
+
+ Vim integration
+ Earlier VimOutliner versions prided themselves on being
+ standalone applications, self-contained in a single directory
+ with a special script to run everything.
+
+ As of 0.3.0, VimOutliner is packaged as a Vim Plugin, eliminating
+ the need for the ol script, which many saw as clumsy. Given that
+ all VimOutliner features are produced by the Vim engine, it makes
+ perfect sense to admit that VimOutliner is an add-on to Vim.
+
+ Therefore VimOutliner now prides itself in being a Vim plugin.
+ With the VimOutliner package installed, the Vim editor yields the
+ VimOutliner feature set for files whose extensions are listed as
+ vo_base types in $HOME/.vim/ftplugin/vo_base.vim.
+
+ The Vim Plugin philosophy yields several benefits:
+ Less reliance on Perl, bash and environment vars
+ (upcoming) Portability between Linux, Windows and Mac
+ (upcoming) Installation via Vim script
+
+-------------------------------------------------------------------------
+RUNNING VIMOUTLINER *vo-running*
+
+ Vim knowledge is a prerequisite
+ Overview
+ You needn't be a Vim expert to use VimOutliner. If you know
+ the basics -- inserting and deleting linewise and
+ characterwise, moving between command and insert modes, use
+ of Visual Mode selections,and reformatting, you should be
+ well equipped to use VimOutliner.
+
+ VimOutliner is a set of Vim scripts and configurations. Its
+ features all come from the Vim editor's engine. If you do not
+ know Vim, you'll need to learn the Vim basics before using
+ VimOutliner. Start by taking the Vim tutorial. The tutorial
+ should take about 2 hours.
+
+ VimOutliner is so fast, that if you often use outlining,
+ you'll make up that time within a week.
+
+ Taking the Vim tutorial
+ Run vim or gvim
+ Type the command, :help tutor
+ Follow the instructions
+
+ What are the comma comma commands *vo-command*
+ Overview
+ For maximum authoring speed, VimOutliner features are
+ accessed through keyboard commands starting with 2 commas.
+ The double comma followed by a character is incredibly fast
+ to type.
+
+ We expect to create more comma comma commands, so try not to
+ create your own, as they may clash with later comma comma
+ commands. If you have an exceptionally handy command, please
+ report it to the VimOutliner list. Perhaps others could
+ benefit from it.
+
+ Command list
+ ,,D all VimOutliner reserved command
+ ,,H all reserved for manual de-hoisting (add-on)
+ ,,h all reserved for hoisting (add-on)
+ ,,1 all set foldlevel=0
+ ,,2 all set foldlevel=1
+ ,,3 all set foldlevel=2
+ ,,4 all set foldlevel=3
+ ,,5 all set foldlevel=4
+ ,,6 all set foldlevel=5
+ ,,7 all set foldlevel=6
+ ,,8 all set foldlevel=7
+ ,,9 all set foldlevel=8
+ ,,0 all set foldlevel=99999
+ ,,- all Draw dashed line
+ ,,f normal Directory listing of the current directory
+ ,,s normal Sort sub-tree under cursor ascending
+ ,,S normal Sort sub-tree under cursor descending
+ ,,t normal Append timestamp (HH:MM:SS) to heading
+ ,,T normal Pre-pend timestamp (HH:MM:SS) to heading
+ ,,T normal Pre-pend timestamp (HH:MM:SS) to heading
+ ,,t insert Insert timestamp (HH:MM:SS) at cursor
+ ,,d normal Append datestamp (YYYY-MM-DD) to heading
+ ,,d insert Insert datestamp (YYYY-MM-DD) at cursor
+ ,,D normal Pre-pend datestamp (YYYY-MM-DD) to heading
+ ,,B normal Make body text start with a space
+ ,,b normal Make body text start with a colon and space
+ ,,w insert Save changes and return to insert mode
+ ,,e normal Execute the executable tag line under cursor
+
+ What are some other VimOutliner Commands
+
+ Overview
+ Naturally, almost all Vim commands work in VimOutliner.
+ Additionally, VimOutliner adds a few extra commands besides
+ the comma comma commands discussed previously.
+
+ Command list:
+ Ctrl+K Follow tag (Synonym for Ctrl+])
+ Ctrl+N Return from tag (Synonym for Ctrl+T)
+ Q Reformat (Synonym for gq)
+
+ How do you perform basic VimOutliner activities *vo-activities*
+
+ How do I collapse a tree within command mode?
+ zc
+ (note: a full list of folding commands |fold-commands|)
+
+ How do I expand a tree within command mode?
+ To expand one level:
+ zo
+ To expand all the way down
+ zO
+
+ How do I demote a headline?
+ In command mode, >>
+ In insert mode at start of the line, press the Tab key
+ In insert mode within the headline, Ctrl+T
+
+ How do I promote a headline?
+ In command mode, <<
+ In insert mode at start of the line, press the Backspace key
+ In insert mode within the headline, Ctrl+D
+
+ How do I promote or demote several consecutive headlines?
+ Highlight the lines with the V command
+ Press < to promote or > to demote. You can precede
+ the < or > with a count to promote or demote several levels
+
+ How do I promote or demote an entire tree?
+ Collapse the tree
+ Use << or >> as appropriate
+
+ How do I collapse an entire outline?
+ ,,1
+
+ How do I maximally expand an entire outline?
+ ,,0
+
+ How do I expand an outline down to the third level?
+ ,,3
+
+ How do I move a tree?
+ Use Vim's visual cut and paste
+
+ How do I create body text?
+ Open a blank line below a headline
+ Start the line with a colon followed by a space
+ Continue to type. Your text will wrap
+
+ How do I reformat body text?
+ Highlight (Shift+V) the body text to be reformatted
+ Use the gq command to reformat
+
+ How do I reformat one paragraph of body text?
+ The safest way is highlighting.
+ DANGER! Other methods can reformat genuine headlines.
+
+ How do I switch between colon based and space based body text?
+ ,,b for colon based, ,,B for space based
+
+ What if ,,b and ,,B don't work
+ Change variable use_space_colon from 1 to 0
+ in $HOME/.vim/ftplugin/vo_base.vim
+
+ How do I perform a wordcount?
+ Use the command :w !wc
+ The space before the exclamation point is a MUST.
+
+ Menu *vo-menu*
+
+ There is a simple menu included in Vim Outliner when running
+ in GUI mode. Named 'VO', you can usually find it right next to the
+ 'Help' menu. There are commands to change the fold level and select
+ alternate color schemes. There is also entries for common tools.
+ Currently there are only two entries for running the otl2html.py
+ script included with VO.
+
+ The first otl2html.py tool item executes the script with default
+ options. The only control a user has it to modify the nnnnnn.css
+ file.
+
+ The second tool item calls a shell script, 'myotl2html.sh'. This
+ script should be provided by the user and is not included in VO
+ releases. A sample myotl2html.sh script might look like this:
+
+ #!/bin/bash
+ otl2html.py -S pjtstat.css $1 > $HOME/public_html/$1.html
+
+ If you have several different types of reports you create regularly,
+ you can create your own menu entries. Just add lines like these to
+ your ~/.vimoutlinerrc file:
+
+ amenu &VO.&Reports.&Big\ Project :!otl2html.py -S big.css % > %.html
+ amenu &VO.&Reports.&Hot\ List :!otl2html.py -S todo.css % > %.html
+ amenu &VO.&Reports.&Weekly :!otl2html.py -S weekly.css % > %.html
+
+ I'm sure you get the idea.
+
+ Vim Outliner Objects *vo-objects*
+
+ There are several object/line types that VO supports. The most
+ common on simple headings and body text. Simple headings are
+ tab-indented line that start with any non-whitespace character
+ except: : ; | < >. These characters specify other objects. Here
+ is a list of each of the non-heading types:
+ : body text (wrapping)
+ ; preformatted body text (non-wrapping)
+ | table
+ > user-defined, text block (wrapping)
+ < user-defined, preformatted text block (non-wrapping)
+
+ The body text marker, :, is used to specify lines that are
+ automatically wrapped and reformatted. VO and post-processors are
+ free to wrap and reformat this text as well as use proportionally-
+ spaced fonts. A post-processor will probably change the appearance
+ of what you have written. If you are writing a book or other
+ document, most of the information you enter will be body text.
+
+ Here is an example:
+
+ Kirby the Wonder Dog
+ : Kirby is nine years old. He understand about 70-100
+ : English words. Kirby also understands 11 different hand
+ : signals. He is affectionate, playful and attentive.
+ :
+ : His breeding is unknown. He appears to be a mix between
+ : a german shepherd and a collie.
+
+ When folded, body text looks something like this:
+
+ Kirby the Wonder Dog
+ [TEXT] -------------------------------- (6 lines)
+
+ The preformatted text marker, ;, is used to mark text that should
+ not be reformatted nor wrapped by VO or any post-processor. A post-
+ processor would use a fixed-space font, like courier, to render
+ these lines. A post-processor will probably not change the
+ appearance of what you have written. This is useful for making text
+ picture, program code or other format-dependent text.
+
+ Here is an example:
+
+ Output waveform
+ ; _______ ______
+ ; _____/ \______________/
+ ; |-10us--|----35us------|
+
+ When folded, preformatted body text looks something like this:
+
+ Output waveform
+ [TEXT BLOCK] -------------------------- (6 lines)
+
+ The table marker, |, is used to create tables. This is an excellent
+ way to show tabular data. The marker is used as if it were are real
+ vertical line. A || (double-|) is optionally used to mark a table
+ heading line. This is useful for post-processors.
+
+ Here is an example:
+
+ Pets
+ || Name | Age | Animal | Inside/Outside |
+ | Kirby | 9 | dog | both |
+ | Hoover | 1 | dog | both |
+ | Sophia | 9 | cat | inside |
+
+ There is no automatic alignment of columns yet. It must be done
+ manually. The post-processor, otl2thml.py, does have alignment
+ functions. See its documentation for more information.
+
+ When folded, a table looks something like this:
+
+ Pets
+ [TABLE] ------------------------------- (4 lines)
+
+ User-defined text is similar to body text but more flexible and it's
+ use is not pre-defined by Vim Outliner. The basic, user-defined
+ text block marker, >, behaves just like body text.
+
+ For example:
+
+ Kirby the Wonder Dog
+ > Kirby is nine years old. He understand about 70-100
+ > English words. Kirby also understands 11 different hand
+ > signals. He is affectionate, playful and attentive.
+ >
+ > His breeding is unknown. He appears to be a mix between
+ > a german shepherd and a collie.
+
+ When folded, body text looks something like this:
+
+ Kirby the Wonder Dog
+ [USER] -------------------------------- (6 lines)
+
+ But unlike body text, user-defined text can be expanded. You could
+ have user-defined text types. If you were writing a book, in
+ addition to body text for paragraphs you might need special
+ paragraphs for tips and warnings. User-defined text blocks can
+ accomplish this:
+
+ >Tips
+ > Don't forget to back up your computer daily. You don't
+ > need to back up the entire computer. You just need to
+ > backup up the files that have changed.
+ >Warning
+ >Never store you backup floppy disks on the side of you
+ >file cabinets by adhering them with magnets.
+
+ A post processor will know how to remove the style tags (Tips and
+ Warning) and you want the text to be formatted.
+
+ When folded, the above would appear as:
+
+ [USER Tips] --------------------------- (4 lines)
+ [USER Warning]------------------------- (3 lines)
+
+ The user-defined, preformatted text block marker, <, behaves just
+ like preformatted text. But like >, it leaves the functional
+ definition up to the user. A simple user-defined, preformatted text
+ block could be:
+
+ Tux
+ < _.._
+ < .-' `-.
+ < : ;
+ < ; ,_ _, ;
+ < : \{" "}/ :
+ < ,'.'"=..=''.'.
+ < ; / \ / \ ;
+ < .' ; '.__.' ; '.
+ < .-' .' '. '-.
+ < .' ; ; '.
+ < / / \ \
+ < ; ; ; ;
+ < ; `-._ _.-' ;
+ < ; ""--. .--"" ;
+ < '. _ ; ; _ .'
+ < {""..' '._.-. .-._.' '..""}
+ < \ ; ; /
+ < : : : :
+ < : :.__.: :
+ < \ /"-..-"\ / fsc
+ < '-.__.' '.__.-'
+
+ When folded it would be:
+
+ Tux
+ [USER BLOCK] -------------------------- (6 lines)
+
+ Like user-defined text, these blocks can be given user-defined
+ styles. For example:
+
+ <ASCIIart
+ < _.._
+ < .-' `-.
+ < : ;
+ < ; ,_ _, ;
+ < : \{" "}/ :
+ < ,'.'"=..=''.'.
+ < ; / \ / \ ;
+ < .' ; '.__.' ; '.
+ < .-' .' '. '-.
+ < .' ; ; '.
+ < / / \ \
+ < ; ; ; ;
+ < ; `-._ _.-' ;
+ < ; ""--. .--"" ;
+ < '. _ ; ; _ .'
+ < {""..' '._.-. .-._.' '..""}
+ < \ ; ; /
+ < : : : :
+ < : :.__.: :
+ < \ /"-..-"\ / fsc
+ < '-.__.' '.__.-'
+ <Code
+ < getRXDN macro
+ <
+ < local gRXD1, gRXD2
+ < bcf STATUS,C
+ < btfsc FLAGS,SERPOL
+ <
+ < goto gRXD1
+ < btfsc RXDN
+ < bsf STATUS,C
+ < goto gRXD2
+ <
+ < gRXD1 btfss RXDN
+ < bsf STATUS,C
+ < nop
+ < gRXD2
+ < endm
+
+ When folded, the above would appear as:
+
+ [USER BLOCK ASCIIart] ----------------- (22 lines)
+ [USER BLOCK Code] --------------------- (17 lines)
+
+ Vim Outliner Post-processors *vo-post-processors*
+
+ There are already serveral post processors for Vim Outliner. Some
+ are general purpose in nature and others perform specific
+ conversions. Here is list of currently know programs:
+
+ Node.pm Steve Litt www.troubleshooters.com/projects/Node
+
+ This program is general purpose in nature and can
+ generate many types of output. It can even output
+ complete keyboarder-friendly menu scripts (EDML
+ www.troubleshooters.com/projects/edml). See the
+ website for more details.
+
+ otl2docbook.pl Christian Warden www.vimoutliner.org Downloads
+
+ This perl script converts OTL files to DocBook.
+
+ otl2html.py Noel Henson included with Vim Outliner
+ This python script outputs html pages, one page per
+ OTL file. It is useful for creating pretty reports
+ and nicely formatted, but simple, web pages. See
+ the help (otl2thml.py --help) for more detail.
+
+ otl2ooimpress Noel Henson www.vimoutliner.org Downloads
+
+ A very simple script to output Open Office Impress
+ files.
+
+ otl2pdb.pl Gabriel Horner www.vimoutliner.org Downloads
+
+ A perl script to convert contact information in VO
+ to Palm pdb files.
+
+ vo2html.py Ricardo Cardenes www.vimoutliner.org Downloads
+
+ Converts an OTL file to a set of html 'slides'. It
+ supports used-defined templates.
+
+ otl_handler Mahlon E. Smith www.martini.nu/misc/otl_hander.tgz
+
+ Not a converter really, but a mod_perl script that
+ enables Apache to show VO todo lists in
+ a nicely-formatted way. Folding of sections and CSS
+ is supported.
+
+ This list is likely to be out of date. Please check the Vim
+ Outliner website for more.
+
+-------------------------------------------------------------------------
+CAUTIONS!!! *vo-cautions*
+
+
+-------------------------------------------------------------------------
+ADVANCED VIMOUTLINER *vo-advanced*
+
+ Executable Lines *vo-executable-lines*
+
+ Executable lines enable you to launch any command from a specially
+ constructed headline within VimOutliner. The line must be constructed
+ like this:
+
+ Description _exe_ command
+
+ Here's an example to pull up Troubleshooters.Com:
+
+ Troubleshooters.Com _exe_ mozilla http://www.troubleshooters.com
+
+ Executable lines offer the huge benefit of a single-source knowledge
+ tree, where all your knowledge, no matter what its format, exists
+ within a single tree of outlines connected with inter-outline links and
+ executable lines.
+
+ To enable this behavior, insert the following code into your $HOME/.vimoutlinerrc file:
+-------------------------------------------------------------------------
+PLUGINS *vo-plugins*
+
+ The VimOutliner distribution currently includes two plugins
+ for easy handling of checkboxes and to enable hoisting (see below).
+
+ If you want to check out other plugins or experimental stuff,
+ take a look at VimOutliner's home page http://www.vimoutliner.org
+
+ You can find more complete descriptions in your $HOME/.vimoutliner/doc
+ folder, what follows here are the "just the facts".
+
+ Checkboxes *vo-checkbox*
+
+ Checkboxes enable VimOutliner to understand tasks and calculate
+ the current status of todo-lists etc. Three special notations
+ are used:
+
+ [_] an unchecked item or incomplete task
+ [X] a checked item or complete task
+ % a placeholder for percentage of completion
+
+ Several ,,-commands make up the user interface:
+
+ ,,cb Insert a check box on the current line or each line
+ of the currently selected range (including lines in
+ selected but closed folds). This command is currently
+ not aware of body text. Automatic recalculation of
+ is performed for the entire root-parent branch that
+ contains the updated child. (see ,,cz)
+ ,,cx Toggle check box state (percentage aware)
+ ,,cd Delete check boxes
+ ,,c% Create a check box with percentage placeholder except
+ on childless parents
+ ,,cp Create a check box with percentage placeholder on all
+ headings
+ ,,cz Compute completion for the tree below the current
+ heading.
+
+ How do I use it?
+
+ Start with a simple example.
+
+ Let's start with planning a small party; say a barbeque.
+
+ 1. Make the initial outline
+
+ Barbeque
+ Guests
+ Bill and Barb
+ Larry and Louise
+ Marty and Mary
+ Chris and Christine
+ David and Darla
+ Noel and Susan
+ Food
+ Chicken
+ Ribs
+ Corn on the cob
+ Salad
+ Desert
+ Beverages
+ Soda
+ Iced Tea
+ Beer
+ Party Favors
+ Squirt guns
+ Hats
+ Name tags
+ Materials
+ Paper Plates
+ Napkins
+ Trash Containers
+ 2. Add the check boxes
+ This can be done by visually selecting them and typing
+ ,,cb. When done, you should see this:
+
+ [_] Barbeque
+ [_] Guests
+ [_] Bill and Barb
+ [_] Larry and Louise
+ [_] Marty and Mary
+ [_] Chris and Christine
+ [_] David and Darla
+ [_] Noel and Susan
+ [_] Food
+ [_] Chicken
+ [_] Ribs
+ [_] Corn on the cob
+ [_] Salad
+ [_] Desert
+ [_] Beverages
+ [_] Soda
+ [_] Iced Tea
+ [_] Beer
+ [_] Party Favors
+ [_] Squirt guns
+ [_] Hats
+ [_] Name tags
+ [_] Materials
+ [_] Paper Plates
+ [_] Napkins
+ [_] Trash Containers
+
+ 3. Now check off what's done
+ Checking off what is complete is easy with the ,,cx
+ command. Just place the cursor on a heading and ,,cx
+ it. Now you can see what's done as long as the outline
+ is fully expanded.
+
+ [_] Barbeque
+ [_] Guests
+ [X] Bill and Barb
+ [X] Larry and Louise
+ [X] Marty and Mary
+ [X] Chris and Christine
+ [X] David and Darla
+ [X] Noel and Susan
+ [_] Food
+ [X] Chicken
+ [X] Ribs
+ [_] Corn on the cob
+ [_] Salad
+ [X] Desert
+ [_] Beverages
+ [_] Soda
+ [X] Iced Tea
+ [X] Beer
+ [_] Party Favors
+ [_] Squirt guns
+ [_] Hats
+ [_] Name tags
+ [_] Materials
+ [X] Paper Plates
+ [_] Napkins
+ [X] Trash Containers
+
+ 4. Getting more advanced
+ Now summarize what's done.
+
+ You can summarize what is done with the ,,cz command.
+ Place the cursor on the 'Barbeque' heading and ,,cz it.
+ The command will recursively process the outline and
+ update the check boxes of the parent headlines. You
+ should see:
+ (Note: the only change is on the 'Guests' heading. It
+ changed because all of its children are complete.)
+
+ [_] Barbeque
+ [X] Guests
+ [X] Bill and Barb
+ [X] Larry and Louise
+ [X] Marty and Mary
+ [X] Chris and Christine
+ [X] David and Darla
+ [X] Noel and Susan
+ [_] Food
+ [X] Chicken
+ [X] Ribs
+ [_] Corn on the cob
+ [_] Salad
+ [X] Desert
+ [_] Beverages
+ [_] Soda
+ [X] Iced Tea
+ [X] Beer
+ [_] Party Favors
+ [_] Squirt guns
+ [_] Hats
+ [_] Name tags
+ [_] Materials
+ [X] Paper Plates
+ [_] Napkins
+ [X] Trash Containers
+
+ Add percentages for a better view
+ You can get a much better view of what's going on,
+ especially with collapsed headings, if you add
+ percentages. Place a % on each heading that has children
+ like this:
+
+ [_] % Barbeque
+ [X] % Guests
+ [X] Bill and Barb
+ [X] Larry and Louise
+ [X] Marty and Mary
+ [X] Chris and Christine
+ [X] David and Darla
+ [X] Noel and Susan
+ [_] % Food
+ [X] Chicken
+ [X] Ribs
+ [_] Corn on the cob
+ [_] Salad
+ [X] Desert
+ [_] % Beverages
+ [_] Soda
+ [X] Iced Tea
+ [X] Beer
+ [_] % Party Favors
+ [_] Squirt guns
+ [_] Hats
+ [_] Name tags
+ [_] % Materials
+ [X] Paper Plates
+ [_] Napkins
+ [X] Trash Containers
+
+ Now compute the percentage of completion
+ After adding the % symbols, place the cursor on the
+ 'Barbeque' heading and execute ,,cz as before. Keep in
+ mind that the recursive percentages are weighted. You
+ should see:
+
+ [_] 58% Barbeque
+ [X] 100% Guests
+ [X] Bill and Barb
+ [X] Larry and Louise
+ [X] Marty and Mary
+ [X] Chris and Christine
+ [X] David and Darla
+ [X] Noel and Susan
+ [_] 60% Food
+ [X] Chicken
+ [X] Ribs
+ [_] Corn on the cob
+ [_] Salad
+ [X] Desert
+ [_] 66% Beverages
+ [_] Soda
+ [X] Iced Tea
+ [X] Beer
+ [_] 0% Party Favors
+ [_] Squirt guns
+ [_] Hats
+ [_] Name tags
+ [_] 66% Materials
+ [X] Paper Plates
+ [_] Napkins
+ [X] Trash Containers
+
+ Complete a few more just for fun
+
+ Mark Salad and Soda and you should see the ouline below.
+
+ Try plaing around with zc and zo to see the effects of
+ opening and closing folds. Even if you place the cursor
+ on 'Barbeque' and zo it, you still have a good
+ understanding of how complete the project is.
+
+ [_] 69% Barbeque
+ [X] 100% Guests
+ [X] Bill and Barb
+ [X] Larry and Louise
+ [X] Marty and Mary
+ [X] Chris and Christine
+ [X] David and Darla
+ [X] Noel and Susan
+ [_] 80% Food
+ [X] Chicken
+ [X] Ribs
+ [_] Corn on the cob
+ [X] Salad
+ [X] Desert
+ [X] 100% Beverages
+ [X] Soda
+ [X] Iced Tea
+ [X] Beer
+ [_] 0% Party Favors
+ [_] Squirt guns
+ [_] Hats
+ [_] Name tags
+ [_] 66% Materials
+ [X] Paper Plates
+ [_] Napkins
+ [X] Trash Containers
+
+ Hoisting *vo-hoisting*
+
+ Hoisting is a way to focus on the offspring of the currently
+ selected outline item. The subitems will be presented as top
+ level items in the automatically extracted hoist-file located
+ in the same directory as the main outline file. You cannot
+ hoist parts of an already hoisted file again.
+
+ If you installed the add-on, you hoist the subtopics of
+ the currently selected item with
+
+ ,,h Hoist the subtopics into a temporary file
+
+ The changes are merged back into the original file by closing
+ the temporary hoist file with
+
+ :q :wq :x ZZ
+
+ If something went wrong, you can perform a manual de-hoisting
+ with the following procedure:
+
+ Open the main file in VimOutliner
+ Search for the line containing the __hoist tag
+ On this line, do
+
+ ,,H Manual de-hoisting
+
+-------------------------------------------------------------------------
+SCRIPTS *vo-scripts*
+
+ The VimOutliner distribution currently includes two external scripts
+ to support interoutline links and HTML export.
+
+ If you want to check out other scripts or experimental stuff,
+ take a look at VimOutliner's home page, http://www.vimoutliner.org
+
+ vo_maketags.pl *vo-maketags*
+
+ A basic description of how to use this Perl script is given in
+ section |vo-testing|, subsection "Verify interoutline linking".
+
+ otl2html.py *otl2html*
+
+ This Python script transforms an outline into an HTML file. Use
+ $ otl2html.py --help to get detailed information.
+
+ This script does not adhere to the VimOutliner naming convention
+ with the 'vo_' prefix because it is not necessary for any
+ VimOutliner functionality. It is provided both as a useful tool
+ for creating HTML pages and HTML slides from outlines and as
+ a working demonstration of how to convert .otl files to other
+ formats.
+
+-------------------------------------------------------------------------
+OTHER INFORMATION *vo-other-info*
+
+ The Vimoutliner Project
+
+ How do I add my own features?
+ Two ways -- by changing VimOutliner source code, or by
+ inserting your own code in $HOME/.vimoutlinerrc, which runs
+ at the end of the VimOutliner startup scripts. You might have
+ to merge your personal .vimoutlinerrc with future versions
+ to take advantage of new features.
+
+ How is VimOutliner licensed?
+ VimOutliner is licensed under the GNU General Public License.
+
+ How do I contribute to VimOutliner
+ Step 1 is to subscribe to our mailing list. Join up at
+ http://www.lists.vimoutliner.org/. Lurk for a few days or so
+ to get the feel, then submit your idea/suggestion. A lively
+ discussion will ensue, after which your idea, probably in
+ some modified form, will be considered. The more of the actual
+ work you have done, the more likely your feature will go in
+ the distribution in a
+ timely manner.
+
+ VimOutliner Naming Convention
+ All VimOutliner files must begin with vo_ unless Vim itself
+ requires them to have a different name. A few older files
+ from previous versions break this rule, but over time these
+ will be changed to our naming convention.
+
+ In the old days, with the "self contained" philosophy, there
+ was no naming convention, because VimOutliner files were
+ segregated into their own tree. With the coming of the "vim
+ plugin" philosophy, there's a need to identify VimOutliner
+ files for purposes of modification, upgrade and
+ de-installation. Hence our naming convention.
+
+ What if my feature doesn't make it into the VimOutliner distribution?
+ You can offer it Extra-Distro, either on your own website, or
+ very possibly on the VimOutliner home page, www.vimoutliner.org.
+ VimOutliner ships with its core features, but many additional
+ functionalities, especially those that operate from Perl scripts
+ (or bash or python) are available outside the distro. For
+ instance, right now there's an Executable Line feature that turns
+ VimOutliner into a true single tree information reservoir. The
+ Executable Line feature is available extra-distro on the
+ VimOutliner home page.
+
+ Anticipated improvements in later versions
+ Command-invoking headlines
+ Already prototyped
+ Probably coming next version
+ Allows you to press a key and get an html command in a browser
+ Enables a true single tree knowledge collection
+ Enables use of VimOutliner as a shell
+ Groupware
+ Not yet well defined
+ Enables collaborative work on an outline
+ A pipedream, but VimOutliner itself was once a pipedream
+ Easy mode
+ Let's Windows users operate VO like a common insert-only
+ editor. This will remove a great deal of VO's keyboarder-
+ friendly features. But then, they're Windows users: let them
+ use the mouse.
+ Headline to headline links
+ Not yet sanctioned, might never be implemented
+ If implemented, this would presumably create links not just
+ between outlines, but between headlines, either in the same
+ outline or in a different one. This would be a start on
+ "neural networking".
+ Headline numbering
+ Under feasibility investigation
+ Supported by external scripts
+ Toolbar in gvim
+ Under feasibility investigation
+ Further information on outlines, outline processing and outliners
+ http://www.vimoutliner.org
+ Main distribution website
+ http://www.troubleshooters.com/tpromag/199911/199911.htm
+ Outlining discussion, not product specific
+ http://www.troubleshooters.com/linux/olvim.htm
+ Discussion on how to use Vim for outlining
+ http://www.troubleshooters.com/projects/vimoutliner.htm
+ Former Webpage for the VimOutliner distro
+ http://www.outliners.com
+ Discussion of (proprietary) outliners from days gone by
+ Downloads for ancient versions of such outliners
+ Unfortunately, all are dos, windows and mac
+ http://members.ozemail.com.au/~caveman/Creative/Software/Inspiration/index.html
+ Discussion of (proprietary,Mac) Inspiration software
+ This page discusses many methods of thought/computer interaction
+ Visual Outlining
+ Textual Outlining
+ Idea mapping
+ Mind Mapping
+ Brainstorming with Rapid Fire Entry
+ Concept Mapping
+ Storyboarding
+ Diagrams (using rich symbol library)
+ http://members.ozemail.com.au/~caveman/Creative/index.html
+ Not about outlines, but instead about how to use your brain
+ The whole purpose of outlines is to use your brain
+ New ways of using your brain produce new ways to use outlines
diff --git a/.vim/filetype.vim b/.vim/filetype.vim
new file mode 100644
index 0000000..8a8e32d
--- /dev/null
+++ b/.vim/filetype.vim
@@ -0,0 +1 @@
+runtime! ftdetect/*.vim
diff --git a/.vim/ftdetect/vo_base.vim b/.vim/ftdetect/vo_base.vim
new file mode 100755
index 0000000..6a141bf
--- /dev/null
+++ b/.vim/ftdetect/vo_base.vim
@@ -0,0 +1,84 @@
+"# #######################################################################
+"# filetype.vim: filetype loader
+"# VimOutliner functions, commands and settings, version 0.2.0
+"# Copyright (C) 2001,2003 by Steve Litt (slitt@troubleshooters.com)
+"#
+"# This program is free software; you can redistribute it and/or modify
+"# it under the terms of the GNU General Public License as published by
+"# the Free Software Foundation; either version 2 of the License, or
+"# (at your option) any later version.
+"#
+"# This program is distributed in the hope that it will be useful,
+"# but WITHOUT ANY WARRANTY; without even the implied warranty of
+"# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+"# GNU General Public License for more details.
+"#
+"# You should have received a copy of the GNU General Public License
+"# along with this program; if not, write to the Free Software
+"# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"#
+"# Steve Litt, slitt@troubleshooters.com, http://www.troubleshooters.com
+"# #######################################################################
+
+"# #######################################################################
+"# HISTORY
+"# V0.1.0 Pre-alpha
+"# Set of outliner friendly settings
+"# Steve Litt, 5/28/2001
+"# End of version 0.1.0
+"#
+"# V0.1.1 Pre-alpha
+"# No change
+"#
+"# Steve Litt, 5/28/2001
+"# End of version 0.1.1
+"#
+"# V0.1.2 Pre-alpha
+"# No Change
+"# Steve Litt, 5/30/2001
+"# End of version 0.1.2
+"# V0.1.3 Pre-alpha
+"# No Change
+"# Steve Litt, 5/30/2001
+"# End of version 0.1.3
+"# V0.2.0
+"# Noel Henson adds code for outliner-friendly expand and
+"# collapse, comma comma commands, color coding, hooks for a
+"# spellchecker, sorting, and date insertion.
+"# Noel Henson, 11/24/2002
+"# End of version 0.2.0
+"# END OF HISTORY
+"#
+"# #######################################################################
+"filetype.vim
+"http://www.troubleshooters.com/projects/vimoutliner
+
+"Internal RCS
+"$Revision: 1.1 $"
+"$Date: 2005/01/19 16:12:37 $
+"$Log: vo_base.vim,v $
+"Revision 1.1 2005/01/19 16:12:37 noel
+"Finally added to CVS.
+"Don't know how I missed this one.
+"
+"Revision 1.4 2003/03/01 17:37:17 noel
+"Changed the filetype name to our new standard: vo_base
+"
+"Revision 1.3 2003/02/14 17:49:43 noel
+"Removed unnecessary filetype commands
+"
+"Revision 1.2 2003/02/09 15:07:35 noel
+"Changed the auto commands. Setting the "filetype plugin indent on"
+"option here does not work with ftplugins.
+"
+"Revision 1.1 2003/02/08 21:11:26 noel
+"Initial revision
+"
+if exists("did_load_filetypes")
+ finish
+endif
+augroup filetypedetect
+ au! BufRead,BufNewFile *.otl setfiletype vo_base
+ au! BufRead,BufNewFile *.oln setfiletype xoutliner
+augroup END
+
diff --git a/.vim/ftplugin/vo_base.vim b/.vim/ftplugin/vo_base.vim
new file mode 100755
index 0000000..9d5781b
--- /dev/null
+++ b/.vim/ftplugin/vo_base.vim
@@ -0,0 +1,676 @@
+"#########################################################################
+"# ftplugin/vo_base.vim: VimOutliner functions, commands and settings
+"# version 0.3.0
+"# Copyright (C) 2001,2003 by Steve Litt (slitt@troubleshooters.com)
+"# Copyright (C) 2004 by Noel Henson (noel@noels-lab.com)
+"#
+"# This program is free software; you can redistribute it and/or modify
+"# it under the terms of the GNU General Public License as published by
+"# the Free Software Foundation; either version 2 of the License, or
+"# (at your option) any later version.
+"#
+"# This program is distributed in the hope that it will be useful,
+"# but WITHOUT ANY WARRANTY; without even the implied warranty of
+"# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+"# GNU General Public License for more details.
+"#
+"# You should have received a copy of the GNU General Public License
+"# along with this program; if not, write to the Free Software
+"# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"#
+"# Steve Litt, slitt@troubleshooters.com, http://www.troubleshooters.com
+"#########################################################################
+
+" HISTORY {{{1
+"#########################################################################
+"# V0.1.0 Pre-alpha
+"# Set of outliner friendly settings
+"# Steve Litt, 5/28/2001
+"# End of version 0.1.0
+"#
+"# V0.1.1 Pre-alpha
+"# No change
+"#
+"# Steve Litt, 5/28/2001
+"# End of version 0.1.1
+"#
+"# V0.1.2 Pre-alpha
+"# No Change
+"# Steve Litt, 5/30/2001
+"# End of version 0.1.2
+"# V0.1.3 Pre-alpha
+"# No Change
+"# Steve Litt, 5/30/2001
+"# End of version 0.1.3
+"# V0.2.0
+"# Noel Henson adds code for outliner-friendly expand and
+"# collapse, comma comma commands, color coding, hooks for a
+"# spellchecker, sorting, and date insertion.
+"# Noel Henson, 11/24/2002
+"# End of version 0.2.0
+"#
+"# All other history in the CHANGES file.
+"# END OF HISTORY
+"#
+"#########################################################################
+
+
+" Load the plugin {{{1
+" Prevenet the plugin from being loaded twice
+"if exists("b:did_ftplugin")
+" finish
+"endif
+"let b:did_ftplugin = 1
+let b:current_syntax = "outliner"
+
+" User Preferences {{{1
+
+let maplocalleader = ",," " this is prepended to VO key mappings
+
+setlocal ignorecase " searches ignore case
+setlocal smartcase " searches use smart case
+
+let use_space_colon=0
+
+" End User Preferences
+
+" VimOutliner Standard Settings {{{1
+setlocal autoindent
+setlocal backspace=2
+setlocal wrapmargin=5
+setlocal wrap!
+setlocal tw=78
+setlocal noexpandtab
+setlocal nosmarttab
+setlocal softtabstop=0
+setlocal foldlevel=20
+setlocal foldcolumn=1 " turns on "+" at the begining of close folds
+setlocal tabstop=4 " tabstop and shiftwidth must match
+setlocal shiftwidth=4 " values from 2 to 8 work well
+setlocal foldmethod=expr
+setlocal foldexpr=MyFoldLevel(v:lnum)
+setlocal indentexpr=
+setlocal nocindent
+setlocal iskeyword=@,39,45,48-57,_,129-255
+
+" Vim Outliner Functions {{{1
+
+if !exists("loaded_vimoutliner_functions")
+let loaded_vimoutliner_functions=1
+
+" Sorting {{{2
+" IsParent(line) {{{3
+" Return 1 if this line is a parent
+function! IsParent(line)
+ return (Ind(a:line)+1) == Ind(a:line+1)
+endfunction
+"}}}3
+" FindParent(line) {{{3
+" Return line if parent, parent line if not
+function! FindParent(line)
+ if IsParent(a:line)
+ return a:line
+ else
+ let l:parentindent = Ind(a:line)-1
+ let l:searchline = a:line
+ while (Ind(l:searchline) != l:parentindent) && (l:searchline > 0)
+ let l:searchline = l:searchline-1
+ endwhile
+ return l:searchline
+ endif
+endfunction
+"}}}3
+" FindLastChild(line) {{{3
+" Return the line number of the last decendent of parent line
+function! FindLastChild(line)
+ let l:parentindent = Ind(a:line)
+ let l:searchline = a:line+1
+ while Ind(l:searchline) > l:parentindent
+ let l:searchline = l:searchline+1
+ endwhile
+ return l:searchline-1
+endfunction
+"}}}3
+" MoveDown() {{{3
+" Move a heading down by one
+" Used for sorts and reordering of headings
+function! MoveDown()
+ call cursor(line("."),0)
+ del x
+ put x
+endfunction
+"}}}3
+" DelHead() {{{3
+" Delete a heading
+" Used for sorts and reordering of headings
+function! DelHead(line)
+ let l:fstart = foldclosed(a:line)
+ if l:fstart == -1
+ let l:execstr = a:line . "del x"
+ else
+ let l:fend = foldclosedend(a:line)
+ let l:execstr = l:fstart . "," . l:fend . "del x"
+ endif
+ exec l:execstr
+endfunction
+" PutHead() {{{3
+" Put a heading
+" Used for sorts and reordering of headings
+function! PutHead(line)
+ let l:fstart = foldclosed(a:line)
+ if l:fstart == -1
+ let l:execstr = a:line . "put x"
+ exec l:execstr
+ else
+ let l:fend = foldclosedend(a:line)
+ let l:execstr = l:fend . "put x"
+ exec l:execstr
+ endif
+endfunction
+"}}}3
+" NextHead(line) {{{3
+" Return line of next heanding
+" Used for sorts and reordering of headings
+function! NextHead(line)
+ let l:fend = foldclosedend(a:line)
+ if l:fend == -1
+ return a:line+1
+ else
+ return l:fend+1
+ endif
+endfunction
+"}}}3
+" CompHead(line) {{{3
+" Compare this heading and the next
+" Return 1: next is greater, 0 next is same, -1 next is less
+function! CompHead(line)
+ let l:thisline=getline(a:line)
+ let l:nextline=getline(NextHead(a:line))
+ if l:thisline <# l:nextline
+ return 1
+ elseif l:thisline ># l:nextline
+ return -1
+ else
+ return 0
+ endif
+endfunction
+"}}}3
+" Sort1Line(line) {{{3
+" Compare this heading and the next and swap if out of order
+" Dir is 0 for forward, 1 for reverse
+" Return a 1 if a change was made
+function! Sort1Line(line,dir)
+ if (CompHead(a:line) == -1) && (a:dir == 0)
+ call DelHead(a:line)
+ call PutHead(a:line)
+ return 1
+ elseif (CompHead(a:line) == 1) && (a:dir == 1)
+ call DelHead(a:line)
+ call PutHead(a:line)
+ return 1
+ else
+ return 0
+ endif
+endfunction
+"}}}3
+" Sort1Pass(start,end,dir) {{{3
+" Compare this heading and the next and swap if out of order
+" Dir is 0 for forward, 1 for reverse
+" Return a 0 if no change was made, other wise return the change count
+function! Sort1Pass(fstart,fend,dir)
+ let l:i = a:fstart
+ let l:changed = 0
+ while l:i < a:fend
+ let l:changed = l:changed + Sort1Line(l:i,a:dir)
+ let l:i = NextHead(l:i)
+ endwhile
+ return l:changed
+endfunction
+"}}}3
+" Sort(start,end,dir) {{{3
+" Sort this range of headings
+" dir: 0 = ascending, 1 = decending
+function! SortRange(fstart,fend,dir)
+ let l:changed = 1
+ while l:changed != 0
+ let l:changed = Sort1Pass(a:fstart,a:fend,a:dir)
+ endwhile
+endfunction
+"}}}3
+" SortChildren(dir) {{{3
+" Sort the children of a parent
+" dir: 0 = ascending, 1 = decending
+function! SortChildren(dir)
+ let l:oldcursor = line(".")
+ let l:fstart = FindParent(line("."))
+ let l:fend = FindLastChild(l:fstart)
+ let l:fstart = l:fstart
+ if l:fend <= l:fstart + 1
+ return
+ endif
+ call append(line("$"),"Temporary last line for sorting")
+ mkview
+ let l:execstr = "set foldlevel=" . foldlevel(l:fstart)
+ exec l:execstr
+ call SortRange(l:fstart + 1,l:fend,a:dir)
+ call cursor(line("$"),0)
+ del x
+ loadview
+ call cursor(l:oldcursor,0)
+endfunction
+"}}}3
+"}}}2
+" MakeChars() {{{2
+" Make a string of characters
+" Used for strings of repeated characters
+function MakeChars(count,char)
+ let i = 0
+ let l:chars=""
+ while i < a:count
+ let l:chars = l:chars . a:char
+ let i = i + 1
+ endwhile
+ return l:chars
+endfunction
+"}}}2
+" MakeSpaces() {{{2
+" Make a string of spaces
+function MakeSpaces(count)
+ return MakeChars(a:count," ")
+endfunction
+"}}}2
+" MakeDashes() {{{2
+" Make a string of dashes
+function MakeDashes(count)
+ return MakeChars(a:count,"-")
+endfunction
+"}}}2
+" MyFoldText() {{{2
+" Create string used for folded text blocks
+function MyFoldText()
+ let l:MySpaces = MakeSpaces(&sw)
+ let l:line = getline(v:foldstart)
+ let l:bodyTextFlag=0
+ if l:line =~ "^\t* \\S" || l:line =~ "^\t*\:"
+ let l:bodyTextFlag=1
+ let l:MySpaces = MakeSpaces(&sw * (v:foldlevel-1))
+ let l:line = l:MySpaces."[TEXT]"
+ elseif l:line =~ "^\t*\;"
+ let l:bodyTextFlag=1
+ let l:MySpaces = MakeSpaces(&sw * (v:foldlevel-1))
+ let l:line = l:MySpaces."[TEXT BLOCK]"
+ elseif l:line =~ "^\t*\> "
+ let l:bodyTextFlag=1
+ let l:MySpaces = MakeSpaces(&sw * (v:foldlevel-1))
+ let l:line = l:MySpaces."[USER]"
+ elseif l:line =~ "^\t*\>"
+ let l:ls = stridx(l:line,">")
+ let l:le = stridx(l:line," ")
+ if l:le == -1
+ let l:l = strpart(l:line, l:ls+1)
+ else
+ let l:l = strpart(l:line, l:ls+1, l:le-l:ls-1)
+ endif
+ let l:bodyTextFlag=1
+ let l:MySpaces = MakeSpaces(&sw * (v:foldlevel-1))
+ let l:line = l:MySpaces."[USER ".l:l."]"
+ elseif l:line =~ "^\t*\< "
+ let l:bodyTextFlag=1
+ let l:MySpaces = MakeSpaces(&sw * (v:foldlevel-1))
+ let l:line = l:MySpaces."[USER BLOCK]"
+ elseif l:line =~ "^\t*\<"
+ let l:ls = stridx(l:line,"<")
+ let l:le = stridx(l:line," ")
+ if l:le == -1
+ let l:l = strpart(l:line, l:ls+1)
+ else
+ let l:l = strpart(l:line, l:ls+1, l:le-l:ls-1)
+ endif
+ let l:bodyTextFlag=1
+ let l:MySpaces = MakeSpaces(&sw * (v:foldlevel-1))
+ let l:line = l:MySpaces."[USER BLOCK ".l:l."]"
+ elseif l:line =~ "^\t*\|"
+ let l:bodyTextFlag=1
+ let l:MySpaces = MakeSpaces(&sw * (v:foldlevel-1))
+ let l:line = l:MySpaces."[TABLE]"
+ endif
+ let l:sub = substitute(l:line,'\t',l:MySpaces,'g')
+ let l:len = strlen(l:sub)
+ let l:sub = l:sub . " " . MakeDashes(58 - l:len)
+ let l:sub = l:sub . " (" . ((v:foldend + l:bodyTextFlag)- v:foldstart)
+ if ((v:foldend + l:bodyTextFlag)- v:foldstart) == 1
+ let l:sub = l:sub . " line)"
+ else
+ let l:sub = l:sub . " lines)"
+ endif
+ return l:sub
+endfunction
+"}}}2
+" InsertDate() {{{2
+" Insert today's date.
+function InsertDate(ba)
+ let @x = strftime("%Y-%m-%d")
+ if a:ba == "0"
+ normal! "xp
+ else
+ normal! "xP
+ endif
+endfunction
+"}}}2
+" InsertSpaceDate() {{{2
+" Insert a space, then today's date.
+function InsertSpaceDate()
+ let @x = " "
+ let @x = @x . strftime("%Y-%m-%d")
+ normal! "xp
+endfunction
+"}}}2
+" InsertTime() {{{2
+" Insert the time.
+function InsertTime(ba)
+ let @x = strftime("%T")
+ if a:ba == "0"
+ normal! "xp
+ else
+ normal! "xP
+ endif
+endfunction
+"}}}2
+" InsertSpaceTime() {{{2
+" Insert a space, then the time.
+function InsertSpaceTime()
+ let @x = " "
+ let @x = @x . strftime("%T")
+ normal! "xp
+endfunction
+"}}}2
+" Ind(line) {{{2
+" Determine the indent level of a line.
+" Courtesy of Gabriel Horner
+function! Ind(line)
+ return indent(a:line)/&tabstop
+endfunction
+"}}}2
+" BodyText(line) {{{2
+" Determine the indent level of a line.
+function! BodyText(line)
+ return (match(getline(a:line),"^\t*:") == 0)
+endfunction
+"}}}2
+" PreformattedBodyText(line) {{{2
+" Determine the indent level of a line.
+function! PreformattedBodyText(line)
+ return (match(getline(a:line),"^\t*;") == 0)
+endfunction
+"}}}2
+" PreformattedUserText(line) {{{2
+" Determine the indent level of a line.
+function! PreformattedUserText(line)
+ return (match(getline(a:line),"^\t*<") == 0)
+endfunction
+"}}}2
+" PreformattedUserTextLabeled(line) {{{2
+" Determine the indent level of a line.
+function! PreformattedUserTextLabeled(line)
+ return (match(getline(a:line),"^\t*<\S") == 0)
+endfunction
+"}}}2
+" PreformattedUserTextSpace(line) {{{2
+" Determine the indent level of a line.
+function! PreformattedUserTextSpace(line)
+ return (match(getline(a:line),"^\t*< ") == 0)
+endfunction
+"}}}2
+" UserText(line) {{{2
+" Determine the indent level of a line.
+function! UserText(line)
+ return (match(getline(a:line),"^\t*>") == 0)
+endfunction
+"}}}2
+" UserTextSpace(line) {{{2
+" Determine the indent level of a line.
+function! UserTextSpace(line)
+ return (match(getline(a:line),"^\t*> ") == 0)
+endfunction
+"}}}2
+" UserTextLabeled(line) {{{2
+" Determine the indent level of a line.
+function! UserTextLabeled(line)
+ return (match(getline(a:line),"^\t*>\S") == 0)
+endfunction
+"}}}2
+" PreformattedTable(line) {{{2
+" Determine the indent level of a line.
+function! PreformattedTable(line)
+ return (match(getline(a:line),"^\t*|") == 0)
+endfunction
+"}}}2
+" MyFoldLevel(Line) {{{2
+" Determine the fold level of a line.
+function MyFoldLevel(line)
+ let l:myindent = Ind(a:line)
+ let l:nextindent = Ind(a:line+1)
+
+ if BodyText(a:line)
+ if (BodyText(a:line-1) == 0)
+ return '>'.(l:myindent+1)
+ endif
+ if (BodyText(a:line+1) == 0)
+ return '<'.(l:myindent+1)
+ endif
+ return (l:myindent+1)
+ elseif PreformattedBodyText(a:line)
+ if (PreformattedBodyText(a:line-1) == 0)
+ return '>'.(l:myindent+1)
+ endif
+ if (PreformattedBodyText(a:line+1) == 0)
+ return '<'.(l:myindent+1)
+ endif
+ return (l:myindent+1)
+ elseif PreformattedTable(a:line)
+ if (PreformattedTable(a:line-1) == 0)
+ return '>'.(l:myindent+1)
+ endif
+ if (PreformattedTable(a:line+1) == 0)
+ return '<'.(l:myindent+1)
+ endif
+ return (l:myindent+1)
+ elseif PreformattedUserText(a:line)
+ if (PreformattedUserText(a:line-1) == 0)
+ return '>'.(l:myindent+1)
+ endif
+ if (PreformattedUserTextSpace(a:line+1) == 0)
+ return '<'.(l:myindent+1)
+ endif
+ return (l:myindent+1)
+ elseif PreformattedUserTextLabeled(a:line)
+ if (PreformattedUserTextLabeled(a:line-1) == 0)
+ return '>'.(l:myindent+1)
+ endif
+ if (PreformattedUserText(a:line+1) == 0)
+ return '<'.(l:myindent+1)
+ endif
+ return (l:myindent+1)
+ elseif UserText(a:line)
+ if (UserText(a:line-1) == 0)
+ return '>'.(l:myindent+1)
+ endif
+ if (UserTextSpace(a:line+1) == 0)
+ return '<'.(l:myindent+1)
+ endif
+ return (l:myindent+1)
+ elseif UserTextLabeled(a:line)
+ if (UserTextLabeled(a:line-1) == 0)
+ return '>'.(l:myindent+1)
+ endif
+ if (UserText(a:line+1) == 0)
+ return '<'.(l:myindent+1)
+ endif
+ return (l:myindent+1)
+ else
+ if l:myindent < l:nextindent
+ return '>'.(l:myindent+1)
+ endif
+ if l:myindent > l:nextindent
+ "return '<'.(l:nextindent+1)
+ return (l:myindent)
+ "return '<'.(l:nextindent-1)
+ endif
+ return l:myindent
+ endif
+endfunction
+"}}}2
+" Spawn(line) {{{2
+" Execute an executable line
+" Courtesy of Steve Litt
+if !exists("loaded_steveoutliner_functions")
+ let loaded_steveoutliner_functions=1
+function Spawn()
+ let theline=getline(line("."))
+ let idx=matchend(theline, "_exe_\\s*")
+ if idx == -1
+ echo "Not an executable line"
+ else
+ let command=strpart(theline, idx)
+ let command="!".command
+ exec command
+ endif
+endfunction
+endif
+"}}}2
+" This should be a setlocal but that doesn't work when switching to a new .otl file
+" within the same buffer. Using :e has demonstrates this.
+set foldtext=MyFoldText()
+
+setlocal fillchars=|,
+
+endif " if !exists("loaded_vimoutliner_functions")
+" End Vim Outliner Functions
+
+" Vim Outliner Key Mappings {{{1
+" insert the date
+nmap <buffer> <localleader>d $:call InsertSpaceDate()<cr>
+imap <buffer> <localleader>d ~<esc>x:call InsertDate(0)<cr>a
+nmap <buffer> <localleader>D ^:call InsertDate(1)<cr>a <esc>
+
+
+" insert the time
+nmap <buffer> <localleader>t $:call InsertSpaceTime()<cr>
+imap <buffer> <localleader>t ~<esc>x:call InsertTime(0)<cr>a
+nmap <buffer> <localleader>T ^:call InsertTime(1)<cr>a <esc>
+
+" sort a list naturally
+map <buffer> <localleader>s :call SortChildren(0)<cr>
+" sort a list, but you supply the options
+map <buffer> <localleader>S :call SortChildren(1)<cr>
+
+" invoke the file explorer
+map <buffer> <localleader>f :e .<cr>
+imap <buffer> <localleader>f :e .<cr>
+
+" Insert a fence for segemented lists.
+" I also use this divider to create a <hr> when converting to html
+map <buffer> <localleader>- o----------------------------------------0
+imap <buffer> <localleader>- ----------------------------------------<cr>
+
+" switch document between the two types of bodytext styles
+if use_space_colon == 1
+ " First, convert document to the marker style
+ map <localleader>b :%s/\(^\t*\) :/\1/e<cr>:%s/\(^\t*\) /\1 : /e<cr>:let @/=""<cr>
+ " Now, convert document to the space style
+ map <localleader>B :%s/\(^\t*\) :/\1/e<cr>:let @/=""<cr>
+else
+ " First, convert document to the marker style
+ map <localleader>b :%s/\(^\t*\):/\1/e<cr>:%s/\(^\t*\) /\1: /e<cr>:let @/=""<cr>
+ " Now, convert document to the space style
+ map <localleader>B :%s/\(^\t*\):/\1/e<cr>:let @/=""<cr>
+endif
+
+" Steve's additional mappings start here
+map <buffer> <C-K> <C-]>
+map <buffer> <C-N> <C-T>
+map <buffer> <localleader>0 :set foldlevel=99999<CR>
+map <buffer> <localleader>9 :set foldlevel=8<CR>
+map <buffer> <localleader>8 :set foldlevel=7<CR>
+map <buffer> <localleader>7 :set foldlevel=6<CR>
+map <buffer> <localleader>6 :set foldlevel=5<CR>
+map <buffer> <localleader>5 :set foldlevel=4<CR>
+map <buffer> <localleader>4 :set foldlevel=3<CR>
+map <buffer> <localleader>3 :set foldlevel=2<CR>
+map <buffer> <localleader>2 :set foldlevel=1<CR>
+map <buffer> <localleader>1 :set foldlevel=0<CR>
+map <buffer> <localleader>,, :source $HOME/.vimoutliner/outliner.vim<CR>
+map! <buffer> <localleader>w <Esc>:w<CR>a
+nmap <buffer> <localleader>e :call Spawn()<cr>
+" Steve's additional mappings end here
+
+" Placeholders for already assigned but non-functional commands
+map <buffer> <localleader>h :echo "VimOutliner reserved command: ,,h"<cr>
+imap <buffer> <localleader>h :echo "VimOutliner reserved command: ,,h"<cr>
+map <buffer> <localleader>H :echo "VimOutliner reserved command: ,,H"<cr>
+imap <buffer> <localleader>H :echo "VimOutliner reserved command: ,,H"<cr>
+
+" End of Vim Outliner Key Mappings }}}1
+" Menu Entries {{{1
+" VO menu
+amenu &VO.Expand\ Level\ &1 :set foldlevel=0<cr>
+amenu &VO.Expand\ Level\ &2 :set foldlevel=1<cr>
+amenu &VO.Expand\ Level\ &3 :set foldlevel=2<cr>
+amenu &VO.Expand\ Level\ &4 :set foldlevel=3<cr>
+amenu &VO.Expand\ Level\ &5 :set foldlevel=4<cr>
+amenu &VO.Expand\ Level\ &6 :set foldlevel=5<cr>
+amenu &VO.Expand\ Level\ &7 :set foldlevel=6<cr>
+amenu &VO.Expand\ Level\ &8 :set foldlevel=7<cr>
+amenu &VO.Expand\ Level\ &9 :set foldlevel=8<cr>
+amenu &VO.Expand\ Level\ &All :set foldlevel=99999<cr>
+amenu &VO.-Sep1- :
+amenu &VO.&Tools.&otl2thml\.py\ (otl2html\.py\ thisfile\ -S\ nnnnnn\.css\ >\ thisfile\.html) :!otl2html.py -S nnnnnn.css % > %.html<cr>
+amenu &VO.&Tools.&myotl2thml\.sh\ (myotl2html\.sh\ thisfile) :!myotl2html.sh %<cr>
+amenu &VO.-Sep2- :
+amenu &VO.&Color\ Scheme :popup Edit.Color\ Scheme<cr>
+amenu &VO.-Sep3- :
+amenu &VO.&Help.&Index :he vo<cr>
+amenu &VO.&Help.&,,\ Commands :he vo-command<cr>
+amenu &VO.&Help.&Checkboxes :he vo-checkbox<cr>
+amenu &VO.&Help.&Hoisting :he vo-hoisting<cr>
+amenu &Help.-Sep1- :
+" Help menu additions
+amenu &Help.&Vim\ Outliner.&Index :he vo<cr>
+amenu &Help.&Vim\ Outliner.&,,\ Commands :he vo-command<cr>
+amenu &Help.&Vim\ Outliner.&Checkboxes :he vo-checkbox<cr>
+amenu &Help.&Vim\ Outliner.&Hoisting :he vo-hoisting<cr>
+"}}}1
+" Auto-commands {{{1
+if !exists("autocommand_vo_loaded")
+ let autocommand_vo_loaded = 1
+ au BufNewFile,BufRead *.otl setf vo_base
+" au CursorHold *.otl syn sync fromstart
+ set updatetime=500
+endif
+"}}}1
+
+" this command needs to be run every time so Vim doesn't forget where to look
+setlocal tags^=$HOME/.vimoutliner/vo_tags.tag
+
+" Added an indication of current syntax as per Dillon Jones' request
+let b:current_syntax = "outliner"
+
+" Personal configuration options files as per Matej Cepl
+setlocal runtimepath+=$HOME/.vimoutliner,$HOME
+ru! .vimoutlinerrc vimoutlinerrc
+" More sophisticated version of the modules loading; thanks to Preben 'Peppe'
+" Guldberg for telling me how to split string and make semi-lists with vim.
+" - Matej Cepl
+let s:tmp = g:vo_modules_load . ':'
+let s:idx = stridx(s:tmp, ':')
+
+while (s:idx != -1)
+ let s:part = strpart(s:tmp, 0, s:idx)
+ let s:tmp = strpart(s:tmp, s:idx + 1)
+ let s:idx = stridx(s:tmp, ':')
+ "exec 'ru! ftplugin/vo_' . part . '.vim'
+ exec "runtime! plugins/vo_" . s:part . ".vim"
+endwhile
+
+" The End
+" vim600: set foldmethod=marker foldlevel=0:
diff --git a/.vim/syntax/vo_base.vim b/.vim/syntax/vo_base.vim
new file mode 100755
index 0000000..52ff5c8
--- /dev/null
+++ b/.vim/syntax/vo_base.vim
@@ -0,0 +1,312 @@
+"#########################################################################
+"# syntax/vo_base.vim: VimOutliner syntax highlighting
+"# version 0.3.0
+"# Copyright (C) 2001,2003 by Steve Litt (slitt@troubleshooters.com)
+"#
+"# This program is free software; you can redistribute it and/or modify
+"# it under the terms of the GNU General Public License as published by
+"# the Free Software Foundation; either version 2 of the License, or
+"# (at your option) any later version.
+"#
+"# This program is distributed in the hope that it will be useful,
+"# but WITHOUT ANY WARRANTY; without even the implied warranty of
+"# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+"# GNU General Public License for more details.
+"#
+"# You should have received a copy of the GNU General Public License
+"# along with this program; if not, write to the Free Software
+"# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"#
+"# Steve Litt, slitt@troubleshooters.com, http://www.troubleshooters.com
+"#########################################################################
+
+" HISTORY {{{1
+"#########################################################################
+"# V0.1.0 Pre-alpha
+"# Set of outliner friendly settings
+"# Steve Litt, 5/28/2001
+"# End of version 0.1.0
+"#
+"# V0.1.1 Pre-alpha
+"# No change
+"#
+"# Steve Litt, 5/28/2001
+"# End of version 0.1.1
+"#
+"# V0.1.2 Pre-alpha
+"# No Change
+"# Steve Litt, 5/30/2001
+"# End of version 0.1.2
+"# V0.1.3 Pre-alpha
+"# No Change
+"# Steve Litt, 5/30/2001
+"# End of version 0.1.3
+"# V0.2.0
+"# Noel Henson adds code for outliner-friendly expand and
+"# collapse, comma comma commands, color coding, hooks for a
+"# spellchecker, sorting, and date insertion.
+"# Noel Henson, 11/24/2002
+"# End of version 0.2.0
+"# END OF HISTORY
+"#
+"#########################################################################
+
+" Level Colors {{{1
+" colors for outline levels 1-9
+" Light background {{{2
+" added this next conditional at Dillon's recommendation
+if &background == "light"
+ hi OL1 guifg=black ctermfg=black
+ hi OL2 guifg=red ctermfg=red
+ hi OL3 guifg=blue ctermfg=blue
+ hi OL4 guifg=darkviolet ctermfg=magenta
+ hi OL5 guifg=black ctermfg=black
+ hi OL6 guifg=red ctermfg=red
+ hi OL7 guifg=blue ctermfg=blue
+ hi OL8 guifg=darkviolet ctermfg=magenta
+ hi OL9 guifg=black ctermfg=black
+
+ " colors for tags
+ hi outlTags guifg=darkred ctermfg=darkred
+
+ " color for body text
+ hi BT1 guifg=darkgreen ctermfg=green
+ hi BT2 guifg=darkgreen ctermfg=green
+ hi BT3 guifg=darkgreen ctermfg=green
+ hi BT4 guifg=darkgreen ctermfg=green
+ hi BT5 guifg=darkgreen ctermfg=green
+ hi BT6 guifg=darkgreen ctermfg=green
+ hi BT7 guifg=darkgreen ctermfg=green
+ hi BT8 guifg=darkgreen ctermfg=green
+ hi BT9 guifg=darkgreen ctermfg=green
+
+ " color for pre-formatted text
+ hi PT1 guifg=darkblue ctermfg=cyan
+ hi PT2 guifg=darkblue ctermfg=cyan
+ hi PT3 guifg=darkblue ctermfg=cyan
+ hi PT4 guifg=darkblue ctermfg=cyan
+ hi PT5 guifg=darkblue ctermfg=cyan
+ hi PT6 guifg=darkblue ctermfg=cyan
+ hi PT7 guifg=darkblue ctermfg=cyan
+ hi PT8 guifg=darkblue ctermfg=cyan
+ hi PT9 guifg=darkblue ctermfg=cyan
+
+ " color for tables
+ hi TA1 guifg=darkviolet ctermfg=cyan
+ hi TA2 guifg=darkviolet ctermfg=cyan
+ hi TA3 guifg=darkviolet ctermfg=cyan
+ hi TA4 guifg=darkviolet ctermfg=cyan
+ hi TA5 guifg=darkviolet ctermfg=cyan
+ hi TA6 guifg=darkviolet ctermfg=cyan
+ hi TA7 guifg=darkviolet ctermfg=cyan
+ hi TA8 guifg=darkviolet ctermfg=cyan
+ hi TA9 guifg=darkviolet ctermfg=cyan
+
+ " color for user text (wrapping)
+ hi UT1 guifg=darkred ctermfg=cyan
+ hi UT2 guifg=darkred ctermfg=cyan
+ hi UT3 guifg=darkred ctermfg=cyan
+ hi UT4 guifg=darkred ctermfg=cyan
+ hi UT5 guifg=darkred ctermfg=cyan
+ hi UT6 guifg=darkred ctermfg=cyan
+ hi UT7 guifg=darkred ctermfg=cyan
+ hi UT8 guifg=darkred ctermfg=cyan
+ hi UT9 guifg=darkred ctermfg=cyan
+
+ " color for user text (non-wrapping)
+ hi UB1 guifg=darkgray ctermfg=cyan
+ hi UB2 guifg=darkgray ctermfg=cyan
+ hi UB3 guifg=darkgray ctermfg=cyan
+ hi UB4 guifg=darkgray ctermfg=cyan
+ hi UB5 guifg=darkgray ctermfg=cyan
+ hi UB6 guifg=darkgray ctermfg=cyan
+ hi UB7 guifg=darkgray ctermfg=cyan
+ hi UB8 guifg=darkgray ctermfg=cyan
+ hi UB9 guifg=darkgray ctermfg=cyan
+
+ " colors for folded sections
+ hi Folded guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=white
+ hi FoldColumn guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=white
+
+ " colors for experimental spelling error highlighting
+ " this only works for spellfix.vim with will be cease to exist soon
+ hi spellErr gui=underline guifg=darkred cterm=underline ctermfg=darkred
+ hi BadWord gui=underline guifg=darkred cterm=underline ctermfg=darkred
+" Dark background {{{2
+else
+ hi OL1 guifg=white ctermfg=white
+ hi OL2 guifg=red ctermfg=red
+ hi OL3 guifg=lightblue ctermfg=lightblue
+ hi OL4 guifg=darkviolet ctermfg=magenta
+ hi OL5 guifg=white ctermfg=white
+ hi OL6 guifg=red ctermfg=red
+ hi OL7 guifg=lightblue ctermfg=lightblue
+ hi OL8 guifg=darkviolet ctermfg=magenta
+ hi OL9 guifg=white ctermfg=white
+
+ " colors for tags
+ hi outlTags guifg=darkred ctermfg=darkred
+
+ " color for body text
+ hi BT1 guifg=darkgreen ctermfg=green
+ hi BT2 guifg=darkgreen ctermfg=green
+ hi BT3 guifg=darkgreen ctermfg=green
+ hi BT4 guifg=darkgreen ctermfg=green
+ hi BT5 guifg=darkgreen ctermfg=green
+ hi BT6 guifg=darkgreen ctermfg=green
+ hi BT7 guifg=darkgreen ctermfg=green
+ hi BT8 guifg=darkgreen ctermfg=green
+ hi BT9 guifg=darkgreen ctermfg=green
+
+ " color for pre-formatted text
+ hi PT1 guifg=darkblue ctermfg=cyan
+ hi PT2 guifg=darkblue ctermfg=cyan
+ hi PT3 guifg=darkblue ctermfg=cyan
+ hi PT4 guifg=darkblue ctermfg=cyan
+ hi PT5 guifg=darkblue ctermfg=cyan
+ hi PT6 guifg=darkblue ctermfg=cyan
+ hi PT7 guifg=darkblue ctermfg=cyan
+ hi PT8 guifg=darkblue ctermfg=cyan
+ hi PT9 guifg=darkblue ctermfg=cyan
+
+ " color for tables
+ hi TA1 guifg=darkviolet ctermfg=cyan
+ hi TA2 guifg=darkviolet ctermfg=cyan
+ hi TA3 guifg=darkviolet ctermfg=cyan
+ hi TA4 guifg=darkviolet ctermfg=cyan
+ hi TA5 guifg=darkviolet ctermfg=cyan
+ hi TA6 guifg=darkviolet ctermfg=cyan
+ hi TA7 guifg=darkviolet ctermfg=cyan
+ hi TA8 guifg=darkviolet ctermfg=cyan
+ hi TA9 guifg=darkviolet ctermfg=cyan
+
+ " color for user text (wrapping)
+ hi UT1 guifg=darkred ctermfg=cyan
+ hi UT2 guifg=darkred ctermfg=cyan
+ hi UT3 guifg=darkred ctermfg=cyan
+ hi UT4 guifg=darkred ctermfg=cyan
+ hi UT5 guifg=darkred ctermfg=cyan
+ hi UT6 guifg=darkred ctermfg=cyan
+ hi UT7 guifg=darkred ctermfg=cyan
+ hi UT8 guifg=darkred ctermfg=cyan
+ hi UT9 guifg=darkred ctermfg=cyan
+
+ " color for user text (non-wrapping)
+ hi UB1 guifg=darkgray ctermfg=cyan
+ hi UB2 guifg=darkgray ctermfg=cyan
+ hi UB3 guifg=darkgray ctermfg=cyan
+ hi UB4 guifg=darkgray ctermfg=cyan
+ hi UB5 guifg=darkgray ctermfg=cyan
+ hi UB6 guifg=darkgray ctermfg=cyan
+ hi UB7 guifg=darkgray ctermfg=cyan
+ hi UB8 guifg=darkgray ctermfg=cyan
+ hi UB9 guifg=darkgray ctermfg=cyan
+
+ " colors for folded sections
+ hi Folded guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black
+ hi FoldColumn guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black
+
+ " colors for experimental spelling error highlighting
+ " this only works for spellfix.vim with will be cease to exist soon
+ hi spellErr gui=underline guifg=yellow cterm=underline ctermfg=yellow
+ hi BadWord gui=underline guifg=yellow cterm=underline ctermfg=yellow
+endif
+
+" Syntax {{{1
+syn clear
+syn sync fromstart
+
+syn match outlTags '_tag_\w*' contained
+
+" Noel's style of body text {{{2
+syntax region BT1 start=+^ \S+ skip=+^ \S+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT2 start=+^\(\t\)\{1} \S+ skip=+^\(\t\)\{1} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT3 start=+^\(\t\)\{2} \S+ skip=+^\(\t\)\{2} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT4 start=+^\(\t\)\{3} \S+ skip=+^\(\t\)\{3} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT5 start=+^\(\t\)\{4} \S+ skip=+^\(\t\)\{4} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT6 start=+^\(\t\)\{5} \S+ skip=+^\(\t\)\{5} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT7 start=+^\(\t\)\{6} \S+ skip=+^\(\t\)\{6} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT8 start=+^\(\t\)\{7} \S+ skip=+^\(\t\)\{7} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT9 start=+^\(\t\)\{8} \S+ skip=+^\(\t\)\{8} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+
+"comment-style bodytext as per Steve Litt {{{2
+syntax region BT1 start=+^:+ skip=+^:+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT2 start=+^\(\t\)\{1}:+ skip=+^\(\t\)\{1}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT3 start=+^\(\t\)\{2}:+ skip=+^\(\t\)\{2}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT4 start=+^\(\t\)\{3}:+ skip=+^\(\t\)\{3}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT5 start=+^\(\t\)\{4}:+ skip=+^\(\t\)\{4}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT6 start=+^\(\t\)\{5}:+ skip=+^\(\t\)\{5}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT7 start=+^\(\t\)\{6}:+ skip=+^\(\t\)\{6}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT8 start=+^\(\t\)\{7}:+ skip=+^\(\t\)\{7}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region BT9 start=+^\(\t\)\{8}:+ skip=+^\(\t\)\{8}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+
+"Preformatted body text {{{2
+syntax region PT1 start=+^;+ skip=+^;+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT2 start=+^\(\t\)\{1};+ skip=+^\(\t\)\{1};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT3 start=+^\(\t\)\{2};+ skip=+^\(\t\)\{2};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT4 start=+^\(\t\)\{3};+ skip=+^\(\t\)\{3};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT5 start=+^\(\t\)\{4};+ skip=+^\(\t\)\{4};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT6 start=+^\(\t\)\{5};+ skip=+^\(\t\)\{5};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT7 start=+^\(\t\)\{6};+ skip=+^\(\t\)\{6};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT8 start=+^\(\t\)\{7};+ skip=+^\(\t\)\{7};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region PT9 start=+^\(\t\)\{8};+ skip=+^\(\t\)\{8};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+
+"Preformatted tables {{{2
+syntax region TA1 start=+^|+ skip=+^|+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA2 start=+^\(\t\)\{1}|+ skip=+^\(\t\)\{1}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA3 start=+^\(\t\)\{2}|+ skip=+^\(\t\)\{2}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA4 start=+^\(\t\)\{3}|+ skip=+^\(\t\)\{3}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA5 start=+^\(\t\)\{4}|+ skip=+^\(\t\)\{4}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA6 start=+^\(\t\)\{5}|+ skip=+^\(\t\)\{5}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA7 start=+^\(\t\)\{6}|+ skip=+^\(\t\)\{6}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA8 start=+^\(\t\)\{7}|+ skip=+^\(\t\)\{7}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region TA9 start=+^\(\t\)\{8}|+ skip=+^\(\t\)\{8}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+
+"wrapping user text {{{2
+syntax region UT1 start=+^>+ skip=+^>+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT2 start=+^\(\t\)\{1}>+ skip=+^\(\t\)\{1}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT3 start=+^\(\t\)\{2}>+ skip=+^\(\t\)\{2}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT4 start=+^\(\t\)\{3}>+ skip=+^\(\t\)\{3}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT5 start=+^\(\t\)\{4}>+ skip=+^\(\t\)\{4}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT6 start=+^\(\t\)\{5}>+ skip=+^\(\t\)\{5}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT7 start=+^\(\t\)\{6}>+ skip=+^\(\t\)\{6}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT8 start=+^\(\t\)\{7}>+ skip=+^\(\t\)\{7}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UT9 start=+^\(\t\)\{8}>+ skip=+^\(\t\)\{8}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+
+"non-wrapping user text {{{2
+syntax region UB1 start=+^<+ skip=+^<+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB2 start=+^\(\t\)\{1}<+ skip=+^\(\t\)\{1}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB3 start=+^\(\t\)\{2}<+ skip=+^\(\t\)\{2}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB4 start=+^\(\t\)\{3}<+ skip=+^\(\t\)\{3}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB5 start=+^\(\t\)\{4}<+ skip=+^\(\t\)\{4}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB6 start=+^\(\t\)\{5}<+ skip=+^\(\t\)\{5}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB7 start=+^\(\t\)\{6}<+ skip=+^\(\t\)\{6}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB8 start=+^\(\t\)\{7}<+ skip=+^\(\t\)\{7}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+syntax region UB9 start=+^\(\t\)\{8}<+ skip=+^\(\t\)\{8}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
+
+"comment-style bodytext formatting as per Steve Litt
+syntax match Comment "^\s*:.*$"
+setlocal fo-=t fo+=crqno
+setlocal com=sO:\:\ -,mO:\:\ \ ,eO:\:\:,:\:,sO:\>\ -,mO:\>\ \ ,eO:\>\>,:\>
+
+" Headings {{{2
+syntax region OL1 start=+^[^:\t]+ end=+^[^:\t]+me=e-1 contains=outlTags,BT1,BT2,PT1,PT2,TA1,TA2,UT1,UT2,UB1,UB2,spellErr,SpellErrors,BadWord,OL2 keepend
+syntax region OL2 start=+^\t[^:\t]+ end=+^\t[^:\t]+me=e-2 contains=outlTags,BT2,BT3,PT2,PT3,TA2,TA3,UT2,UT3,UB2,UB3,spellErr,SpellErrors,BadWord,OL3 keepend
+syntax region OL3 start=+^\(\t\)\{2}[^:\t]+ end=+^\(\t\)\{2}[^:\t]+me=e-3 contains=outlTags,BT3,BT4,PT3,PT4,TA3,TA4,UT3,UT4,UB3,UB4,spellErr,SpellErrors,BadWord,OL4 keepend
+syntax region OL4 start=+^\(\t\)\{3}[^:\t]+ end=+^\(\t\)\{3}[^:\t]+me=e-4 contains=outlTags,BT4,BT5,PT4,PT5,TA4,TA5,UT4,UT5,UB4,UB5,spellErr,SpellErrors,BadWord,OL5 keepend
+syntax region OL5 start=+^\(\t\)\{4}[^:\t]+ end=+^\(\t\)\{4}[^:\t]+me=e-5 contains=outlTags,BT5,BT6,PT5,PT6,TA5,TA6,UT5,UT6,UB5,UB6,spellErr,SpellErrors,BadWord,OL6 keepend
+syntax region OL6 start=+^\(\t\)\{5}[^:\t]+ end=+^\(\t\)\{5}[^:\t]+me=e-6 contains=outlTags,BT6,BT7,PT6,PT7,TA6,TA7,UT6,UT7,UB6,UB7,spellErr,SpellErrors,BadWord,OL7 keepend
+syntax region OL7 start=+^\(\t\)\{6}[^:\t]+ end=+^\(\t\)\{6}[^:\t]+me=e-7 contains=outlTags,BT7,BT8,PT7,PT8,TA7,TA8,UT7,UT8,UB7,UB8,spellErr,SpellErrors,BadWord,OL8 keepend
+syntax region OL8 start=+^\(\t\)\{7}[^:\t]+ end=+^\(\t\)\{7}[^:\t]+me=e-8 contains=outlTags,BT8,BT9,PT8,PT9,TA8,TA9,UT8,UT9,UB8,UB9,spellErr,SpellErrors,BadWord,OL9 keepend
+syntax region OL9 start=+^\(\t\)\{8}[^:\t]+ end=+^\(\t\)\{8}[^:\t]+me=e-9 contains=outlTags,BT9,PT9,TA9,UT9,UB9,spellErr,SpellErrors,BadWord keepend
+
+" Auto-commands {{{1
+if !exists("autocommand_vo_loaded")
+ let autocommand_vo_loaded = 1
+ au BufNewFile,BufRead *.otl setf outliner
+" au CursorHold *.otl syn sync fromstart
+ set updatetime=500
+endif
+
+" The End
+" vim600: set foldmethod=marker foldlevel=0: