19ba57103826

vim: ack, bufexplorer, -minibufexplorer, markdown
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Wed, 12 May 2010 16:28:35 -0400
parents efbada5b228d
children d5c2de3825c9
branches/tags (none)
files vim/bundle/ack/doc/ack.txt vim/bundle/ack/doc/tags vim/bundle/ack/plugin/ack.vim vim/bundle/bufexplorer/doc/bufexplorer.txt vim/bundle/bufexplorer/plugin/bufexplorer.vim vim/bundle/vim-markdown/ftdetect/markdown.vim vim/bundle/vim-markdown/ftplugin/markdown.vim vim/bundle/vim-markdown/syntax/markdown.vim vim/plugin/minibufexpl.vim

Changes

--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/ack/doc/ack.txt	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,42 @@
+*ack.txt*   Plugin that integrates ack with Vim
+
+==============================================================================
+Author:  Antoine Imbert <antoine.imbert+ackvim@gmail.com>         *ack-author*
+License: Same terms as Vim itself (see |license|)
+
+==============================================================================
+INTRODUCTION                                                             *ack*
+
+This plugin is a front for the Perl module App::Ack.  Ack can be used as a
+replacement for grep.  This plugin will allow you to run ack from vim, and
+shows the results in a split window.
+
+:Ack [options] {pattern} [{directory}]                                  *:Ack*
+
+    Search recursively in {directory} (which defaults to the current
+    directory) for the {pattern}.  Behaves just like the |:grep| command, but
+    will open the |Quickfix| window for you.
+
+:AckAdd [options] {pattern} [{directory}]                            *:AckAdd*
+
+    Just like |:Ack| + |:grepadd|.  Appends the |quickfix| with the results
+
+:AckFromSearch [{directory}]                                  *:AckFromSearch*
+
+    Just like |:Ack| but the pattern is from previous search.
+
+:LAck [options] {pattern} [{directory}]                                *:LAck*
+
+    Just like |:Ack| + |:lgrep|.  Searches, but opens in |location-list|
+
+:LAckAdd [options] {pattern} [{directory}]                          *:LAckAdd*
+
+    Just like |:Ack| + |:lgrepadd|.  Searches, but appends results to
+    |location-list|
+
+Files containing the search term will be listed in the split window, along
+with the line number of the occurrence, once for each occurrence.  <Enter> on
+a line in this window will open the file, and place the cursor on the matching
+line.
+
+See http://search.cpan.org/~petdance/ack/ack for more information.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/ack/doc/tags	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,8 @@
+:Ack	ack.txt	/*:Ack*
+:AckAdd	ack.txt	/*:AckAdd*
+:AckFromSearch	ack.txt	/*:AckFromSearch*
+:LAck	ack.txt	/*:LAck*
+:LAckAdd	ack.txt	/*:LAckAdd*
+ack	ack.txt	/*ack*
+ack-author	ack.txt	/*ack-author*
+ack.txt	ack.txt	/*ack.txt*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/ack/plugin/ack.vim	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,42 @@
+" NOTE: You must, of course, install the ack script
+"       in your path.
+" On Ubuntu:
+"   sudo apt-get install ack-grep
+"   ln -s /usr/bin/ack-grep /usr/bin/ack
+" With MacPorts:
+"   sudo port install p5-app-ack
+
+let g:ackprg="ack -H --nocolor --nogroup"
+
+function! s:Ack(cmd, args)
+    redraw
+    echo "Searching ..."
+
+    let grepprg_bak=&grepprg
+    try
+        let &grepprg=g:ackprg
+        silent execute a:cmd . " " . a:args
+    finally
+        let &grepprg=grepprg_bak
+    endtry
+
+    if a:cmd =~# '^l'
+        botright lopen
+    else
+        botright copen
+    endif
+    redraw!
+endfunction
+
+function! s:AckFromSearch(cmd, args)
+    let search =  getreg('/')
+    " translate vim regular expression to perl regular expression.
+    let search = substitute(search,'\(\\<\|\\>\)','\\b','g')
+    call s:Ack(a:cmd, '"' .  search .'" '. a:args)
+endfunction
+
+command! -bang -nargs=* -complete=file Ack call s:Ack('grep<bang>',<q-args>)
+command! -bang -nargs=* -complete=file AckAdd call s:Ack('grepadd<bang>', <q-args>)
+command! -bang -nargs=* -complete=file AckFromSearch call s:AckFromSearch('grep<bang>', <q-args>)
+command! -bang -nargs=* -complete=file LAck call s:Ack('lgrep<bang>', <q-args>)
+command! -bang -nargs=* -complete=file LAckAdd call s:Ack('lgrepadd<bang>', <q-args>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/bufexplorer/doc/bufexplorer.txt	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,502 @@
+*bufexplorer.txt*              Buffer Explorer       Last Change: 16 Feb 2010
+
+Buffer Explorer                                *buffer-explorer* *bufexplorer*
+                                Version 7.2.7
+
+Plugin for easily exploring (or browsing) Vim |:buffers|.
+
+|bufexplorer-installation|   Installation
+|bufexplorer-usage|          Usage
+|bufexplorer-windowlayout|   Window Layout
+|bufexplorer-customization|  Customization
+|bufexplorer-changelog|      Change Log
+|bufexplorer-todo|           Todo
+|bufexplorer-credits|        Credits
+
+For Vim version 7.0 and above.
+This plugin is only available if 'compatible' is not set.
+
+{Vi does not have any of this}
+
+==============================================================================
+INSTALLATION                                        *bufexplorer-installation*
+
+To install:
+  - Download the bufexplorer.zip.
+  - Extract the zip archive into your runtime directory.
+    The archive contains plugin/bufexplorer.vim, and doc/bufexplorer.txt.
+  - Start Vim or goto an existing instance of Vim.
+  - Execute the following command:
+>
+      :helptag <your runtime directory>/doc
+<
+    This will generate all the help tags for any file located in the doc
+    directory.
+
+==============================================================================
+USAGE                                                      *bufexplorer-usage*
+
+To start exploring in the current window, use: >
+ \be   or   :BufExplorer
+To start exploring in a newly split horizontal window, use: >
+ \bs   or   :BufExplorerHorizontalSplit
+To start exploring in a newly split vertical window, use: >
+ \bv   or   :BufExplorerVerticalSplit
+
+If you would like to use something other than '\', you may simply change the
+leader (see |mapleader|).
+
+Note: If the current buffer is modified when bufexplorer started, the current
+      window is always split and the new bufexplorer is displayed in that new
+      window.
+
+Commands to use once exploring:
+
+ <F1>          Toggle help information.
+ <enter>       Opens the buffer that is under the cursor into the current
+               window.
+ <leftmouse>   Opens the buffer that is under the cursor into the current
+               window.
+ <shift-enter> Opens the buffer that is under the cursor in another tab.
+ d            |:delete|the buffer under the cursor from the list.  The
+               buffer's 'buflisted' is cleared. This allows for the buffer to
+               be displayed again using the 'show unlisted' command.
+ R             Toggles relative path/absolute path.
+ T             Toggles to show only buffers for this tab or not.
+ D            |:wipeout|the buffer under the cursor from the list.  When a
+               buffers is wiped, it will not be shown when unlisted buffer are
+               displayed.
+ f             Toggles whether you are taken to the active window when
+               selecting a buffer or not.
+ o             Opens the buffer that is under the cursor into the current
+               window.
+ p             Toggles the showing of a split filename/pathname.
+ q             Quit exploring.
+ r             Reverses the order the buffers are listed in.
+ s             Selects the order the buffers are listed in. Either by buffer
+               number, file name, file extension, most recently used (MRU), or
+               full path.
+ t             Opens the buffer that is under the cursor in another tab.
+ u             Toggles the showing of "unlisted" buffers.
+
+Once invoked, Buffer Explorer displays a sorted list (MRU is the default
+sort method) of all the buffers that are currently opened. You are then
+able to move the cursor to the line containing the buffer's name you are
+wanting to act upon. Once you have selected the buffer you would like,
+you can then either open it, close it(delete), resort the list, reverse
+the sort, quit exploring and so on...
+
+===============================================================================
+WINDOW LAYOUT                                       *bufexplorer-windowlayout*
+
+-------------------------------------------------------------------------------
+" Press <F1> for Help
+" Sorted by mru | Locate buffer | Absolute Split path
+"=
+ 01 %a    bufexplorer.txt      C:\Vim\vimfiles\doc       line 87
+ 02 #     bufexplorer.vim      c:\Vim\vimfiles\plugin    line 1
+-------------------------------------------------------------------------------
+  | |     |                    |                         |
+  | |     |                    |                         +-- Current Line #.
+  | |     |                    +-- Relative/Full Path
+  | |     +-- Buffer Name.
+  | +-- Buffer Attributes. See|:buffers|for more information.
+  +-- Buffer Number. See|:buffers|for more information.
+
+===============================================================================
+CUSTOMIZATION                                       *bufexplorer-customization*
+
+                                                     *g:bufExplorerDefaultHelp*
+To control whether the default help is displayed or not, use: >
+  let g:bufExplorerDefaultHelp=0       " Do not show default help.
+  let g:bufExplorerDefaultHelp=1       " Show default help.
+The default is to show the default help.
+
+                                                    *g:bufExplorerDetailedHelp*
+To control whether detailed help is display by, use: >
+  let g:bufExplorerDetailedHelp=0      " Do not show detailed help.
+  let g:bufExplorerDetailedHelp=1      " Show detailed help.
+The default is NOT to show detailed help.
+
+                                                      *g:bufExplorerFindActive*
+To control whether you are taken to the active window when selecting a buffer,
+use: >
+  let g:bufExplorerFindActive=0        " Do not go to active window.
+  let g:bufExplorerFindActive=1        " Go to active window.
+The default is to be taken to the active window.
+
+                                                     *g:bufExplorerReverseSort*
+To control whether to sort the buffer in reverse order or not, use: >
+  let g:bufExplorerReverseSort=0       " Do not sort in reverse order.
+  let g:bufExplorerReverseSort=1       " Sort in reverse order.
+The default is NOT to sort in reverse order.
+
+                                                 *g:bufExplorerShowDirectories*
+Directories usually show up in the list from using a command like ":e .".
+To control whether to show directories in the buffer list or not, use: >
+  let g:bufExplorerShowDirectories=1   " Show directories.
+  let g:bufExplorerShowDirectories=0   " Don't show directories.
+The default is to show directories.
+
+                                                *g:bufExplorerShowRelativePath*
+To control whether to show absolute paths or relative to the current
+directory, use: >
+  let g:bufExplorerShowRelativePath=0  " Show absolute paths.
+  let g:bufExplorerShowRelativePath=1  " Show relative paths.
+The default is to show absolute paths.
+
+                                                    *g:bufExplorerShowUnlisted*
+To control whether to show unlisted buffer or not, use: >
+  let g:bufExplorerShowUnlisted=0      " Do not show unlisted buffers.
+  let g:bufExplorerShowUnlisted=1      " Show unlisted buffers.
+The default is to NOT show unlisted buffers.
+
+                                                          *g:bufExplorerSortBy*
+To control what field the buffers are sorted by, use: >
+  let g:bufExplorerSortBy='extension'  " Sort by file extension.
+  let g:bufExplorerSortBy='fullpath'   " Sort by full file path name.
+  let g:bufExplorerSortBy='mru'        " Sort by most recently used.
+  let g:bufExplorerSortBy='name'       " Sort by the buffer's name.
+  let g:bufExplorerSortBy='number'     " Sort by the buffer's number.
+The default is to sort by mru.
+
+                                                      *g:bufExplorerSplitBelow*
+To control where the new split window will be placed above or below the
+current window, use: >
+  let g:bufExplorerSplitBelow=1        " Split new window below current.
+  let g:bufExplorerSplitBelow=0        " Split new window above current.
+The default is to use what ever is set by the global &splitbelow
+variable.
+
+                                                *g:bufExplorerSplitOutPathName*
+To control whether to split out the path and file name or not, use: >
+  let g:bufExplorerSplitOutPathName=1  " Split the path and file name.
+  let g:bufExplorerSplitOutPathName=0  " Don't split the path and file
+                                       " name.
+The default is to split the path and file name.
+
+                                                      *g:bufExplorerSplitRight*
+To control where the new vsplit window will be placed to the left or right of
+current window, use: >
+  let g:bufExplorerSplitRight=0        " Split left.
+  let g:bufExplorerSplitRight=1        " Split right.
+The default is to use the global &splitright.
+
+                                                   *g:bufExplorerShowTabBuffer*
+To control weither or not to show buffers on for the specific tab or not, use: >
+  let g:bufExplorerShowTabBuffer=0        " No.
+  let g:bufExplorerShowTabBuffer=1        " Yes.
+The default is not to show.
+
+===============================================================================
+CHANGE LOG                                              *bufexplorer-changelog*
+
+7.2.7  - Fix:
+         * My 1st attempt to fix the "cache" issue where buffers information
+           has changed but the cache/display does not reflect those changes.
+           More work still needs to be done.
+7.2.6  - Fix:
+         * Thanks to Michael Henry for pointing out that I totally forgot to
+           update the inline help to reflect the previous change to the 'd'
+           and 'D' keys. Opps!
+7.2.5  - Fix:
+         * Philip Morant suggested switching the command (bwipe) associated
+           with the 'd' key with the command (bdelete) associated with the 'D'
+           key. This made sense since the 'd' key is more likely to be used
+           compared to the 'D' key.
+7.2.4  - Fix:
+         * I did not implement the patch provided by Godefroid Chapelle
+           correctly. I missed one line which happened to be the most
+           important one :)
+7.2.3  - Enhancements:
+         * Thanks to David Fishburn for helping me out with a much needed
+           code overhaul as well as some awesome performance enhancements.
+           He also reworked the handling of tabs.
+         * Thanks to Vladimir Dobriakov for making the suggestions on
+           enhancing the documentation to include a better explaination of
+           what is contained in the main bufexplorer window.
+         * Thanks to Yuriy Ershov for added code that when the bufexplorer
+           window is opened, the cursor is now positioned at the line with the
+           active buffer (useful in non-MRU sort modes).
+         * Yuriy also added the abiltiy to cycle through the sort fields in
+           reverse order.
+         Fixes:
+         * Thanks to Michael Henry for supplying a patch that allows
+           bufexplorer to be opened even when there is one buffer or less.
+         * Thanks to Godefroid Chapelle for supplying a patch that fixed
+           MRU sort order after loading a session.
+7.2.2  - Fixes:
+         * Thanks to David L. Dight for spotting and fixing an issue when
+           using ctrl^. bufexplorer would incorrectly handle the previous
+           buffer so that when ctrl^ was pressed the incorrect file was opened.
+7.2.1  - Fixes:
+         * Thanks to Dimitar for spotting and fixing a feature that was
+           inadvertently left out of the previous version. The feature was
+           when bufexplorer was used together with WinManager, you could use
+           the tab key to open a buffer in a split window.
+7.2.0  - Enhancements:
+         * For all those missing the \bs and \bv commands, these have now
+           returned. Thanks to Phil O'Connell for asking for the return of
+           these missing features and helping test out this version.
+         Fixes:
+         * Fixed problem with the bufExplorerFindActive code not working
+           correctly.
+         * Fixed an incompatibility between bufexplorer and netrw that caused
+           buffers to be incorrectly removed from the MRU list.
+7.1.7  - Fixes:
+         * TaCahiroy fixed several issues related to opening a buffer in a
+           tab.
+7.1.6  - Fixes:
+         * Removed ff=unix from modeline in bufexplorer.txt. Found by Bill
+           McCarthy.
+7.1.5  - Fixes:
+         * Could not open unnamed buffers. Fixed by TaCahiroy.
+7.1.4  - Fixes:
+         * Sometimes when a file's path has 'white space' in it, extra buffers
+           would be created containing each piece of the path. i.e:
+           opening c:\document and settings\test.txt would create a buffer
+           named "and" and a buffer named "Documents". This was reported and
+           fixed by TaCa Yoss.
+7.1.3  - Fixes:
+         * Added code to allow only one instance of the plugin to run at a
+           time. Thanks Dennis Hostetler.
+7.1.2  - Fixes:
+         * Fixed a jumplist issue spotted by JiangJun. I overlooked the
+           'jumplist' and with a couple calls to 'keepjumps', everything is
+           fine again.
+         * Went back to just having a plugin file, no autoload file. By having
+           the autoload, WinManager was no longer working and without really
+           digging into the cause, it was easier to go back to using just a
+           plugin file.
+7.1.1  - Fixes:
+         * A problem spotted by Thomas Arendsen Hein.
+           When running Vim (7.1.94), error E493 was being thrown.
+         Enhancements:
+         * Added 'D' for 'delete' buffer as the 'd' command was a 'wipe'
+           buffer.
+7.1.0  - Another 'major' update, some by Dave Larson, some by me.
+         * Making use of 'autoload' now to make the plugin load quicker.
+         * Removed '\bs' and '\bv'. These are now controlled by the user. The
+           user can issue a ':sp' or ':vs' to create a horizontal or vertical
+           split window and then issue a '\be'
+         * Added handling of tabs.
+7.0.17 - Fixed issue with 'drop' command.
+         Various enhancements and improvements.
+7.0.16 - Fixed issue reported by Liu Jiaping on non Windows systems, which was
+         ...
+         Open file1, open file2, modify file1, open bufexplorer, you get the
+         following error:
+
+         --------8<--------
+         Error detected while processing function
+         <SNR>14_StartBufExplorer..<SNR>14_SplitOpen:
+         line    4:
+         E37: No write since last change (add ! to override)
+
+         But the worse thing is, when I want to save the current buffer and
+         type ':w', I get another error message:
+         E382: Cannot write, 'buftype' option is set 
+         --------8<--------
+
+7.0.15 - Thanks to Mark Smithfield for suggesting bufexplorer needed to handle
+         the ':args' command.
+7.0.14 - Thanks to Randall Hansen for removing the requirement of terminal
+         versions to be recompiled with 'gui' support so the 'drop' command
+         would work. The 'drop' command is really not needed in terminal
+         versions.
+7.0.13 - Fixed integration with WinManager.
+         Thanks to Dave Eggum for another update.
+           - Fix: The detailed help didn't display the mapping for toggling
+                  the split type, even though the split type is displayed.
+           - Fixed incorrect description in the detailed help for toggling
+             relative or full paths.
+           - Deprecated s:ExtractBufferNbr(). Vim's str2nr() does the same
+             thing.
+           - Created a s:Set() function that sets a variable only if it hasn't
+             already been defined. It's useful for initializing all those
+             default settings.
+           - Removed checks for repetitive command definitions. They were
+             unnecessary.
+           - Made the help highlighting a little more fancy.
+           - Minor reverse compatibility issue: Changed ambiguous setting
+             names to be more descriptive of what they do (also makes the code
+             easier to follow):
+               Changed bufExplorerSortDirection to bufExplorerReverseSort
+               Changed bufExplorerSplitType to bufExplorerSplitVertical
+               Changed bufExplorerOpenMode to bufExplorerUseCurrentWindow
+           - When the BufExplorer window closes, all the file-local marks are
+             now deleted. This may have the benefit of cleaning up some of the
+             jumplist.
+           - Changed the name of the parameter for StartBufExplorer from
+             "split" to "open". The parameter is a string which specifies how
+             the buffer will be open, not if it is split or not.
+           - Deprecated DoAnyMoreBuffersExist() - it is a one line function
+             only used in one spot.
+           - Created four functions (SplitOpen(), RebuildBufferList(),
+             UpdateHelpStatus() and ReSortListing()) all with one purpose - to
+             reduce repeated code.
+           - Changed the name of AddHeader() to CreateHelp() to be more
+             descriptive of what it does. It now returns an array instead of
+             updating the window directly. This has the benefit of making the
+             code more efficient since the text the function returns is used a
+             little differently in the two places the function is called.
+         - Other minor simplifications.
+7.0.12 - MAJOR Update.
+         This version will ONLY run with Vim version 7.0 or greater.
+         Dave Eggum has made some 'significant' updates to this latest
+         version:
+           - Added BufExplorerGetAltBuf() global function to be used in the
+             user’s rulerformat.
+           - Added g:bufExplorerSplitRight option.
+           - Added g:bufExplorerShowRelativePath option with mapping.
+           - Added current line highlighting.
+           - The split type can now be changed whether bufexplorer is opened
+             in split mode or not.
+           - Various major and minor bug fixes and speed improvements.
+           - Sort by extension.
+         Other improvements/changes:
+           - Changed the help key from '?' to <F1> to be more 'standard'.
+           - Fixed splitting of vertical bufexplorer window.
+         Hopefully I have not forgot something :)
+7.0.11 - Fixed a couple of highlighting bugs, reported by David Eggum. He also
+         changed passive voice to active on a couple of warning messages.
+7.0.10 - Fixed bug report by Xiangjiang Ma. If the 'ssl' option is set,
+         the slash character used when displaying the path was incorrect.
+7.0.9  - Martin Grenfell found and eliminated an annoying bug in the
+         bufexplorer/winmanager integration. The bug was were an
+         annoying message would be displayed when a window was split or
+         a new file was opened in a new window. Thanks Martin!
+7.0.8  - Thanks to Mike Li for catching a bug in the WinManager integration.
+         The bug was related to the incorrect displaying of the buffer
+         explorer's window title.
+7.0.7  - Thanks to Jeremy Cowgar for adding a new enhancement. This
+         enhancement allows the user to press 'S', that is capital S, which
+         will open the buffer under the cursor in a newly created split
+         window.
+7.0.6  - Thanks to Larry Zhang for finding a bug in the "split" buffer code.
+         If you force set g:bufExplorerSplitType='v' in your vimrc, and if you
+         tried to do a \bs to split the bufexplorer window, it would always
+         split horizontal, not vertical. He also found that I had a typeo in
+         that the variable g:bufExplorerSplitVertSize was all lower case in
+         the documentation which was incorrect.
+7.0.5  - Thanks to Mun Johl for pointing out a bug that if a buffer was
+         modified, the '+' was not showing up correctly.
+7.0.4  - Fixed a problem discovered first by Xiangjiang Ma. Well since I've
+         been using vim 7.0 and not 6.3, I started using a function (getftype)
+         that is not in 6.3. So for backward compatibility, I conditionaly use
+         this function now.  Thus, the g:bufExplorerShowDirectories feature is
+         only available when using vim 7.0 and above.
+7.0.3  - Thanks to Erwin Waterlander for finding a problem when the last
+         buffer was deleted. This issue got me to rewrite the buffer display
+         logic (which I've wanted to do for sometime now).
+         Also great thanks to Dave Eggum for coming up with idea for
+         g:bufExplorerShowDirectories. Read the above information about this
+         feature.
+7.0.2  - Thanks to Thomas Arendsen Hein for finding a problem when a user
+         has the default help turned off and then brought up the explorer. An
+         E493 would be displayed.
+7.0.1  - Thanks to Erwin Waterlander for finding a couple problems.
+         The first problem allowed a modified buffer to be deleted.  Opps! The
+         second problem occurred when several files were opened, BufExplorer
+         was started, the current buffer was deleted using the 'd' option, and
+         then BufExplorer was exited. The deleted buffer was still visible
+         while it is not in the buffers list. Opps again!
+7.0.0  - Thanks to Shankar R. for suggesting to add the ability to set
+         the fixed width (g:bufExplorerSplitVertSize) of a new window
+         when opening bufexplorer vertically and fixed height
+         (g:bufExplorerSplitHorzSize) of a new window when opening
+         bufexplorer horizontally. By default, the windows are normally
+         split to use half the existing width or height.
+6.3.0  - Added keepjumps so that the jumps list would not get cluttered with
+         bufexplorer related stuff.
+6.2.3  - Thanks to Jay Logan for finding a bug in the vertical split position
+         of the code. When selecting that the window was to be split
+         vertically by doing a '\bv', from then on, all splits, i.e. '\bs',
+         were split vertically, even though g:bufExplorerSplitType was not set
+         to 'v'.
+6.2.2  - Thanks to Patrik Modesto for adding a small improvement. For some
+         reason his bufexplorer window was always showing up folded. He added
+         'setlocal nofoldenable' and it was fixed.
+6.2.1  - Thanks goes out to Takashi Matsuo for added the 'fullPath' sorting
+         logic and option.
+6.2.0  - Thanks goes out to Simon Johann-Ganter for spotting and fixing a
+         problem in that the last search pattern is overridden by the search
+         pattern for blank lines.
+6.1.6  - Thanks to Artem Chuprina for finding a pesky bug that has been around
+         for sometime now. The <esc> key mapping was causing the buffer
+         explored to close prematurely when vim was run in an xterm. The <esc>
+         key mapping is now removed.
+6.1.5  - Thanks to Khorev Sergey. Added option to show default help or not.
+6.1.4  - Thanks goes out to Valery Kondakoff for suggesting the addition of
+         setlocal nonumber and foldcolumn=0. This allows for line numbering
+         and folding to be turned off temporarily while in the explorer.
+6.1.3  - Added folding. Did some code cleanup. Added the ability to force the
+         newly split window to be temporarily vertical, which was suggested by
+         Thomas Glanzmann.
+6.1.2  - Now pressing the <esc> key will quit, just like 'q'.
+         Added folds to hide winmanager configuration.
+         If anyone had the 'C' option in their cpoptions they would receive
+         a E10 error on startup of BufExplorer. cpo is now saved, updated and
+         restored. Thanks to Charles E Campbell, Jr.
+         Attempted to make sure there can only be one BufExplorer window open
+         at a time.
+6.1.1  - Thanks to Brian D. Goodwin for adding toupper to FileNameCmp. This
+         way buffers sorted by name will be in the correct order regardless of
+         case.
+6.0.16 - Thanks to Andre Pang for the original patch/idea to get bufexplorer
+         to work in insertmode/modeless mode (evim). Added Initialize
+         and Cleanup autocommands to handle commands that need to be
+         performed when starting or leaving bufexplorer.
+6.0.15 - Srinath Avadhanulax added a patch for winmanager.vim.
+6.0.14 - Fix a few more bug that I thought I already had fixed. Thanks
+         to Eric Bloodworth for adding 'Open Mode/Edit in Place'. Added
+         vertical splitting.
+6.0.13 - Thanks to Charles E Campbell, Jr. for pointing out some embarrassing
+         typos that I had in the documentation. I guess I need to run
+         the spell checker more :o)
+6.0.12 - Thanks to Madoka Machitani, for the tip on adding the augroup command
+         around the MRUList autocommands.
+6.0.11 - Fixed bug report by Xiangjiang Ma. '"=' was being added to the
+         search history which messed up hlsearch.
+6.0.10 - Added the necessary hooks so that the Srinath Avadhanula's
+         winmanager.vim script could more easily integrate with this script.
+         Tried to improve performance.
+6.0.9  - Added MRU (Most Recently Used) sort ordering.
+6.0.8  - Was not resetting the showcmd command correctly.
+         Added nifty help file.
+6.0.7  - Thanks to Brett Carlane for some great enhancements. Some are added,
+         some are not, yet. Added highlighting of current and alternate
+         filenames. Added splitting of path/filename toggle. Reworked
+         ShowBuffers().
+         Changed my email address.
+6.0.6  - Copyright notice added. Needed this so that it could be distributed
+         with Debian Linux. Fixed problem with the SortListing() function
+         failing when there was only one buffer to display.
+6.0.5  - Fixed problems reported by David Pascoe, in that you where unable to
+         hit 'd' on a buffer that belonged to a files that no longer existed
+         and that the 'yank' buffer was being overridden by the help text when
+         the bufexplorer was opened.
+6.0.4  - Thanks to Charles Campbell, Jr. for making this plugin more plugin
+         *compliant*, adding default keymappings of <Leader>be and <Leader>bs
+         as well as fixing the 'w:sortDirLabel not being defined' bug.
+6.0.3  - Added sorting capabilities. Sort taken from explorer.vim.
+6.0.2  - Can't remember. (2001-07-25)
+6.0.1  - Initial release.
+
+===============================================================================
+TODO                                                         *bufexplorer-todo*
+
+- Nothing as of now, buf if you have any suggestions, drop me an email.
+
+===============================================================================
+CREDITS                                                   *bufexplorer-credits*
+
+Author: Jeff Lanzarotta <delux256-vim at yahoo dot com>
+
+Credit must go out to Bram Moolenaar and all the Vim developers for
+making the world's best editor (IMHO). I also want to thank everyone who
+helped and gave me suggestions. I wouldn't want to leave anyone out so I
+won't list names.
+
+===============================================================================
+vim:tw=78:noet:wrap:ts=8:ft=help:norl:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/bufexplorer/plugin/bufexplorer.vim	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,1140 @@
+"==============================================================================
+"    Copyright: Copyright (C) 2001-2010 Jeff Lanzarotta
+"               Permission is hereby granted to use and distribute this code,
+"               with or without modifications, provided that this copyright
+"               notice is copied with it. Like anything else that's free,
+"               bufexplorer.vim is provided *as is* and comes with no
+"               warranty of any kind, either expressed or implied. In no
+"               event will the copyright holder be liable for any damages
+"               resulting from the use of this software.
+" Name Of File: bufexplorer.vim
+"  Description: Buffer Explorer Vim Plugin
+"   Maintainer: Jeff Lanzarotta (delux256-vim at yahoo dot com)
+" Last Changed: Tuesday, 16 Feb 2010
+"      Version: See g:bufexplorer_version for version number.
+"        Usage: This file should reside in the plugin directory and be
+"               automatically sourced.
+"
+"               You may use the default keymappings of
+"
+"                 <Leader>be  - Opens BE.
+"                 <Leader>bs  - Opens horizontally window BE.
+"                 <Leader>bv  - Opens vertically window BE.
+"
+"               Or you can use
+"
+"                 ":BufExplorer"                - Opens BE.
+"                 ":BufExplorerHorizontalSplit" - Opens horizontally window BE.
+"                 ":BufExplorerVerticalSplit"   - Opens vertically window BE.
+"
+"               For more help see supplied documentation.
+"      History: See supplied documentation.
+"==============================================================================
+
+" Exit quickly if already running or when 'compatible' is set. {{{1
+if exists("g:bufexplorer_version") || &cp
+  finish
+endif
+"1}}}
+
+" Version number
+let g:bufexplorer_version = "7.2.7"
+
+" Check for Vim version 700 or greater {{{1
+if v:version < 700
+  echo "Sorry, bufexplorer ".g:bufexplorer_version."\nONLY runs with Vim 7.0 and greater."
+  finish
+endif
+
+" Public Interface {{{1
+if maparg("<Leader>be") =~ 'BufExplorer'
+  nunmap <Leader>be
+endif
+
+if maparg("<Leader>bs") =~ 'BufExplorerHorizontalSplit'
+  nunmap <Leader>bs
+endif
+
+if maparg("<Leader>bv") =~ 'BufExplorerVerticalSplit'
+  nunmap <Leader>bv
+endif
+
+nmap <script> <silent> <unique> <Leader>be :BufExplorer<CR>
+nmap <script> <silent> <unique> <Leader>bs :BufExplorerHorizontalSplit<CR>
+nmap <script> <silent> <unique> <Leader>bv :BufExplorerVerticalSplit<CR>
+
+" Create commands {{{1
+command! BufExplorer :call StartBufExplorer(has ("gui") ? "drop" : "hide edit")
+command! BufExplorerHorizontalSplit :call BufExplorerHorizontalSplit()
+command! BufExplorerVerticalSplit :call BufExplorerVerticalSplit()
+
+" BESet {{{1
+function! s:BESet(var, default)
+  if !exists(a:var)
+    if type(a:default)
+      exec "let" a:var "=" string(a:default)
+    else
+      exec "let" a:var "=" a:default
+    endif
+
+    return 1
+  endif
+
+  return 0
+endfunction
+
+" BEReset {{{1
+function! s:BEReset()
+  " Build initial MRUList. This makes sure all the files specified on the
+  " command line are picked up correctly.
+  let s:MRUList = range(1, bufnr('$'))
+
+  " Initialize one tab space array, ignore zero-based tabpagenr
+  " since all tabpagenr's start at 1.
+  " -1 signifies this is the first time we are referencing this
+  " tabpagenr.
+  let s:tabSpace = [ [-1], [-1] ]
+endfunction
+
+" Setup the autocommands that handle the MRUList and other stuff. {{{1
+" This is only done once when Vim starts up.
+augroup BufExplorerVimEnter
+  autocmd!
+  autocmd VimEnter * call s:BESetup()
+augroup END
+
+" BESetup {{{1
+function! s:BESetup()
+  call s:BEReset()
+
+  " Now that the MRUList is created, add the other autocmds.
+  augroup BufExplorer
+    " Deleting autocommands in case the script is reloaded
+    autocmd!
+    autocmd TabEnter * call s:BETabEnter()
+    autocmd BufNew * call s:BEAddBuffer()
+    autocmd BufEnter * call s:BEActivateBuffer()
+
+    autocmd BufWipeOut * call s:BEDeactivateBuffer(1)
+    autocmd BufDelete * call s:BEDeactivateBuffer(0)
+
+    autocmd BufWinEnter \[BufExplorer\] call s:BEInitialize()
+    autocmd BufWinLeave \[BufExplorer\] call s:BECleanup()
+    autocmd SessionLoadPost * call s:BEReset()
+  augroup END
+
+  " Remove the VimEnter event as it is no longer needed
+  augroup SelectBufVimEnter
+    autocmd!
+  augroup END
+endfunction
+
+" BETabEnter {{{1
+function! s:BETabEnter()
+  " Make s:tabSpace 1-based
+  if empty(s:tabSpace) || len(s:tabSpace) < (tabpagenr() + 1)
+    call add(s:tabSpace, [-1])
+  endif
+endfunction
+
+" BEAddBuffer {{{1
+function! s:BEAddBuffer()
+  if !exists('s:raw_buffer_listing') || empty(s:raw_buffer_listing)
+    silent let s:raw_buffer_listing = s:BEGetBufferInfo(0)
+  else
+    " We cannot use :buffers! or :ls! to gather information 
+    " about this buffer since it was only just added.
+    " Any changes to the buffer (setlocal buftype, ...) 
+    " happens after this event fires.
+    "
+    " So we will indicate the :buffers! command must be re-run.
+    " This should help with the performance of the plugin.
+
+    " There are some checks which can be performed 
+    " before deciding to refresh the buffer list.
+    let bufnr = expand('<abuf>') + 0
+
+    if s:BEIgnoreBuffer(bufnr) == 1
+      return 
+    else
+      let s:refreshBufferList = 1
+    endif
+  endif
+
+  call s:BEActivateBuffer()
+endfunction
+
+" ActivateBuffer {{{1
+function! s:BEActivateBuffer()
+  let b = bufnr("%")
+  let l = get(s:tabSpace, tabpagenr(), [])
+
+  if s:BEIgnoreBuffer(b) == 1
+    return
+  endif
+
+  if !empty(l) && l[0] == '-1'
+    " The first time we add a tab Vim uses the current 
+    " buffer as it's starting page, even though we are about
+    " to edit a new page (BufEnter triggers after), so
+    " remove the -1 entry indicating we have covered this case.
+    let l = []
+    let s:tabSpace[tabpagenr()] = l
+  elseif empty(l) || index(l, b) == -1
+    " Add new buffer to this tab buffer list
+    let l = add(l, b)
+    let s:tabSpace[tabpagenr()] = l
+
+    if g:bufExplorerOnlyOneTab == 1
+      " If a buffer can only be available in 1 tab page
+      " ensure this buffer is not present in any other tabs
+      let tabidx = 1
+      while tabidx < len(s:tabSpace)
+        if tabidx != tabpagenr()
+          let bufidx = index(s:tabSpace[tabidx], b)
+          if bufidx != -1
+            call remove(s:tabSpace[tabidx], bufidx)
+          endif
+        endif
+        let tabidx = tabidx + 1
+      endwhile
+    endif
+  endif
+
+  call s:BEMRUPush(b)
+
+  if exists('s:raw_buffer_listing') && !empty(s:raw_buffer_listing)
+    " Check if the buffer exists, but was deleted previously
+    " Careful use of ' and " so we do not have to escape all the \'s
+    " Regex: ^\s*bu\>
+    "        ^ - Starting at the beginning of the string
+    "        \s* - optional whitespace
+    "        b - Vim's buffer number
+    "        u\> - the buffer must be unlisted
+    let shortlist = filter(copy(s:raw_buffer_listing), "v:val.attributes =~ '".'^\s*'.b.'u\>'."'")
+
+    if !empty(shortlist)
+      " If it is unlisted (ie deleted), but now we editing it again 
+      " rebuild the buffer list.
+      let s:refreshBufferList = 1
+    endif
+  endif
+endfunction
+
+" BEDeactivateBuffer {{{1
+function! s:BEDeactivateBuffer(remove)
+  let _bufnr = str2nr(expand("<abuf>"))
+
+  call s:BEMRUPop(_bufnr)
+
+  if a:remove
+    call s:BEDeleteBufferListing(_bufnr)
+  else
+    let s:refreshBufferList = 1
+  endif
+endfunction
+
+" BEMRUPop {{{1
+function! s:BEMRUPop(buf)
+  call filter(s:MRUList, 'v:val != '.a:buf)
+endfunction
+
+" BEMRUPush {{{1
+function! s:BEMRUPush(buf)
+  if s:BEIgnoreBuffer(a:buf) == 1
+    return
+  endif
+
+  " Remove the buffer number from the list if it already exists.
+  call s:BEMRUPop(a:buf)
+
+  " Add the buffer number to the head of the list.
+  call insert(s:MRUList,a:buf)
+endfunction
+
+" BEInitialize {{{1
+function! s:BEInitialize()
+  let s:_insertmode = &insertmode
+  set noinsertmode
+
+  let s:_showcmd = &showcmd
+  set noshowcmd
+
+  let s:_cpo = &cpo
+  set cpo&vim
+
+  let s:_report = &report
+  let &report = 10000
+
+  let s:_list = &list
+  set nolist
+
+  setlocal nonumber
+  setlocal foldcolumn=0
+  setlocal nofoldenable
+  setlocal cursorline
+  setlocal nospell
+  setlocal nobuflisted
+
+  let s:running = 1
+endfunction
+
+" BEIgnoreBuffer 
+function! s:BEIgnoreBuffer(buf)
+  " Check to see if this buffer should be ignore by BufExplorer.
+
+  " Skip temporary buffers with buftype set.
+  if empty(getbufvar(a:buf, "&buftype") == 0)
+    return 1
+  endif
+
+  " Skip unlisted buffers.
+  if buflisted(a:buf) == 0
+    return 1
+  endif
+
+  " Skip buffers with no name.
+  if empty(bufname(a:buf)) == 1
+    return 1
+  endif
+
+  " Do not add the BufExplorer window to the list.
+  if fnamemodify(bufname(a:buf), ":t") == s:name
+    return 1
+  endif
+
+  if index(s:MRU_Exclude_List, bufname(a:buf)) >= 0
+    return 1
+  end
+
+  return 0 
+endfunction
+
+" BECleanup {{{1
+function! s:BECleanup()
+  let &insertmode = s:_insertmode
+  let &showcmd = s:_showcmd
+  let &cpo = s:_cpo
+  let &report = s:_report
+  let &list = s:_list
+  let s:running = 0
+  let s:splitMode = ""
+
+  delmarks!
+endfunction
+
+" BufExplorerHorizontalSplit {{{1
+function! BufExplorerHorizontalSplit()
+  let s:splitMode = "sp"
+  exec "BufExplorer"
+endfunction
+
+" BufExplorerVerticalSplit {{{1
+function! BufExplorerVerticalSplit()
+  let s:splitMode = "vsp"
+  exec "BufExplorer"
+endfunction
+
+" StartBufExplorer {{{1
+function! StartBufExplorer(open)
+  let name = s:name
+
+  if !has("win32")
+    " On non-Windows boxes, escape the name so that is shows up correctly.
+    let name = escape(name, "[]")
+  endif
+
+  " Make sure there is only one explorer open at a time.
+  if s:running == 1
+    " Go to the open buffer.
+    if has("gui")
+      exec "drop" name
+    endif
+
+    return
+  endif
+
+  " Add zero to ensure the variable is treated as a Number.
+  let s:originBuffer = bufnr("%") + 0
+
+  " Create or rebuild the raw buffer list if necessary.
+  if !exists('s:raw_buffer_listing') || 
+        \ empty(s:raw_buffer_listing) ||
+        \ s:refreshBufferList == 1
+    silent let s:raw_buffer_listing = s:BEGetBufferInfo(0)
+  endif
+
+  let copy = copy(s:raw_buffer_listing)
+
+  if (g:bufExplorerShowUnlisted == 0)
+    call filter(copy, 'v:val.attributes !~ "u"')
+  endif
+
+  " We may have to split the current window.
+  if (s:splitMode != "")
+    " Save off the original settings.
+    let [_splitbelow, _splitright] = [&splitbelow, &splitright]
+
+    " Set the setting to ours.
+    let [&splitbelow, &splitright] = [g:bufExplorerSplitBelow, g:bufExplorerSplitRight]
+
+    " Do it.
+    exe 'keepalt '.s:splitMode
+
+    " Restore the original settings.
+    let [&splitbelow, &splitright] = [_splitbelow, _splitright]
+  endif
+
+  if !exists("b:displayMode") || b:displayMode != "winmanager"
+    " Do not use keepalt when opening bufexplorer to allow the buffer that we are
+    " leaving to become the new alternate buffer
+    exec "silent keepjumps ".a:open." ".name
+  endif
+
+  call s:BEDisplayBufferList()
+endfunction
+
+" BEDisplayBufferList {{{1
+function! s:BEDisplayBufferList()
+  " Do not set bufhidden since it wipes out 
+  " the data if we switch away from the buffer 
+  " using CTRL-^
+  setlocal buftype=nofile
+  setlocal modifiable
+  setlocal noswapfile
+  setlocal nowrap
+
+  " Delete all previous lines to the black hole register
+  call cursor(1,1)
+  exec 'silent! normal! "_dG'
+
+  call s:BESetupSyntax()
+  call s:BEMapKeys()
+  call setline(1, s:BECreateHelp())
+  call s:BEBuildBufferList()
+  call cursor(s:firstBufferLine, 1)
+
+  if !g:bufExplorerResize
+    normal! zz
+  endif
+
+  setlocal nomodifiable
+endfunction
+
+" BEMapKeys {{{1
+function! s:BEMapKeys()
+  if exists("b:displayMode") && b:displayMode == "winmanager"
+    nnoremap <buffer> <silent> <tab> :call <SID>BESelectBuffer("tab")<cr>
+  endif
+
+  nnoremap <buffer> <silent> <F1>          :call <SID>BEToggleHelp()<cr>
+  nnoremap <buffer> <silent> <2-leftmouse> :call <SID>BESelectBuffer()<cr>
+  nnoremap <buffer> <silent> <cr>          :call <SID>BESelectBuffer()<cr>
+  nnoremap <buffer> <silent> o             :call <SID>BESelectBuffer()<cr>
+  nnoremap <buffer> <silent> t             :call <SID>BESelectBuffer("tab")<cr>
+  nnoremap <buffer> <silent> <s-cr>        :call <SID>BESelectBuffer("tab")<cr>
+
+  nnoremap <buffer> <silent> d             :call <SID>BERemoveBuffer("delete", "n")<cr>
+  xnoremap <buffer> <silent> d             :call <SID>BERemoveBuffer("delete", "v")<cr>
+  nnoremap <buffer> <silent> D             :call <SID>BERemoveBuffer("wipe", "n")<cr>
+  xnoremap <buffer> <silent> D             :call <SID>BERemoveBuffer("wipe", "v")<cr>
+
+  nnoremap <buffer> <silent> m             :call <SID>BEMRUListShow()<cr>
+  nnoremap <buffer> <silent> p             :call <SID>BEToggleSplitOutPathName()<cr>
+  nnoremap <buffer> <silent> q             :call <SID>BEClose("quit")<cr>
+  nnoremap <buffer> <silent> r             :call <SID>BESortReverse()<cr>
+  nnoremap <buffer> <silent> R             :call <SID>BEToggleShowRelativePath()<cr>
+  nnoremap <buffer> <silent> s             :call <SID>BESortSelect()<cr>
+  nnoremap <buffer> <silent> S             :call <SID>BEReverseSortSelect()<cr>
+  nnoremap <buffer> <silent> u             :call <SID>BEToggleShowUnlisted()<cr>
+  nnoremap <buffer> <silent> f             :call <SID>BEToggleFindActive()<cr>
+  nnoremap <buffer> <silent> T             :call <SID>BEToggleShowTabBuffer()<cr>
+  nnoremap <buffer> <silent> B             :call <SID>BEToggleOnlyOneTab()<cr>
+
+  for k in ["G", "n", "N", "L", "M", "H"]
+    exec "nnoremap <buffer> <silent>" k ":keepjumps normal!" k."<cr>"
+  endfor
+endfunction
+
+" BESetupSyntax {{{1
+function! s:BESetupSyntax()
+  if has("syntax")
+    syn match bufExplorerHelp         "^\".*" contains=bufExplorerSortBy,bufExplorerMapping,bufExplorerTitle,bufExplorerSortType,bufExplorerToggleSplit,bufExplorerToggleOpen
+    syn match bufExplorerOpenIn       "Open in \w\+ window" contained
+    syn match bufExplorerSplit        "\w\+ split" contained
+    syn match bufExplorerSortBy       "Sorted by .*" contained contains=bufExplorerOpenIn,bufExplorerSplit
+    syn match bufExplorerMapping      "\" \zs.\+\ze :" contained
+    syn match bufExplorerTitle        "Buffer Explorer.*" contained
+    syn match bufExplorerSortType     "'\w\{-}'" contained
+    syn match bufExplorerBufNbr       /^\s*\d\+/
+    syn match bufExplorerToggleSplit  "toggle split type" contained
+    syn match bufExplorerToggleOpen   "toggle open mode" contained
+    syn match bufExplorerModBuf       /^\s*\d\+.\{4}+.*/
+    syn match bufExplorerLockedBuf    /^\s*\d\+.\{3}[\-=].*/
+    syn match bufExplorerHidBuf       /^\s*\d\+.\{2}h.*/
+    syn match bufExplorerActBuf       /^\s*\d\+.\{2}a.*/
+    syn match bufExplorerCurBuf       /^\s*\d\+.%.*/
+    syn match bufExplorerAltBuf       /^\s*\d\+.#.*/
+    syn match bufExplorerUnlBuf       /^\s*\d\+u.*/
+
+    hi def link bufExplorerBufNbr Number
+    hi def link bufExplorerMapping NonText
+    hi def link bufExplorerHelp Special
+    hi def link bufExplorerOpenIn Identifier
+    hi def link bufExplorerSortBy String
+    hi def link bufExplorerSplit NonText
+    hi def link bufExplorerTitle NonText
+    hi def link bufExplorerSortType bufExplorerSortBy
+    hi def link bufExplorerToggleSplit bufExplorerSplit
+    hi def link bufExplorerToggleOpen bufExplorerOpenIn
+
+    hi def link bufExplorerActBuf Identifier
+    hi def link bufExplorerAltBuf String
+    hi def link bufExplorerCurBuf Type
+    hi def link bufExplorerHidBuf Constant
+    hi def link bufExplorerLockedBuf Special
+    hi def link bufExplorerModBuf Exception
+    hi def link bufExplorerUnlBuf Comment
+  endif
+endfunction
+
+" BEToggleHelp {{{1
+function! s:BEToggleHelp()
+  let g:bufExplorerDetailedHelp = !g:bufExplorerDetailedHelp
+
+  setlocal modifiable
+
+  " Save position.
+  normal! ma
+
+  " Remove old header.
+  if (s:firstBufferLine > 1)
+    exec "keepjumps 1,".(s:firstBufferLine - 1) "d _"
+  endif
+
+  call append(0, s:BECreateHelp())
+
+  silent! normal! g`a
+  delmarks a
+
+  setlocal nomodifiable
+
+  if exists("b:displayMode") && b:displayMode == "winmanager"
+    call WinManagerForceReSize("BufExplorer")
+  endif
+endfunction
+
+" BEGetHelpStatus {{{1
+function! s:BEGetHelpStatus()
+  let ret = '" Sorted by '.((g:bufExplorerReverseSort == 1) ? "reverse " : "").g:bufExplorerSortBy
+  let ret .= ' | '.((g:bufExplorerFindActive == 0) ? "Don't " : "")."Locate buffer"
+  let ret .= ((g:bufExplorerShowUnlisted == 0) ? "" : " | Show unlisted")
+  let ret .= ((g:bufExplorerShowTabBuffer == 0) ? "" : " | Show buffers/tab")
+  let ret .= ((g:bufExplorerOnlyOneTab == 1) ? "" : " | One tab / buffer")
+  let ret .= ' | '.((g:bufExplorerShowRelativePath == 0) ? "Absolute" : "Relative")
+  let ret .= ' '.((g:bufExplorerSplitOutPathName == 0) ? "Full" : "Split")." path"
+
+  return ret
+endfunction
+
+" BECreateHelp {{{1
+function! s:BECreateHelp()
+  if g:bufExplorerDefaultHelp == 0 && g:bufExplorerDetailedHelp == 0
+    let s:firstBufferLine = 1
+    return []
+  endif
+
+  let header = []
+
+  if g:bufExplorerDetailedHelp == 1
+    call add(header, '" Buffer Explorer ('.g:bufexplorer_version.')')
+    call add(header, '" --------------------------')
+    call add(header, '" <F1> : toggle this help')
+    call add(header, '" <enter> or o or Mouse-Double-Click : open buffer under cursor')
+    call add(header, '" <shift-enter> or t : open buffer in another tab')
+    call add(header, '" d : delete buffer')
+    call add(header, '" D : wipe buffer')
+    call add(header, '" f : toggle find active buffer')
+    call add(header, '" p : toggle spliting of file and path name')
+    call add(header, '" q : quit')
+    call add(header, '" r : reverse sort')
+    call add(header, '" R : toggle showing relative or full paths')
+    call add(header, '" s : cycle thru "sort by" fields '.string(s:sort_by).'')
+    call add(header, '" S : reverse cycle thru "sort by" fields')
+    call add(header, '" T : toggle if to show only buffers for this tab or not')
+    call add(header, '" u : toggle showing unlisted buffers')
+  else
+    call add(header, '" Press <F1> for Help')
+  endif
+
+  if (!exists("b:displayMode") || b:displayMode != "winmanager") || (b:displayMode == "winmanager" && g:bufExplorerDetailedHelp == 1)
+    call add(header, s:BEGetHelpStatus())
+    call add(header, '"=')
+  endif
+
+  let s:firstBufferLine = len(header) + 1
+
+  return header
+endfunction
+
+" BEGetBufferInfo {{{1
+function! s:BEGetBufferInfo(bufnr)
+  redir => bufoutput
+  buffers!
+  redir END
+
+  if (a:bufnr > 0)
+    " Since we are only interested in this specified buffer 
+    " remove the other buffers listed
+    let bufoutput = substitute(bufoutput."\n", '^.*\n\(\s*'.a:bufnr.'\>.\{-}\)\n.*', '\1', '')
+  endif
+
+  let [all, allwidths, listedwidths] = [[], {}, {}]
+
+  for n in keys(s:types)
+    let allwidths[n] = []
+    let listedwidths[n] = []
+  endfor
+
+  for buf in split(bufoutput, '\n')
+    let bits = split(buf, '"')
+    let b = {"attributes": bits[0], "line": substitute(bits[2], '\s*', '', '')}
+
+    for [key, val] in items(s:types)
+      let b[key] = fnamemodify(bits[1], val)
+    endfor
+
+    if getftype(b.fullname) == "dir" && g:bufExplorerShowDirectories == 1
+      let b.shortname = "<DIRECTORY>"
+    endif
+
+    call add(all, b)
+
+    for n in keys(s:types)
+      call add(allwidths[n], len(b[n]))
+
+      if b.attributes !~ "u"
+        call add(listedwidths[n], len(b[n]))
+      endif
+    endfor
+  endfor
+
+  let [s:allpads, s:listedpads] = [{}, {}]
+
+  for n in keys(s:types)
+    let s:allpads[n] = repeat(' ', max(allwidths[n]))
+    let s:listedpads[n] = repeat(' ', max(listedwidths[n]))
+  endfor
+
+  let s:refreshBufferList = 1
+
+  return all
+endfunction
+
+" BEBuildBufferList {{{1
+function! s:BEBuildBufferList()
+  let lines = []
+
+  " Loop through every buffer.
+  for buf in s:raw_buffer_listing
+    if (!g:bufExplorerShowUnlisted && buf.attributes =~ "u")
+      " Skip unlisted buffers if we are not to show them.
+      continue
+    endif
+
+    if (g:bufExplorerShowTabBuffer)
+      let show_buffer = 0
+
+      for bufnr in s:tabSpace[tabpagenr()]
+        if (buf.attributes =~ '^\s*'.bufnr.'\>')
+          " Only buffers shown on the current tabpagenr
+          let show_buffer = 1
+          break
+        endif
+      endfor
+
+      if show_buffer == 0 
+        continue
+      endif
+    endif
+
+    let line = buf.attributes." "
+
+    if g:bufExplorerSplitOutPathName
+      let type = (g:bufExplorerShowRelativePath) ? "relativepath" : "path"
+      let path = buf[type]
+      let pad  = (g:bufExplorerShowUnlisted) ? s:allpads.shortname : s:listedpads.shortname
+      let line .= buf.shortname." ".strpart(pad.path, len(buf.shortname))
+    else
+      let type = (g:bufExplorerShowRelativePath) ? "relativename" : "fullname"
+      let path = buf[type]
+      let line .= path
+    endif
+
+    let pads = (g:bufExplorerShowUnlisted) ? s:allpads : s:listedpads
+
+    if !empty(pads[type])
+      let line .= strpart(pads[type], len(path))." "
+    endif
+
+    let line .= buf.line
+
+    call add(lines, line)
+  endfor
+
+  call setline(s:firstBufferLine, lines)
+
+  call s:BESortListing()
+endfunction
+
+" BESelectBuffer {{{1
+function! s:BESelectBuffer(...)
+  " Sometimes messages are not cleared when we get here so it looks like an error has
+  " occurred when it really has not.
+  echo ""
+
+  " Are we on a line with a file name?
+  if line('.') < s:firstBufferLine
+    exec "normal! \<cr>"
+    return
+  endif
+
+  let _bufNbr = str2nr(getline('.'))
+
+  " Check and see if we are running BE via WinManager.
+  if exists("b:displayMode") && b:displayMode == "winmanager"
+    let bufname = expand("#"._bufNbr.":p")
+
+    if (a:0 == 1) && (a:1 == "tab")
+      call WinManagerFileEdit(bufname, 1)
+    else
+      call WinManagerFileEdit(bufname, 0)
+    endif
+ 
+    return
+  endif
+
+  if bufexists(_bufNbr)
+    if bufnr("#") == _bufNbr
+      return s:BEClose("")
+    endif
+
+    " Are we suppose to open the selected buffer in a tab?
+    if (a:0 == 1) && (a:1 == "tab")
+      " Yes, we are to open the selected buffer in a tab.
+
+      " Restore [BufExplorer] buffer.
+      exec "keepjumps silent buffer!".s:originBuffer
+
+      " Get the tab number where this buffer is located at.
+      let tabNbr = s:BEGetTabNbr(_bufNbr)
+
+      " Was the tab found?
+      if tabNbr == 0
+        " _bufNbr is not opened in any tabs. Open a new tab with the selected buffer in it.
+        exec "999tab split +buffer" . _bufNbr
+      else
+        " The _bufNbr is already opened in tab, go to that tab.
+        exec tabNbr . "tabnext"
+
+        " Focus window.
+        exec s:BEGetWinNbr(tabNbr, _bufNbr) . "wincmd w"
+      endif
+    else
+      "No, the use did not ask to open the selected buffer in a tab.
+
+      " Are we suppose to move to the tab where this active buffer is?
+      if bufloaded(_bufNbr) && g:bufExplorerFindActive
+        " Close the BE window.
+        call s:BEClose("")
+
+        " Get the tab number where this buffer is located at.
+        let tabNbr = s:BEGetTabNbr(_bufNbr)
+
+        " Was the tab found?
+        if tabNbr != 0
+          " The buffer is located in a tab. Go to that tab number.
+          exec tabNbr . "tabnext"
+        else
+          " Nope, the buffer is not in a tab, simple switch to that buffer.
+          let bufname = expand("#"._bufNbr.":p")
+          exec bufname ? "drop ".escape(bufname, " ") : "buffer "._bufNbr
+        endif
+      endif
+
+      " Switch to the buffer.
+      exec "keepalt keepjumps silent b!" _bufNbr
+    endif
+
+    " Make the buffer 'listed' again.
+    call setbufvar(_bufNbr, "&buflisted", "1")
+  else
+    call s:BEError("Sorry, that buffer no longer exists, please select another")
+    call s:BEDeleteBuffer(_bufNbr, "wipe")
+  endif
+endfunction
+
+" BEDeleteBufferListing {{{1
+function! s:BEDeleteBufferListing(buf)
+  if exists('s:raw_buffer_listing') && !empty(s:raw_buffer_listing)
+    " Delete the buffer from the raw buffer list.
+    " Careful use of ' and " so we do not have to escape all the \'s
+    " Regex: ^\s*\(10\|20\)\>
+    "        ^ - Starting at the beginning of the string
+    "        \s* - optional whitespace
+    "        \(10\|20\) - either a 10 or a 20
+    "        \> - end of word (so it can't make 100 or 201)
+    call filter(s:raw_buffer_listing, "v:val.attributes !~ '".'^\s*\('.substitute(a:buf, ' ', '\\|', 'g').'\)\>'."'")
+  endif
+endfunction
+
+" BERemoveBuffer {{{1
+function! s:BERemoveBuffer(type, mode) range
+  " Are we on a line with a file name?
+  if line('.') < s:firstBufferLine
+    return
+  endif
+
+  " These commands are to temporarily suspend the activity of winmanager.
+  if exists("b:displayMode") && b:displayMode == "winmanager"
+    call WinManagerSuspendAUs()
+  endif
+
+  let _bufNbrs = ''
+
+  for lineNum in range(a:firstline, a:lastline)
+    let line = getline(lineNum)
+
+    if line =~ '^\s*\(\d\+\)'
+      " Regex: ^\s*\(10\|20\)\>
+      "        ^ - Starting at the beginning of the string
+      "        \s* - optional whitespace
+      "        \zs - start the match here
+      "        \d\+ - any digits
+      "        \> - end of word (so it can't make 100 or 201)
+      let bufNbr = matchstr(line, '^\s*\zs\d\+\>')
+
+      " Add 0 to bufNbr to ensure Vim treats it as a Number
+      " for use with the getbufvar() function
+      if bufNbr !~ '^\d\+$' || getbufvar(bufNbr+0, '&modified') != 0
+        call s:BEError("Sorry, no write since last change for buffer ".bufNbr.", unable to delete")
+      else
+        let _bufNbrs = _bufNbrs . (_bufNbrs==''?'':' '). bufNbr 
+      endif
+    endif
+  endfor
+
+  " Okay, everything is good, delete or wipe the buffers.
+  call s:BEDeleteBuffer(_bufNbrs, a:type)
+
+  " Reactivate winmanager autocommand activity.
+  if exists("b:displayMode") && b:displayMode == "winmanager"
+    call WinManagerForceReSize("BufExplorer")
+    call WinManagerResumeAUs()
+  endif
+endfunction
+
+" BEDeleteBuffer {{{1
+function! s:BEDeleteBuffer(bufNbr, mode)
+  " This routine assumes that the buffer to be removed is on the current line.
+  try
+    if a:mode == "wipe"
+      exe "bwipe" a:bufNbr
+    else
+      exe "bdelete" a:bufNbr
+    endif
+
+    setlocal modifiable
+
+    " Remove each of the lines beginning with the buffer numbers we are removing
+    " Regex: ^\s*\(10\|20\)\>
+    "        ^ - Starting at the beginning of the string
+    "        \s* - optional whitespace
+    "        \(10\|20\) - either a 10 or a 20
+    "        \> - end of word (so it can't make 100 or 201)
+    exec 'silent! g/^\s*\('.substitute(a:bufNbr, ' ', '\\|', 'g').'\)\>/d_'
+
+    setlocal nomodifiable
+
+    call s:BEDeleteBufferListing(a:bufNbr)
+  catch
+    call s:BEError(v:exception)
+  endtry
+endfunction
+
+" BEClose {{{1
+function! s:BEClose(mode)
+  " Get only the listed buffers.
+  let listed = filter(copy(s:MRUList), "buflisted(v:val)")
+
+  " If we needed to split the main window, close the split one.
+"  if (s:splitMode)
+  if (s:splitMode != "" && a:mode == "quit")
+    exec "wincmd c"
+  endif
+
+  if len(listed) == 0
+    exe "enew"
+  else
+    for b in reverse(listed[0:1])
+      exec "keepjumps silent b ".b
+    endfor
+  endif
+endfunction
+
+" BEToggleSplitOutPathName {{{1
+function! s:BEToggleSplitOutPathName()
+  let g:bufExplorerSplitOutPathName = !g:bufExplorerSplitOutPathName
+  call s:BERebuildBufferList()
+  call s:BEUpdateHelpStatus()
+endfunction
+
+" BEToggleShowRelativePath {{{1
+function! s:BEToggleShowRelativePath()
+  let g:bufExplorerShowRelativePath = !g:bufExplorerShowRelativePath
+  call s:BERebuildBufferList()
+  call s:BEUpdateHelpStatus()
+endfunction
+
+" BEToggleShowUnlisted {{{1
+function! s:BEToggleShowUnlisted()
+  let g:bufExplorerShowUnlisted = !g:bufExplorerShowUnlisted
+  let num_bufs = s:BERebuildBufferList(g:bufExplorerShowUnlisted == 0)
+  call s:BEUpdateHelpStatus()
+endfunction
+
+" BEToggleFindActive {{{1
+function! s:BEToggleFindActive()
+  let g:bufExplorerFindActive = !g:bufExplorerFindActive
+  call s:BEUpdateHelpStatus()
+endfunction
+
+" BEToggleShowTabBuffer {{{1
+function! s:BEToggleShowTabBuffer()
+  let g:bufExplorerShowTabBuffer = !g:bufExplorerShowTabBuffer
+  call s:BEDisplayBufferList()
+endfunction
+
+" BEToggleOnlyOneTab {{{1
+function! s:BEToggleOnlyOneTab()
+  let g:bufExplorerOnlyOneTab = !g:bufExplorerOnlyOneTab
+  call s:BEDisplayBufferList()
+endfunction
+
+" BERebuildBufferList {{{1
+function! s:BERebuildBufferList(...)
+  setlocal modifiable
+
+  let curPos = getpos('.')
+
+  if a:0
+    " Clear the list first.
+    exec "keepjumps ".s:firstBufferLine.',$d "_'
+  endif
+
+  let num_bufs = s:BEBuildBufferList()
+
+  call setpos('.', curPos)
+
+  setlocal nomodifiable
+
+  return num_bufs
+endfunction
+
+" BEUpdateHelpStatus {{{1
+function! s:BEUpdateHelpStatus()
+  setlocal modifiable
+
+  let text = s:BEGetHelpStatus()
+  call setline(s:firstBufferLine - 2, text)
+
+  setlocal nomodifiable
+endfunction
+
+" BEMRUCmp {{{1
+function! s:BEMRUCmp(line1, line2)
+  return index(s:MRUList, str2nr(a:line1)) - index(s:MRUList, str2nr(a:line2))
+endfunction
+
+" BESortReverse {{{1
+function! s:BESortReverse()
+  let g:bufExplorerReverseSort = !g:bufExplorerReverseSort
+
+  call s:BEReSortListing()
+endfunction
+
+" BESortSelect {{{1
+function! s:BESortSelect()
+  let g:bufExplorerSortBy = get(s:sort_by, index(s:sort_by, g:bufExplorerSortBy) + 1, s:sort_by[0])
+
+  call s:BEReSortListing()
+endfunction
+
+" BEReverseSortSelect {{{1
+function! s:BEReverseSortSelect()
+  let g:bufExplorerSortBy = get(s:sort_by, (index(s:sort_by, g:bufExplorerSortBy) + len(s:sort_by) - 1) % len(s:sort_by), s:sort_by[0])
+
+  call s:BEReSortListing()
+endfunction
+
+" BEReSortListing {{{1
+function! s:BEReSortListing()
+  setlocal modifiable
+
+  let curPos = getpos('.')
+
+  call s:BESortListing()
+  call s:BEUpdateHelpStatus()
+
+  call setpos('.', curPos)
+
+  setlocal nomodifiable
+endfunction
+
+" BESortListing {{{1
+function! s:BESortListing()
+  let sort = s:firstBufferLine.",$sort".((g:bufExplorerReverseSort == 1) ? "!": "")
+
+  if g:bufExplorerSortBy == "number"
+    " Easiest case.
+    exec sort 'n'
+  elseif g:bufExplorerSortBy == "name"
+    if g:bufExplorerSplitOutPathName
+      exec sort 'ir /\d.\{7}\zs\f\+\ze/'
+    else
+      exec sort 'ir /\zs[^\/\\]\+\ze\s*line/'
+    endif
+  elseif g:bufExplorerSortBy == "fullpath"
+    if g:bufExplorerSplitOutPathName
+      " Sort twice - first on the file name then on the path.
+      exec sort 'ir /\d.\{7}\zs\f\+\ze/'
+    endif
+
+    exec sort 'ir /\zs\f\+\ze\s\+line/'
+  elseif g:bufExplorerSortBy == "extension"
+    exec sort 'ir /\.\zs\w\+\ze\s/'
+  elseif g:bufExplorerSortBy == "mru"
+    let l = getline(s:firstBufferLine, "$")
+
+    call sort(l, "<SID>BEMRUCmp")
+
+    if g:bufExplorerReverseSort
+      call reverse(l)
+    endif
+
+    call setline(s:firstBufferLine, l)
+  endif
+endfunction
+
+" BEMRUListShow {{{1
+function! s:BEMRUListShow()
+  echomsg "MRUList=".string(s:MRUList)
+endfunction
+
+" BEError {{{1
+function! s:BEError(msg)
+  echohl ErrorMsg | echo a:msg | echohl none
+endfunction
+
+" BEWarning {{{1
+function! s:BEWarning(msg)
+  echohl WarningMsg | echo a:msg | echohl none
+endfunction
+
+" GetTabNbr {{{1
+function! s:BEGetTabNbr(bufNbr)
+  " Searching buffer bufno, in tabs.
+  for i in range(tabpagenr("$"))
+    if index(tabpagebuflist(i + 1), a:bufNbr) != -1
+      return i + 1
+    endif
+  endfor
+
+  return 0
+endfunction
+
+" GetWinNbr" {{{1
+function! s:BEGetWinNbr(tabNbr, bufNbr)
+  " window number in tabpage.
+  return index(tabpagebuflist(a:tabNbr), a:bufNbr) + 1
+endfunction
+
+" Winmanager Integration {{{1
+let g:BufExplorer_title = "\[Buf\ List\]"
+call s:BESet("g:bufExplorerResize", 1)
+call s:BESet("g:bufExplorerMaxHeight", 25) " Handles dynamic resizing of the window.
+
+" Function to start display. Set the mode to 'winmanager' for this buffer.
+" This is to figure out how this plugin was called. In a standalone fashion
+" or by winmanager.
+function! BufExplorer_Start()
+  let b:displayMode = "winmanager"
+  call StartBufExplorer("e")
+endfunction
+
+" Returns whether the display is okay or not.
+function! BufExplorer_IsValid()
+  return 0
+endfunction
+
+" Handles dynamic refreshing of the window.
+function! BufExplorer_Refresh()
+  let b:displayMode = "winmanager"
+  call StartBufExplorer("e")
+endfunction
+
+function! BufExplorer_ReSize()
+  if !g:bufExplorerResize
+    return
+  endif
+
+  let nlines = min([line("$"), g:bufExplorerMaxHeight])
+
+  exe nlines." wincmd _"
+
+  " The following lines restore the layout so that the last file line is also
+  " the last window line. Sometimes, when a line is deleted, although the
+  " window size is exactly equal to the number of lines in the file, some of
+  " the lines are pushed up and we see some lagging '~'s.
+  let pres = getpos(".")
+
+  exe $
+
+  let _scr = &scrolloff
+  let &scrolloff = 0
+
+  normal! z-
+
+  let &scrolloff = _scr
+
+  call setpos(".", pres)
+endfunction
+
+" Default values {{{1
+call s:BESet("g:bufExplorerDefaultHelp", 1)           " Show default help?
+call s:BESet("g:bufExplorerDetailedHelp", 0)          " Show detailed help?
+call s:BESet("g:bufExplorerFindActive", 1)            " When selecting an active buffer, take you to the window where it is active?
+call s:BESet("g:bufExplorerReverseSort", 0)           " sort reverse?
+call s:BESet("g:bufExplorerShowDirectories", 1)       " (Dir's are added by commands like ':e .')
+call s:BESet("g:bufExplorerShowRelativePath", 0)      " Show listings with relative or absolute paths?
+call s:BESet("g:bufExplorerShowUnlisted", 0)          " Show unlisted buffers?
+call s:BESet("g:bufExplorerSortBy", "mru")            " Sorting methods are in s:sort_by:
+call s:BESet("g:bufExplorerSplitOutPathName", 1)      " Split out path and file name?
+call s:BESet("g:bufExplorerSplitRight", &splitright)  " Should vertical splits be on the right or left of current window?
+call s:BESet("g:bufExplorerSplitBelow", &splitbelow)  " Should horizontal splits be below or above current window?
+call s:BESet("g:bufExplorerShowTabBuffer", 0)         " Show only buffer(s) for this tab?
+call s:BESet("g:bufExplorerOnlyOneTab", 1)            " If ShowTabBuffer = 1, only store the most recent tab for this buffer.
+
+" Global variables {{{1
+call s:BEReset()
+let s:running = 0
+let s:sort_by = ["number", "name", "fullpath", "mru", "extension"]
+let s:types = {"fullname": ':p', "path": ':p:h', "relativename": ':~:.', "relativepath": ':~:.:h', "shortname": ':t'}
+let s:originBuffer = 0
+let s:splitMode = ""
+let s:name = '[BufExplorer]'
+let s:refreshBufferList = 1
+let s:MRU_Exclude_List = ["[BufExplorer]","__MRU_Files__"]
+"1}}}
+
+" vim:ft=vim foldmethod=marker sw=2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/vim-markdown/ftdetect/markdown.vim	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,6 @@
+autocmd BufNewFile,BufRead *.markdown,*.md,*.mdown,*.mkd,*.mkdn
+      \ if &ft =~# '^\%(conf\|modula2\)$' |
+      \   set ft=markdown |
+      \ else |
+      \   setf markdown |
+      \ endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/vim-markdown/ftplugin/markdown.vim	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,18 @@
+" Vim filetype plugin
+" Language:		Markdown
+" Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
+
+if exists("b:did_ftplugin")
+  finish
+endif
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+unlet! b:did_ftplugin
+
+setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
+setlocal formatoptions+=tcqln
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
+
+let b:undo_ftplugin .= "|setl cms< com< fo<"
+
+" vim:set sw=2:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/bundle/vim-markdown/syntax/markdown.vim	Wed May 12 16:28:35 2010 -0400
@@ -0,0 +1,101 @@
+" Vim syntax file
+" Language:     Markdown
+" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
+" Filenames:    *.markdown
+
+if exists("b:current_syntax")
+  finish
+endif
+
+runtime! syntax/html.vim
+unlet! b:current_syntax
+
+syn sync minlines=10
+syn case ignore
+
+syn match markdownValid '[<>]\S\@!'
+syn match markdownValid '&\%(#\=\w*;\)\@!'
+
+syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock
+
+syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule
+syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop
+
+syn match markdownH1 ".\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule
+syn match markdownH2 ".\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule
+
+syn match markdownHeadingRule "^[=-]\+$" contained
+
+syn region markdownH1 matchgroup=markdownHeadingDelimiter start="##\@!"      end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH2 matchgroup=markdownHeadingDelimiter start="###\@!"     end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH3 matchgroup=markdownHeadingDelimiter start="####\@!"    end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH4 matchgroup=markdownHeadingDelimiter start="#####\@!"   end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH5 matchgroup=markdownHeadingDelimiter start="######\@!"  end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH6 matchgroup=markdownHeadingDelimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
+
+syn match markdownBlockquote ">\s" contained nextgroup=@markdownBlock
+
+syn region markdownCodeBlock start="    \|\t" end="$" contained
+
+" TODO: real nesting
+syn match markdownListMarker " \{0,4\}[-*+]\%(\s\+\S\)\@=" contained
+syn match markdownOrderedListMarker " \{0,4}\<\d\+\.\%(\s*\S\)\@=" contained
+
+syn match markdownRule "\* *\* *\*[ *]*$" contained
+syn match markdownRule "- *- *-[ -]*$" contained
+
+syn match markdownLineBreak "\s\{2,\}$"
+
+syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite
+syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained
+syn region markdownUrl matchgroup=markdownUrlDelimiter start="<" end=">" oneline keepend nextgroup=markdownUrlTitle skipwhite contained
+syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+"+ keepend contained
+syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained
+syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained
+
+syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^]]*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" keepend nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart
+syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained
+syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained
+syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline
+
+syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
+syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
+syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart
+syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart
+syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" transparent keepend contains=markdownLineStart
+syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
+
+syn match markdownEscape "\\[][\\`*_{}()#+.!-]"
+
+hi def link markdownH1                    htmlH1
+hi def link markdownH2                    htmlH2
+hi def link markdownH3                    htmlH3
+hi def link markdownH4                    htmlH4
+hi def link markdownH5                    htmlH5
+hi def link markdownH6                    htmlH6
+hi def link markdownHeadingRule           markdownRule
+hi def link markdownHeadingDelimiter      Delimiter
+hi def link markdownOrderedListMarker     markdownListMarker
+hi def link markdownListMarker            htmlTagName
+hi def link markdownBlockquote            Comment
+hi def link markdownRule                  PreProc
+
+hi def link markdownLinkText              htmlLink
+hi def link markdownIdDeclaration         Typedef
+hi def link markdownId                    Type
+hi def link markdownAutomaticLink         markdownUrl
+hi def link markdownUrl                   Float
+hi def link markdownUrlTitle              String
+hi def link markdownIdDelimiter           markdownLinkDelimiter
+hi def link markdownUrlDelimiter          htmlTag
+hi def link markdownUrlTitleDelimiter     Delimiter
+
+hi def link markdownItalic                htmlItalic
+hi def link markdownBold                  htmlBold
+hi def link markdownCodeDelimiter         Delimiter
+
+hi def link markdownEscape                Special
+
+let b:current_syntax = "markdown"
+
+" vim:set sw=2:
--- a/vim/plugin/minibufexpl.vim	Wed May 12 15:47:32 2010 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1838 +0,0 @@
-" Mini Buffer Explorer <minibufexpl.vim>
-"
-" HINT: Type zR if you don't know how to use folds
-"
-" Script Info and Documentation  {{{
-"=============================================================================
-"    Copyright: Copyright (C) 2002 & 2003 Bindu Wavell 
-"               Permission is hereby granted to use and distribute this code,
-"               with or without modifications, provided that this copyright
-"               notice is copied with it. Like anything else that's free,
-"               minibufexplorer.vim is provided *as is* and comes with no
-"               warranty of any kind, either expressed or implied. In no
-"               event will the copyright holder be liable for any damamges
-"               resulting from the use of this software.
-"
-" Name Of File: minibufexpl.vim
-"  Description: Mini Buffer Explorer Vim Plugin
-"   Maintainer: Bindu Wavell <bindu@wavell.net>
-"          URL: http://vim.sourceforge.net/scripts/script.php?script_id=159
-"  Last Change: Sunday, June 21, 2004
-"      Version: 6.3.2
-"               Derived from Jeff Lanzarotta's bufexplorer.vim version 6.0.7
-"               Jeff can be reached at (jefflanzarotta@yahoo.com) and the
-"               original plugin can be found at:
-"               http://lanzarotta.tripod.com/vim/plugin/6/bufexplorer.vim.zip
-"
-"        Usage: Normally, this file should reside in the plugins
-"               directory and be automatically sourced. If not, you must
-"               manually source this file using ':source minibufexplorer.vim'.
-"
-"               You may use the default keymappings of
-"
-"                 <Leader>mbe - Opens MiniBufExplorer
-"
-"               or you may want to add something like the following
-"               key mapping to your _vimrc/.vimrc file.
-"
-"                 map <Leader>b :MiniBufExplorer<cr>
-"
-"               However, in most cases you won't need any key-bindings at all.
-"
-"               <Leader> is usually backslash so type "\mbe" (quickly) to open 
-"               the -MiniBufExplorer- window.
-"
-"               Other keymappings include: <Leader>mbc to close the Explorer
-"               window,  <Leader>mbu to force the Explorer to Update and
-"               <Leader>mbt to toggle the Explorer window; it will open if
-"               closed or close if open. Each of these key bindings can be
-"               overridden (see the notes on <Leader>mbe above.)
-" 
-"               You can map these additional commands as follows:
-"
-"                 map <Leader>c :CMiniBufExplorer<cr>
-"                 map <Leader>u :UMiniBufExplorer<cr>
-"                 map <Leader>t :TMiniBufExplorer<cr>
-"
-"               NOTE: you can change the key binding used in these mappings
-"                     so that they fit with your configuration of vim.
-"
-"               You can also call each of these features by typing the
-"               following in command mode:
-"
-"                 :MiniBufExplorer    " Open and/or goto Explorer
-"                 :CMiniBufExplorer   " Close the Explorer if it's open
-"                 :UMiniBufExplorer   " Update Explorer without navigating
-"                 :TMiniBufExplorer   " Toggle the Explorer window open and 
-"                                       closed.
-"
-"               To control where the new split window goes relative to the 
-"               current window, use the setting:
-"
-"                 let g:miniBufExplSplitBelow=0  " Put new window above
-"                                                " current or on the
-"                                                " left for vertical split
-"                 let g:miniBufExplSplitBelow=1  " Put new window below
-"                                                " current or on the
-"                                                " right for vertical split
-"
-"               The default for this is read from the &splitbelow VIM option.
-"
-"               By default we are now (as of 6.0.2) forcing the -MiniBufExplorer-
-"               window to open up at the edge of the screen. You can turn this 
-"               off by setting the following variable in your .vimrc:
-"
-"                 let g:miniBufExplSplitToEdge = 0
-"
-"               If you would like a vertical explorer you can assign the column
-"               width (in characters) you want for your explorer window with the
-"               following .vimrc variable (this was introduced in 6.3.0):
-"
-"                 let g:miniBufExplVSplit = 20   " column width in chars
-"
-"               IN HORIZONTAL MODE:
-"               It is now (as of 6.1.1) possible to set a maximum height for
-"               the -MiniBufExplorer- window. You can set the max height by
-"               letting the following variable in your .vimrc:
-"
-"                 let g:miniBufExplMaxSize = <max lines: defualt 0>
-"               
-"               setting this to 0 will mean the window gets as big as
-"               needed to fit all your buffers. 
-"
-"               NOTE: This was g:miniBufExplMaxHeight before 6.3.0; the old
-"               setting is backwards compatible if you don't use MaxSize.
-"
-"               As of 6.2.2 it is possible to set a minimum height for the 
-"               -MiniBufExplorer- window. You can set the min height by
-"               letting the following variable in your .vimrc:
-"
-"                 let g:miniBufExplMinSize = <min height: default 1>
-"
-"               NOTE: This was g:miniBufExplMinHeight before 6.3.0; the old
-"               setting is backwards compatible if you don't use MinSize.
-"
-"               IN VERTICAL MODE: (as of 6.3.0)
-"               By default the vertical explorer has a fixed width. If you put:
-"
-"                 let g:miniBufExplMaxSize = <max width: default 0> 
-"
-"               into your .vimrc then MBE will attempt to set the width of the
-"               MBE window to be as wide as your widest tab. The width will not
-"               exceed MaxSize even if you have wider tabs. 
-"
-"               Accepting the default value of 0 for this will give you a fixed
-"               width MBE window.
-"
-"               You can specify a MinSize for the vertical explorer window by
-"               putting the following in your .vimrc:
-"
-"                 let g:miniBufExplMinSize = <min width: default 1>
-"
-"               This will have no effect unless you also specivy MaxSize.
-"
-"               By default we are now (as of 6.0.1) turning on the MoreThanOne
-"               option. This stops the -MiniBufExplorer- from opening 
-"               automatically until more than one eligible buffer is available.
-"               You can turn this feature off by setting the following variable
-"               in your .vimrc:
-"                 
-"                 let g:miniBufExplorerMoreThanOne=1
-"
-"               (The following enhancement is as of 6.2.2)
-"               Setting this to 0 will cause the MBE window to be loaded even
-"               if no buffers are available. Setting it to 1 causes the MBE
-"               window to be loaded as soon as an eligible buffer is read. You
-"               can also set it to larger numbers. So if you set it to 4 for
-"               example the MBE window wouldn't auto-open until 4 eligibles
-"               buffers had been loaded. This is nice for folks that don't 
-"               want an MBE window unless they are editing more than two or
-"               three buffers.
-"
-"               To enable the optional mapping of Control + Vim Direction Keys 
-"               [hjkl] to window movement commands, you can put the following into 
-"               your .vimrc:
-"
-"                 let g:miniBufExplMapWindowNavVim = 1
-"
-"               To enable the optional mapping of Control + Arrow Keys to window 
-"               movement commands, you can put the following into your .vimrc:
-"
-"                 let g:miniBufExplMapWindowNavArrows = 1
-"
-"               To enable the optional mapping of <C-TAB> and <C-S-TAB> to a 
-"               function that will bring up the next or previous buffer in the
-"               current window, you can put the following into your .vimrc:
-"
-"                 let g:miniBufExplMapCTabSwitchBufs = 1
-"
-"               To enable the optional mapping of <C-TAB> and <C-S-TAB> to mappings
-"               that will move to the next and previous (respectively) window, you
-"               can put the following into your .vimrc:
-"
-"                 let g:miniBufExplMapCTabSwitchWindows = 1
-"
-"
-"               NOTE: If you set the ...TabSwitchBufs AND ...TabSwitchWindows, 
-"                     ...TabSwitchBufs will be enabled and ...TabSwitchWindows 
-"                     will not.
-"               
-"               As of MBE 6.3.0, you can put the following into your .vimrc:
-"               
-"                 let g:miniBufExplUseSingleClick = 1
-"
-"               If you would like to single click on tabs rather than double
-"               clicking on them to goto the selected buffer. 
-"
-"               NOTE: If you use the single click option in taglist.vim you may 
-"                     need to get an updated version that includes a patch I 
-"                     provided to allow both explorers to provide single click 
-"                     buffer selection.
-"
-"               It is possible to customize the the highlighting for the tabs in 
-"               the MBE by configuring the following highlighting groups:
-"
-"                 MBENormal         - for buffers that have NOT CHANGED and
-"                                     are NOT VISIBLE.
-"                 MBEChanged        - for buffers that HAVE CHANGED and are
-"                                     NOT VISIBLE
-"                 MBEVisibleNormal  - buffers that have NOT CHANGED and are
-"                                     VISIBLE
-"                 MBEVisibleChanged - buffers that have CHANGED and are VISIBLE
-"
-"               You can either link to an existing highlighting group by
-"               adding a command like:
-"
-"                 hi link MBEVisibleChanged Error
-"
-"               to your .vimrc or you can specify exact foreground and background
-"               colors using the following syntax:
-"
-"                 hi MBEChanged guibg=darkblue ctermbg=darkblue termbg=white
-"
-"               NOTE: If you set a colorscheme in your .vimrc you should do it
-"                     BEFORE updating the MBE highlighting groups.
-"
-"               If you use other explorers like TagList you can (As of 6.2.8) put:
-"
-"                 let g:miniBufExplModSelTarget = 1
-" 
-"               into your .vimrc in order to force MBE to try to place selected 
-"               buffers into a window that does not have a nonmodifiable buffer.
-"               The upshot of this should be that if you go into MBE and select
-"               a buffer, the buffer should not show up in a window that is 
-"               hosting an explorer.
-"
-"               There is a VIM bug that can cause buffers to show up without 
-"               their highlighting. The following setting will cause MBE to
-"               try and turn highlighting back on (introduced in 6.3.1):
-"
-"                 let g:miniBufExplForceSyntaxEnable = 1
-"
-"               MBE has had a basic debugging capability for quite some time.
-"               However, it has not been very friendly in the past. As of 6.0.8, 
-"               you can put one of each of the following into your .vimrc:
-"
-"                 let g:miniBufExplorerDebugLevel = 0  " MBE serious errors output
-"                 let g:miniBufExplorerDebugLevel = 4  " MBE all errors output
-"                 let g:miniBufExplorerDebugLevel = 10 " MBE reports everything
-"
-"               You can also set a DebugMode to cause output to be target as
-"               follows (default is mode 3):
-"
-"                 let g:miniBufExplorerDebugMode  = 0  " Errors will show up in 
-"                                                      " a vim window
-"                 let g:miniBufExplorerDebugMode  = 1  " Uses VIM's echo function
-"                                                      " to display on the screen
-"                 let g:miniBufExplorerDebugMode  = 2  " Writes to a file
-"                                                      " MiniBufExplorer.DBG
-"                 let g:miniBufExplorerDebugMode  = 3  " Store output in global:
-"                                                 " g:miniBufExplorerDebugOutput
-"
-"               Or if you are able to start VIM, you might just perform these
-"               at a command prompt right before you do the operation that is
-"               failing.
-"
-"      History: Moved to end of file
-"      
-" Known Issues: When debugging is turned on and set to output to a window, there
-"               are some cases where the window is opened more than once, there
-"               are other cases where an old debug window can be lost.
-" 
-"               Several MBE commands can break the window history so <C-W>[pnw]
-"               might not take you to the expected window.
-"
-"         Todo: Add the ability to specify a regexp for eligible buffers
-"               allowing the ability to filter out certain buffers that 
-"               you don't want to control from MBE
-"
-"=============================================================================
-" }}}
-
-" Startup Check
-"
-" Has this plugin already been loaded? {{{
-"
-if exists('loaded_minibufexplorer')
-  finish
-endif
-let loaded_minibufexplorer = 1
-" }}}
-
-" Mappings and Commands
-"
-" MBE Keyboard Mappings {{{
-" If we don't already have keyboard mappings for MBE then create them 
-" 
-if !hasmapto('<Plug>MiniBufExplorer')
-  map <unique> <Leader>mbe <Plug>MiniBufExplorer
-endif
-if !hasmapto('<Plug>CMiniBufExplorer')
-  map <unique> <Leader>mbc <Plug>CMiniBufExplorer
-endif
-if !hasmapto('<Plug>UMiniBufExplorer')
-  map <unique> <Leader>mbu <Plug>UMiniBufExplorer
-endif
-if !hasmapto('<Plug>TMiniBufExplorer')
-  map <unique> <Leader>mbt <Plug>TMiniBufExplorer
-endif
-
-" }}}
-" MBE <Script> internal map {{{
-" 
-noremap <unique> <script> <Plug>MiniBufExplorer  :call <SID>StartExplorer(1, -1)<CR>:<BS>
-noremap <unique> <script> <Plug>CMiniBufExplorer :call <SID>StopExplorer(1)<CR>:<BS>
-noremap <unique> <script> <Plug>UMiniBufExplorer :call <SID>AutoUpdate(-1)<CR>:<BS>
-noremap <unique> <script> <Plug>TMiniBufExplorer :call <SID>ToggleExplorer()<CR>:<BS>
-
-" }}}
-" MBE commands {{{
-" 
-if !exists(':MiniBufExplorer')
-  command! MiniBufExplorer  call <SID>StartExplorer(1, -1)
-endif
-if !exists(':CMiniBufExplorer')
-  command! CMiniBufExplorer  call <SID>StopExplorer(1)
-endif
-if !exists(':UMiniBufExplorer')
-  command! UMiniBufExplorer  call <SID>AutoUpdate(-1)
-endif
-if !exists(':TMiniBufExplorer')
-  command! TMiniBufExplorer  call <SID>ToggleExplorer()
-endif
-if !exists(':MBEbn')
-  command! MBEbn call <SID>CycleBuffer(1)
-endif
-if !exists(':MBEbp')
-  command! MBEbp call <SID>CycleBuffer(0)
-endif " }}}
-
-" Global Configuration Variables
-"
-" Debug Level {{{
-"
-" 0 = no logging
-" 1=5 = errors ; 1 is the most important
-" 5-9 = info ; 5 is the most important
-" 10 = Entry/Exit
-if !exists('g:miniBufExplorerDebugLevel')
-  let g:miniBufExplorerDebugLevel = 0 
-endif
-
-" }}}
-" Debug Mode {{{
-"
-" 0 = debug to a window
-" 1 = use vim's echo facility
-" 2 = write to a file named MiniBufExplorer.DBG
-"     in the directory where vim was started
-"     THIS IS VERY SLOW
-" 3 = Write into g:miniBufExplorerDebugOutput
-"     global variable [This is the default]
-if !exists('g:miniBufExplorerDebugMode')
-  let g:miniBufExplorerDebugMode = 3 
-endif 
-
-" }}}
-" Allow auto update? {{{
-"
-" We start out with this off for startup, but once vim is running we 
-" turn this on.
-if !exists('g:miniBufExplorerAutoUpdate')
-  let g:miniBufExplorerAutoUpdate = 0
-endif
-
-" }}}
-" MoreThanOne? {{{
-" Display Mini Buf Explorer when there are 'More Than One' eligible buffers 
-"
-if !exists('g:miniBufExplorerMoreThanOne')
-  let g:miniBufExplorerMoreThanOne = 2
-endif 
-
-" }}}
-" Split below/above/left/right? {{{
-" When opening a new -MiniBufExplorer- window, split the new windows below or 
-" above the current window?  1 = below, 0 = above.
-"
-if !exists('g:miniBufExplSplitBelow')
-  let g:miniBufExplSplitBelow = &splitbelow
-endif 
-
-" }}}
-" Split to edge? {{{
-" When opening a new -MiniBufExplorer- window, split the new windows to the
-" full edge? 1 = yes, 0 = no.
-"
-if !exists('g:miniBufExplSplitToEdge')
-  let g:miniBufExplSplitToEdge = 1
-endif 
-
-" }}}
-" MaxHeight (depreciated) {{{
-" When sizing the -MiniBufExplorer- window, assign a maximum window height.
-" 0 = size to fit all buffers, otherwise the value is number of lines for
-" buffer. [Depreciated use g:miniBufExplMaxSize]
-"
-if !exists('g:miniBufExplMaxHeight')
-  let g:miniBufExplMaxHeight = 0
-endif 
-
-" }}}
-" MaxSize {{{
-" Same as MaxHeight but also works for vertical splits if specified with a
-" vertical split then vertical resizing will be performed. If left at 0 
-" then the number of columns in g:miniBufExplVSplit will be used as a
-" static window width.
-if !exists('g:miniBufExplMaxSize')
-  let g:miniBufExplMaxSize = g:miniBufExplMaxHeight
-endif
-
-" }}}
-" MinHeight (depreciated) {{{
-" When sizing the -MiniBufExplorer- window, assign a minumum window height.
-" the value is minimum number of lines for buffer. Setting this to zero can
-" cause strange height behavior. The default value is 1 [Depreciated use
-" g:miniBufExplMinSize]
-"
-if !exists('g:miniBufExplMinHeight')
-  let g:miniBufExplMinHeight = 1
-endif
-
-" }}}
-" MinSize {{{
-" Same as MinHeight but also works for vertical splits. For vertical splits, 
-" this is ignored unless g:miniBufExplMax(Size|Height) are specified.
-if !exists('g:miniBufExplMinSize')
-  let g:miniBufExplMinSize = g:miniBufExplMinHeight
-endif
-
-" }}}
-" Horizontal or Vertical explorer? {{{
-" For folks that like vertical explorers, I'm caving in and providing for
-" veritcal splits. If this is set to 0 then the current horizontal 
-" splitting logic will be run. If however you want a vertical split,
-" assign the width (in characters) you wish to assign to the MBE window.
-"
-if !exists('g:miniBufExplVSplit')
-  let g:miniBufExplVSplit = 0
-endif
-
-" }}}
-" TabWrap? {{{
-" By default line wrap is used (possibly breaking a tab name between two
-" lines.) Turning this option on (setting it to 1) can take more screen
-" space, but will make sure that each tab is on one and only one line.
-"
-if !exists('g:miniBufExplTabWrap')
-  let g:miniBufExplTabWrap = 0
-endif
-
-" }}}
-" Extended window navigation commands? {{{
-" Global flag to turn extended window navigation commands on or off
-" enabled = 1, dissabled = 0
-"
-if !exists('g:miniBufExplMapWindowNav')
-  " This is for backwards compatibility and may be removed in a
-  " later release, please use the ...NavVim and/or ...NavArrows 
-  " settings.
-  let g:miniBufExplMapWindowNav = 0
-endif
-if !exists('g:miniBufExplMapWindowNavVim')
-  let g:miniBufExplMapWindowNavVim = 0
-endif
-if !exists('g:miniBufExplMapWindowNavArrows')
-  let g:miniBufExplMapWindowNavArrows = 0
-endif
-if !exists('g:miniBufExplMapCTabSwitchBufs')
-  let g:miniBufExplMapCTabSwitchBufs = 0
-endif
-" Notice: that if CTabSwitchBufs is turned on then
-" we turn off CTabSwitchWindows.
-if g:miniBufExplMapCTabSwitchBufs == 1 || !exists('g:miniBufExplMapCTabSwitchWindows')
-  let g:miniBufExplMapCTabSwitchWindows = 0
-endif 
-
-"
-" If we have enabled control + vim direction key remapping
-" then perform the remapping
-"
-" Notice: I left g:miniBufExplMapWindowNav in for backward
-" compatibility. Eventually this mapping will be removed so
-" please use the newer g:miniBufExplMapWindowNavVim setting.
-if g:miniBufExplMapWindowNavVim || g:miniBufExplMapWindowNav
-  noremap <C-J> <C-W>j
-  noremap <C-K> <C-W>k
-  noremap <C-H> <C-W>h
-  noremap <C-L> <C-W>l
-endif
-
-"
-" If we have enabled control + arrow key remapping
-" then perform the remapping
-"
-if g:miniBufExplMapWindowNavArrows
-  noremap <C-Down>  <C-W>j
-  noremap <C-Up>    <C-W>k
-  noremap <C-Left>  <C-W>h
-  noremap <C-Right> <C-W>l
-endif
-
-" If we have enabled <C-TAB> and <C-S-TAB> to switch buffers
-" in the current window then perform the remapping
-"
-if g:miniBufExplMapCTabSwitchBufs
-  noremap <C-TAB>   :call <SID>CycleBuffer(1)<CR>:<BS>
-  noremap <C-S-TAB> :call <SID>CycleBuffer(0)<CR>:<BS>
-endif
-
-"
-" If we have enabled <C-TAB> and <C-S-TAB> to switch windows
-" then perform the remapping
-"
-if g:miniBufExplMapCTabSwitchWindows
-  noremap <C-TAB>   <C-W>w
-  noremap <C-S-TAB> <C-W>W
-endif
-
-" }}}
-" Modifiable Select Target {{{
-"
-if !exists('g:miniBufExplModSelTarget')
-  let g:miniBufExplModSelTarget = 0
-endif
-
-"}}}
-" Force Syntax Enable {{{
-"
-if !exists('g:miniBufExplForceSyntaxEnable')
-  let g:miniBufExplForceSyntaxEnable = 0
-endif
-
-" }}}
-" Single/Double Click? {{{
-" flag that can be set to 1 in a users .vimrc to allow 
-" single click switching of tabs. By default we use
-" double click for tab selection.
-"
-if !exists('g:miniBufExplUseSingleClick')
-  let g:miniBufExplUseSingleClick = 0
-endif 
-
-"
-" attempt to perform single click mapping, it would be much
-" nicer if we could nnoremap <buffer> ... however vim does
-" not fire the <buffer> <leftmouse> when you use the mouse
-" to enter a buffer.
-"
-if g:miniBufExplUseSingleClick == 1
-  let s:clickmap = ':if bufname("%") == "-MiniBufExplorer-" <bar> call <SID>MBEClick() <bar> endif <CR>'
-  if maparg('<LEFTMOUSE>', 'n') == '' 
-    " no mapping for leftmouse
-    exec ':nnoremap <silent> <LEFTMOUSE> <LEFTMOUSE>' . s:clickmap
-  else
-    " we have a mapping
-    let  g:miniBufExplDoneClickSave = 1
-    let  s:m = ':nnoremap <silent> <LEFTMOUSE> <LEFTMOUSE>'
-    let  s:m = s:m . substitute(substitute(maparg('<LEFTMOUSE>', 'n'), '|', '<bar>', 'g'), '\c^<LEFTMOUSE>', '', '')
-    let  s:m = s:m . s:clickmap
-    exec s:m
-  endif
-endif " }}}
-
-" Variables used internally
-"
-" Script/Global variables {{{
-" Global used to store the buffer list so we don't update the
-" UI unless the list has changed.
-if !exists('g:miniBufExplBufList')
-  let g:miniBufExplBufList = ''
-endif
-
-" Variable used as a mutex so that we don't do lots
-" of AutoUpdates at the same time.
-if !exists('g:miniBufExplInAutoUpdate')
-  let g:miniBufExplInAutoUpdate = 0
-endif
-
-" In debug mode 3 this variable will hold the debug output
-if !exists('g:miniBufExplorerDebugOutput')
-  let g:miniBufExplorerDebugOutput = ''
-endif
-
-" In debug mode 3 this variable will hold the debug output
-if !exists('g:miniBufExplForceDisplay')
-  let g:miniBufExplForceDisplay = 0
-endif
-
-" Variable used to pass maxTabWidth info between functions
-let s:maxTabWidth = 0 
-
-" Variable used to count debug output lines
-let s:debugIndex = 0 
-
-  
-" }}}
-" Setup an autocommand group and some autocommands {{{
-" that keep our explorer updated automatically.
-"
-augroup MiniBufExplorer
-autocmd MiniBufExplorer BufDelete   * call <SID>DEBUG('-=> BufDelete AutoCmd', 10) |call <SID>AutoUpdate(expand('<abuf>'))
-autocmd MiniBufExplorer BufEnter    * call <SID>DEBUG('-=> BufEnter  AutoCmd', 10) |call <SID>AutoUpdate(-1)
-autocmd MiniBufExplorer VimEnter    * call <SID>DEBUG('-=> VimEnter  AutoCmd', 10) |let g:miniBufExplorerAutoUpdate = 1 |call <SID>AutoUpdate(-1)
-" }}}
-
-" Functions
-"
-" StartExplorer - Sets up our explorer and causes it to be displayed {{{
-"
-function! <SID>StartExplorer(sticky, delBufNum)
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Entering StartExplorer()'   ,10)
-  call <SID>DEBUG('===========================',10)
-
-  if a:sticky == 1
-    let g:miniBufExplorerAutoUpdate = 1
-  endif
-
-  " Store the current buffer
-  let l:curBuf = bufnr('%')
-
-  " Prevent a report of our actions from showing up.
-  let l:save_rep = &report
-  let l:save_sc  = &showcmd
-  let &report    = 10000
-  set noshowcmd 
-
-  call <SID>FindCreateWindow('-MiniBufExplorer-', -1, 1, 1)
-
-  " Make sure we are in our window
-  if bufname('%') != '-MiniBufExplorer-'
-    call <SID>DEBUG('StartExplorer called in invalid window',1)
-    let &report  = l:save_rep
-    let &showcmd = l:save_sc
-    return
-  endif
-
-  " !!! We may want to make the following optional -- Bindu
-  " New windows don't cause all windows to be resized to equal sizes
-  set noequalalways
-  " !!! We may want to make the following optional -- Bindu
-  " We don't want the mouse to change focus without a click
-  set nomousefocus
-
-  " If folks turn numbering and columns on by default we will turn 
-  " them off for the MBE window
-  setlocal foldcolumn=0
-  setlocal nonumber
- 
-  if has("syntax")
-    syn clear
-    syn match MBENormal             '\[[^\]]*\]'
-    syn match MBEChanged            '\[[^\]]*\]+'
-    syn match MBEVisibleNormal      '\[[^\]]*\]\*+\='
-    syn match MBEVisibleChanged     '\[[^\]]*\]\*+'
-    
-    if !exists("g:did_minibufexplorer_syntax_inits")
-      let g:did_minibufexplorer_syntax_inits = 1
-      hi def link MBENormal         Comment
-      hi def link MBEChanged        String
-      hi def link MBEVisibleNormal  Special
-      hi def link MBEVisibleChanged Special
-    endif
-  endif
-
-  " If you press return in the -MiniBufExplorer- then try
-  " to open the selected buffer in the previous window.
-  nnoremap <buffer> <CR> :call <SID>MBESelectBuffer()<CR>:<BS>
-  " If you DoubleClick in the -MiniBufExplorer- then try
-  " to open the selected buffer in the previous window.
-  nnoremap <buffer> <2-LEFTMOUSE> :call <SID>MBEDoubleClick()<CR>:<BS>
-  " If you press d in the -MiniBufExplorer- then try to
-  " delete the selected buffer.
-  nnoremap <buffer> d :call <SID>MBEDeleteBuffer()<CR>:<BS>
-  " If you press w in the -MiniBufExplorer- then switch back
-  " to the previous window.
-  nnoremap <buffer> p :wincmd p<CR>:<BS>
-  " The following allow us to use regular movement keys to 
-  " scroll in a wrapped single line buffer
-  nnoremap <buffer> j gj
-  nnoremap <buffer> k gk
-  nnoremap <buffer> <down> gj
-  nnoremap <buffer> <up> gk
-  " The following allows for quicker moving between buffer
-  " names in the [MBE] window it also saves the last-pattern
-  " and restores it.
-  nnoremap <buffer> <TAB>   :call search('\[[0-9]*:[^\]]*\]')<CR>:<BS>
-  nnoremap <buffer> <S-TAB> :call search('\[[0-9]*:[^\]]*\]','b')<CR>:<BS>
- 
-  call <SID>DisplayBuffers(a:delBufNum)
-
-  if (l:curBuf != -1)
-    call search('\['.l:curBuf.':'.expand('#'.l:curBuf.':t').'\]')
-  else
-    call <SID>DEBUG('No current buffer to search for',9)
-  endif
-
-  let &report  = l:save_rep
-  let &showcmd = l:save_sc
-
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Completed StartExplorer()'  ,10)
-  call <SID>DEBUG('===========================',10)
-
-endfunction 
-
-" }}}
-" StopExplorer - Looks for our explorer and closes the window if it is open {{{
-"
-function! <SID>StopExplorer(sticky)
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Entering StopExplorer()'    ,10)
-  call <SID>DEBUG('===========================',10)
-
-  if a:sticky == 1
-    let g:miniBufExplorerAutoUpdate = 0
-  endif
-
-  let l:winNum = <SID>FindWindow('-MiniBufExplorer-', 1)
-
-  if l:winNum != -1 
-    exec l:winNum.' wincmd w'
-    silent! close
-    wincmd p
-  endif
-
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Completed StopExplorer()'   ,10)
-  call <SID>DEBUG('===========================',10)
-
-endfunction
-
-" }}}
-" ToggleExplorer - Looks for our explorer and opens/closes the window {{{
-"
-function! <SID>ToggleExplorer()
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Entering ToggleExplorer()'  ,10)
-  call <SID>DEBUG('===========================',10)
-
-  let g:miniBufExplorerAutoUpdate = 0
-
-  let l:winNum = <SID>FindWindow('-MiniBufExplorer-', 1)
-
-  if l:winNum != -1 
-    call <SID>StopExplorer(1)
-  else
-    call <SID>StartExplorer(1, -1)
-    wincmd p
-  endif
-
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Completed ToggleExplorer()' ,10)
-  call <SID>DEBUG('===========================',10)
-
-endfunction
-
-" }}}
-" FindWindow - Return the window number of a named buffer {{{
-" If none is found then returns -1. 
-"
-function! <SID>FindWindow(bufName, doDebug)
-  if a:doDebug
-    call <SID>DEBUG('Entering FindWindow()',10)
-  endif
-
-  " Try to find an existing window that contains 
-  " our buffer.
-  let l:bufNum = bufnr(a:bufName)
-  if l:bufNum != -1
-    if a:doDebug
-      call <SID>DEBUG('Found buffer ('.a:bufName.'): '.l:bufNum,9)
-    endif
-    let l:winNum = bufwinnr(l:bufNum)
-  else
-    let l:winNum = -1
-  endif
-
-  return l:winNum
-
-endfunction
-
-" }}}
-" FindCreateWindow - Attempts to find a window for a named buffer. {{{
-"
-" If it is found then moves there. Otherwise creates a new window and 
-" configures it and moves there.
-"
-" forceEdge, -1 use defaults, 0 below, 1 above
-" isExplorer, 0 no, 1 yes 
-" doDebug, 0 no, 1 yes
-"
-function! <SID>FindCreateWindow(bufName, forceEdge, isExplorer, doDebug)
-  if a:doDebug
-    call <SID>DEBUG('Entering FindCreateWindow('.a:bufName.')',10)
-  endif
-
-  " Save the user's split setting.
-  let l:saveSplitBelow = &splitbelow
-
-  " Set to our new values.
-  let &splitbelow = g:miniBufExplSplitBelow
-
-  " Try to find an existing explorer window
-  let l:winNum = <SID>FindWindow(a:bufName, a:doDebug)
-
-  " If found goto the existing window, otherwise 
-  " split open a new window.
-  if l:winNum != -1
-    if a:doDebug
-      call <SID>DEBUG('Found window ('.a:bufName.'): '.l:winNum,9)
-    endif
-    exec l:winNum.' wincmd w'
-    let l:winFound = 1
-  else
-
-    if g:miniBufExplSplitToEdge == 1 || a:forceEdge >= 0
-
-        let l:edge = &splitbelow
-        if a:forceEdge >= 0
-            let l:edge = a:forceEdge
-        endif
-
-        if l:edge
-            if g:miniBufExplVSplit == 0
-              exec 'bo sp '.a:bufName
-            else
-              exec 'bo vsp '.a:bufName
-            endif
-        else
-            if g:miniBufExplVSplit == 0
-              exec 'to sp '.a:bufName
-            else
-              exec 'to vsp '.a:bufName
-            endif
-        endif
-    else
-        if g:miniBufExplVSplit == 0
-          exec 'sp '.a:bufName
-        else
-          " &splitbelow doesn't affect vertical splits
-          " so we have to do this explicitly.. ugh.
-          if &splitbelow
-            exec 'rightb vsp '.a:bufName
-          else
-            exec 'vsp '.a:bufName
-          endif
-        endif
-    endif
-
-    let g:miniBufExplForceDisplay = 1
-
-    " Try to find an existing explorer window
-    let l:winNum = <SID>FindWindow(a:bufName, a:doDebug)
-    if l:winNum != -1
-      if a:doDebug
-        call <SID>DEBUG('Created and then found window ('.a:bufName.'): '.l:winNum,9)
-      endif
-      exec l:winNum.' wincmd w'
-    else
-      if a:doDebug
-        call <SID>DEBUG('FindCreateWindow failed to create window ('.a:bufName.').',1)
-      endif
-      return
-    endif
-
-    if a:isExplorer
-      " Turn off the swapfile, set the buffer type so that it won't get written,
-      " and so that it will get deleted when it gets hidden and turn on word wrap.
-      setlocal noswapfile
-      setlocal buftype=nofile
-      setlocal bufhidden=delete
-      if g:miniBufExplVSplit == 0
-        setlocal wrap
-      else
-        setlocal nowrap
-        exec('setlocal winwidth='.g:miniBufExplMinSize)
-      endif
-    endif
-
-    if a:doDebug
-      call <SID>DEBUG('Window ('.a:bufName.') created: '.winnr(),9)
-    endif
-
-  endif
-
-  " Restore the user's split setting.
-  let &splitbelow = l:saveSplitBelow
-
-endfunction
-
-" }}}
-" DisplayBuffers - Wrapper for getting MBE window shown {{{
-"
-" Makes sure we are in our explorer, then erases the current buffer and turns 
-" it into a mini buffer explorer window.
-"
-function! <SID>DisplayBuffers(delBufNum)
-  call <SID>DEBUG('Entering DisplayBuffers()',10)
-  
-  " Make sure we are in our window
-  if bufname('%') != '-MiniBufExplorer-'
-    call <SID>DEBUG('DisplayBuffers called in invalid window',1)
-    return
-  endif
-
-  " We need to be able to modify the buffer
-  setlocal modifiable
-
-  call <SID>ShowBuffers(a:delBufNum)
-  call <SID>ResizeWindow()
-  
-  normal! zz
-  
-  " Prevent the buffer from being modified.
-  setlocal nomodifiable
-  set nobuflisted
-
-endfunction
-
-" }}}
-" Resize Window - Set width/height of MBE window {{{
-" 
-" Makes sure we are in our explorer, then sets the height/width for our explorer 
-" window so that we can fit all of our information without taking extra lines.
-"
-function! <SID>ResizeWindow()
-  call <SID>DEBUG('Entering ResizeWindow()',10)
-
-  " Make sure we are in our window
-  if bufname('%') != '-MiniBufExplorer-'
-    call <SID>DEBUG('ResizeWindow called in invalid window',1)
-    return
-  endif
-
-  let l:width  = winwidth('.')
-
-  " Horizontal Resize
-  if g:miniBufExplVSplit == 0
-
-    if g:miniBufExplTabWrap == 0
-      let l:length = strlen(getline('.'))
-      let l:height = 0
-      if (l:width == 0)
-        let l:height = winheight('.')
-      else
-        let l:height = (l:length / l:width) 
-        " handle truncation from div
-        if (l:length % l:width) != 0
-          let l:height = l:height + 1
-        endif
-      endif
-    else
-      exec("setlocal textwidth=".l:width)
-      normal gg
-      normal gq}
-      normal G
-      let l:height = line('.')
-      normal gg
-    endif
-  
-    " enforce max window height
-    if g:miniBufExplMaxSize != 0
-      if g:miniBufExplMaxSize < l:height
-        let l:height = g:miniBufExplMaxSize
-      endif
-    endif
-  
-    " enfore min window height
-    if l:height < g:miniBufExplMinSize || l:height == 0
-      let l:height = g:miniBufExplMinSize
-    endif
-  
-    call <SID>DEBUG('ResizeWindow to '.l:height.' lines',9)
-  
-    exec('resize '.l:height)
-  
-  " Vertical Resize
-  else 
-
-    if g:miniBufExplMaxSize != 0
-      let l:newWidth = s:maxTabWidth
-      if l:newWidth > g:miniBufExplMaxSize 
-          let l:newWidth = g:miniBufExplMaxSize
-      endif
-      if l:newWidth < g:miniBufExplMinSize
-          let l:newWidth = g:miniBufExplMinSize
-      endif
-    else
-      let l:newWidth = g:miniBufExplVSplit
-    endif
-
-    if l:width != l:newWidth
-      call <SID>DEBUG('ResizeWindow to '.l:newWidth.' columns',9)
-      exec('vertical resize '.l:newWidth)
-    endif
-
-  endif
-  
-endfunction
-
-" }}}
-" ShowBuffers - Clear current buffer and put the MBE text into it {{{
-" 
-" Makes sure we are in our explorer, then adds a list of all modifiable 
-" buffers to the current buffer. Special marks are added for buffers that 
-" are in one or more windows (*) and buffers that have been modified (+)
-"
-function! <SID>ShowBuffers(delBufNum)
-  call <SID>DEBUG('Entering ShowBuffers()',10)
-
-  let l:ListChanged = <SID>BuildBufferList(a:delBufNum, 1)
-
-  if (l:ListChanged == 1 || g:miniBufExplForceDisplay)
-    let l:save_rep = &report
-    let l:save_sc = &showcmd
-    let &report = 10000
-    set noshowcmd 
-
-    " Delete all lines in buffer.
-    1,$d _
-  
-    " Goto the end of the buffer put the buffer list 
-    " and then delete the extra trailing blank line
-    $
-    put! =g:miniBufExplBufList
-    $ d _
-
-    let g:miniBufExplForceDisplay = 0
-
-    let &report  = l:save_rep
-    let &showcmd = l:save_sc
-  else
-    call <SID>DEBUG('Buffer list not update since there was no change',9)
-  endif
-  
-endfunction
-
-" }}}
-" Max - Returns the max of two numbers {{{
-"
-function! <SID>Max(argOne, argTwo)
-  if a:argOne > a:argTwo
-    return a:argOne
-  else
-    return a:argTwo
-  endif
-endfunction
-
-" }}}
-" BuildBufferList - Build the text for the MBE window {{{
-" 
-" Creates the buffer list string and returns 1 if it is different than
-" last time this was called and 0 otherwise.
-"
-function! <SID>BuildBufferList(delBufNum, updateBufList)
-  call <SID>DEBUG('Entering BuildBufferList()',10)
-
-  let l:NBuffers = bufnr('$')     " Get the number of the last buffer.
-  let l:i = 0                     " Set the buffer index to zero.
-
-  let l:fileNames = ''
-  let l:maxTabWidth = 0
-
-  " Loop through every buffer less than the total number of buffers.
-  while(l:i <= l:NBuffers)
-    let l:i = l:i + 1
-   
-    " If we have a delBufNum and it is the current
-    " buffer then ignore the current buffer. 
-    " Otherwise, continue.
-    if (a:delBufNum == -1 || l:i != a:delBufNum)
-      " Make sure the buffer in question is listed.
-      if(getbufvar(l:i, '&buflisted') == 1)
-        " Get the name of the buffer.
-        let l:BufName = bufname(l:i)
-        " Check to see if the buffer is a blank or not. If the buffer does have
-        " a name, process it.
-        if(strlen(l:BufName))
-          " Only show modifiable buffers (The idea is that we don't 
-          " want to show Explorers)
-          if (getbufvar(l:i, '&modifiable') == 1 && BufName != '-MiniBufExplorer-')
-            
-            " Get filename & Remove []'s & ()'s
-            let l:shortBufName = fnamemodify(l:BufName, ":t")                  
-            let l:shortBufName = substitute(l:shortBufName, '[][()]', '', 'g') 
-            let l:tab = '['.l:i.':'.l:shortBufName.']'
-
-            " If the buffer is open in a window mark it
-            if bufwinnr(l:i) != -1
-              let l:tab = l:tab . '*'
-            endif
-
-            " If the buffer is modified then mark it
-            if(getbufvar(l:i, '&modified') == 1)
-              let l:tab = l:tab . '+'
-            endif
-
-            let l:maxTabWidth = <SID>Max(strlen(l:tab), l:maxTabWidth)
-            let l:fileNames = l:fileNames.l:tab
-
-            " If horizontal and tab wrap is turned on we need to add spaces
-            if g:miniBufExplVSplit == 0
-              if g:miniBufExplTabWrap != 0
-                let l:fileNames = l:fileNames.' '
-              endif
-            " If not horizontal we need a newline
-            else
-              let l:fileNames = l:fileNames . "\n"
-            endif
-          endif
-        endif
-      endif
-    endif
-  endwhile
-
-  if (g:miniBufExplBufList != l:fileNames)
-    if (a:updateBufList)
-      let g:miniBufExplBufList = l:fileNames
-      let s:maxTabWidth = l:maxTabWidth
-    endif
-    return 1
-  else
-    return 0
-  endif
-
-endfunction
-
-" }}}
-" HasEligibleBuffers - Are there enough MBE eligible buffers to open the MBE window? {{{
-" 
-" Returns 1 if there are any buffers that can be displayed in a 
-" mini buffer explorer. Otherwise returns 0. If delBufNum is
-" any non -1 value then don't include that buffer in the list
-" of eligible buffers.
-"
-function! <SID>HasEligibleBuffers(delBufNum)
-  call <SID>DEBUG('Entering HasEligibleBuffers()',10)
-
-  let l:save_rep = &report
-  let l:save_sc = &showcmd
-  let &report = 10000
-  set noshowcmd 
-  
-  let l:NBuffers = bufnr('$')     " Get the number of the last buffer.
-  let l:i        = 0              " Set the buffer index to zero.
-  let l:found    = 0              " No buffer found
-
-  if (g:miniBufExplorerMoreThanOne > 1)
-    call <SID>DEBUG('More Than One mode turned on',6)
-  endif
-  let l:needed = g:miniBufExplorerMoreThanOne
-
-  " Loop through every buffer less than the total number of buffers.
-  while(l:i <= l:NBuffers && l:found < l:needed)
-    let l:i = l:i + 1
-   
-    " If we have a delBufNum and it is the current
-    " buffer then ignore the current buffer. 
-    " Otherwise, continue.
-    if (a:delBufNum == -1 || l:i != a:delBufNum)
-      " Make sure the buffer in question is listed.
-      if (getbufvar(l:i, '&buflisted') == 1)
-        " Get the name of the buffer.
-        let l:BufName = bufname(l:i)
-        " Check to see if the buffer is a blank or not. If the buffer does have
-        " a name, process it.
-        if (strlen(l:BufName))
-          " Only show modifiable buffers (The idea is that we don't 
-          " want to show Explorers)
-          if ((getbufvar(l:i, '&modifiable') == 1) && (BufName != '-MiniBufExplorer-'))
-            
-              let l:found = l:found + 1
-  
-          endif
-        endif
-      endif
-    endif
-  endwhile
-
-  let &report  = l:save_rep
-  let &showcmd = l:save_sc
-
-  call <SID>DEBUG('HasEligibleBuffers found '.l:found.' eligible buffers of '.l:needed.' needed',6)
-
-  return (l:found >= l:needed)
-  
-endfunction
-
-" }}}
-" Auto Update - Function called by auto commands for auto updating the MBE {{{
-"
-" IF auto update is turned on        AND
-"    we are in a real buffer         AND
-"    we have enough eligible buffers THEN
-" Update our explorer and get back to the current window
-"
-" If we get a buffer number for a buffer that 
-" is being deleted, we need to make sure and 
-" remove the buffer from the list of eligible 
-" buffers in case we are down to one eligible
-" buffer, in which case we will want to close
-" the MBE window.
-"
-function! <SID>AutoUpdate(delBufNum)
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Entering AutoUpdate('.a:delBufNum.') : '.bufnr('%').' : '.bufname('%'),10)
-  call <SID>DEBUG('===========================',10)
-
-  if (g:miniBufExplInAutoUpdate == 1)
-    call <SID>DEBUG('AutoUpdate recursion stopped',9)
-    call <SID>DEBUG('===========================',10)
-    call <SID>DEBUG('Terminated AutoUpdate()'    ,10)
-    call <SID>DEBUG('===========================',10)
-    return
-  else
-    let g:miniBufExplInAutoUpdate = 1
-  endif
-
-  " Don't bother autoupdating the MBE window
-  if (bufname('%') == '-MiniBufExplorer-')
-    " If this is the only buffer left then toggle the buffer
-    if (winbufnr(2) == -1)
-        call <SID>CycleBuffer(1)
-        call <SID>DEBUG('AutoUpdate does not run for cycled windows', 9)
-    else
-      call <SID>DEBUG('AutoUpdate does not run for the MBE window', 9)
-    endif
-
-    call <SID>DEBUG('===========================',10)
-    call <SID>DEBUG('Terminated AutoUpdate()'    ,10)
-    call <SID>DEBUG('===========================',10)
-
-    let g:miniBufExplInAutoUpdate = 0
-    return
-
-  endif
-
-  if (a:delBufNum != -1)
-    call <SID>DEBUG('AutoUpdate will make sure that buffer '.a:delBufNum.' is not included in the buffer list.', 5)
-  endif
-  
-  " Only allow updates when the AutoUpdate flag is set
-  " this allows us to stop updates on startup.
-  if g:miniBufExplorerAutoUpdate == 1
-    " Only show MiniBufExplorer if we have a real buffer
-    if ((g:miniBufExplorerMoreThanOne == 0) || (bufnr('%') != -1 && bufname('%') != ""))
-      if <SID>HasEligibleBuffers(a:delBufNum) == 1
-        " if we don't have a window then create one
-        let l:bufnr = <SID>FindWindow('-MiniBufExplorer-', 0)
-        if (l:bufnr == -1)
-          call <SID>DEBUG('About to call StartExplorer (Create MBE)', 9)
-          call <SID>StartExplorer(0, a:delBufNum)
-        else
-        " otherwise only update the window if the contents have
-        " changed
-          let l:ListChanged = <SID>BuildBufferList(a:delBufNum, 0)
-          if (l:ListChanged)
-            call <SID>DEBUG('About to call StartExplorer (Update MBE)', 9) 
-            call <SID>StartExplorer(0, a:delBufNum)
-          endif
-        endif
-
-        " go back to the working buffer
-        if (bufname('%') == '-MiniBufExplorer-')
-          wincmd p
-        endif
-      else
-        call <SID>DEBUG('Failed in eligible check', 9)
-        call <SID>StopExplorer(0)
-      endif
-
-	  " VIM sometimes turns syntax highlighting off,
-	  " we can force it on, but this may cause weird
-	  " behavior so this is an optional hack to force
-	  " syntax back on when we enter a buffer
-	  if g:miniBufExplForceSyntaxEnable
-		call <SID>DEBUG('Enable Syntax', 9)
-		exec 'syntax enable'
-	  endif
-
-    else
-      call <SID>DEBUG('No buffers loaded...',9)
-    endif
-  else
-    call <SID>DEBUG('AutoUpdates are turned off, terminating',9)
-  endif
-
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Completed AutoUpdate()'     ,10)
-  call <SID>DEBUG('===========================',10)
-
-  let g:miniBufExplInAutoUpdate = 0
-
-endfunction
-
-" }}}
-" GetSelectedBuffer - From the MBE window, return the bufnum for buf under cursor {{{
-" 
-" If we are in our explorer window then return the buffer number
-" for the buffer under the cursor.
-"
-function! <SID>GetSelectedBuffer()
-  call <SID>DEBUG('Entering GetSelectedBuffer()',10)
-
-  " Make sure we are in our window
-  if bufname('%') != '-MiniBufExplorer-'
-    call <SID>DEBUG('GetSelectedBuffer called in invalid window',1)
-    return -1
-  endif
-
-  let l:save_reg = @"
-  let @" = ""
-  normal ""yi[
-  if @" != ""
-    let l:retv = substitute(@",'\([0-9]*\):.*', '\1', '') + 0
-    let @" = l:save_reg
-    return l:retv
-  else
-    let @" = l:save_reg
-    return -1
-  endif
-
-endfunction
-
-" }}}
-" MBESelectBuffer - From the MBE window, open buffer under the cursor {{{
-" 
-" If we are in our explorer, then we attempt to open the buffer under the
-" cursor in the previous window.
-"
-function! <SID>MBESelectBuffer()
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Entering MBESelectBuffer()' ,10)
-  call <SID>DEBUG('===========================',10)
-
-  " Make sure we are in our window
-  if bufname('%') != '-MiniBufExplorer-'
-    call <SID>DEBUG('MBESelectBuffer called in invalid window',1)
-    return 
-  endif
-
-  let l:save_rep = &report
-  let l:save_sc  = &showcmd
-  let &report    = 10000
-  set noshowcmd 
-  
-  let l:bufnr  = <SID>GetSelectedBuffer()
-  let l:resize = 0
-
-  if(l:bufnr != -1)             " If the buffer exists.
-
-    let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate
-    let g:miniBufExplorerAutoUpdate = 0
-    " Switch to the previous window
-    wincmd p
-
-    " If we are in the buffer explorer or in a nonmodifiable buffer with
-    " g:miniBufExplModSelTarget set then try another window (a few times)
-    if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0)
-      wincmd w
-      if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0)
-        wincmd w
-        if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0)
-          wincmd w
-          " The following handles the case where -MiniBufExplorer-
-          " is the only window left. We need to resize so we don't
-          " end up with a 1 or two line buffer.
-          if bufname('%') == '-MiniBufExplorer-'
-            let l:resize = 1
-          endif
-        endif
-      endif
-    endif
-
-    exec('b! '.l:bufnr)
-    if (l:resize)
-      resize
-    endif
-    let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate
-    call <SID>AutoUpdate(-1)
-
-  endif
-
-  let &report  = l:save_rep
-  let &showcmd = l:save_sc
-
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Completed MBESelectBuffer()',10)
-  call <SID>DEBUG('===========================',10)
-
-endfunction
-
-" }}}
-" MBEDeleteBuffer - From the MBE window, delete selected buffer from list {{{
-" 
-" After making sure that we are in our explorer, This will delete the buffer 
-" under the cursor. If the buffer under the cursor is being displayed in a
-" window, this routine will attempt to get different buffers into the 
-" windows that will be affected so that windows don't get removed.
-"
-function! <SID>MBEDeleteBuffer()
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Entering MBEDeleteBuffer()' ,10)
-  call <SID>DEBUG('===========================',10)
-
-  " Make sure we are in our window
-  if bufname('%') != '-MiniBufExplorer-'
-    call <SID>DEBUG('MBEDeleteBuffer called in invalid window',1)
-    return 
-  endif
-
-  let l:curLine    = line('.')
-  let l:curCol     = virtcol('.')
-  let l:selBuf     = <SID>GetSelectedBuffer()
-  let l:selBufName = bufname(l:selBuf)
-
-  if l:selBufName == 'MiniBufExplorer.DBG' && g:miniBufExplorerDebugLevel > 0
-    call <SID>DEBUG('MBEDeleteBuffer will not delete the debug window, when debugging is turned on.',1)
-    return
-  endif
-
-  let l:save_rep = &report
-  let l:save_sc  = &showcmd
-  let &report    = 10000
-  set noshowcmd 
-  
-  
-  if l:selBuf != -1 
-
-    " Don't want auto updates while we are processing a delete
-    " request.
-    let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate
-    let g:miniBufExplorerAutoUpdate = 0
-
-    " Save previous window so that if we show a buffer after
-    " deleting. The show will come up in the correct window.
-    wincmd p
-    let l:prevWin    = winnr()
-    let l:prevWinBuf = winbufnr(winnr())
-
-    call <SID>DEBUG('Previous window: '.l:prevWin.' buffer in window: '.l:prevWinBuf,5)
-    call <SID>DEBUG('Selected buffer is <'.l:selBufName.'>['.l:selBuf.']',5)
-
-    " If buffer is being displayed in a window then 
-    " move window to a different buffer before 
-    " deleting this one. 
-    let l:winNum = (bufwinnr(l:selBufName) + 0)
-    " while we have windows that contain our buffer
-    while l:winNum != -1 
-        call <SID>DEBUG('Buffer '.l:selBuf.' is being displayed in window: '.l:winNum,5)
-
-        " move to window that contains our selected buffer
-        exec l:winNum.' wincmd w'
-
-        call <SID>DEBUG('We are now in window: '.winnr().' which contains buffer: '.bufnr('%').' and should contain buffer: '.l:selBuf,5)
-
-        let l:origBuf = bufnr('%')
-        call <SID>CycleBuffer(1)
-        let l:curBuf  = bufnr('%')
-
-        call <SID>DEBUG('Window now contains buffer: '.bufnr('%').' which should not be: '.l:selBuf,5)
-
-        if l:origBuf == l:curBuf
-            " we wrapped so we are going to have to delete a buffer 
-            " that is in an open window.
-            let l:winNum = -1
-        else
-            " see if we have anymore windows with our selected buffer
-            let l:winNum = (bufwinnr(l:selBufName) + 0)
-        endif
-    endwhile
-
-    " Attempt to restore previous window
-    call <SID>DEBUG('Restoring previous window to: '.l:prevWin,5)
-    exec l:prevWin.' wincmd w'
-
-    " Try to get back to the -MiniBufExplorer- window 
-    let l:winNum = bufwinnr(bufnr('-MiniBufExplorer-'))
-    if l:winNum != -1
-        exec l:winNum.' wincmd w'
-        call <SID>DEBUG('Got to -MiniBufExplorer- window: '.winnr(),5)
-    else
-        call <SID>DEBUG('Unable to get to -MiniBufExplorer- window',1)
-    endif
-  
-    " Delete the buffer selected.
-    call <SID>DEBUG('About to delete buffer: '.l:selBuf,5)
-    exec('silent! bd '.l:selBuf)
-
-    let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate 
-    call <SID>DisplayBuffers(-1)
-    call cursor(l:curLine, l:curCol)
-
-  endif
-
-  let &report  = l:save_rep
-  let &showcmd = l:save_sc
-
-  call <SID>DEBUG('===========================',10)
-  call <SID>DEBUG('Completed MBEDeleteBuffer()',10)
-  call <SID>DEBUG('===========================',10)
-
-endfunction
-
-" }}}
-" MBEClick - Handle mouse double click {{{
-"
-function! s:MBEClick()
-  call <SID>DEBUG('Entering MBEClick()',10)
-  call <SID>MBESelectBuffer()
-endfunction
-
-"
-" MBEDoubleClick - Double click with the mouse.
-"
-function! s:MBEDoubleClick()
-  call <SID>DEBUG('Entering MBEDoubleClick()',10)
-  call <SID>MBESelectBuffer()
-endfunction
-
-" }}}
-" CycleBuffer - Cycle Through Buffers {{{
-"
-" Move to next or previous buffer in the current window. If there 
-" are no more modifiable buffers then stay on the current buffer.
-" can be called with no parameters in which case the buffers are
-" cycled forward. Otherwise a single argument is accepted, if 
-" it's 0 then the buffers are cycled backwards, otherwise they
-" are cycled forward.
-"
-function! <SID>CycleBuffer(forward)
-
-  " The following hack handles the case where we only have one
-  " window open and it is too small
-  let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate
-  if (winbufnr(2) == -1)
-    resize
-    let g:miniBufExplorerAutoUpdate = 0
-  endif
-  
-  " Change buffer (keeping track of before and after buffers)
-  let l:origBuf = bufnr('%')
-  if (a:forward == 1)
-    bn!
-  else
-    bp!
-  endif
-  let l:curBuf  = bufnr('%')
-
-  " Skip any non-modifiable buffers, but don't cycle forever
-  " This should stop us from stopping in any of the [Explorers]
-  while getbufvar(l:curBuf, '&modifiable') == 0 && l:origBuf != l:curBuf
-    if (a:forward == 1)
-        bn!
-    else
-        bp!
-    endif
-    let l:curBuf = bufnr('%')
-  endwhile
-
-  let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate
-  if (l:saveAutoUpdate == 1)
-    call <SID>AutoUpdate(-1)
-  endif
-
-endfunction
-
-" }}}
-" DEBUG - Display debug output when debugging is turned on {{{
-"
-" Thanks to Charles E. Campbell, Jr. PhD <cec@NgrOyphSon.gPsfAc.nMasa.gov> 
-" for Decho.vim which was the inspiration for this enhanced debugging 
-" capability.
-"
-function! <SID>DEBUG(msg, level)
-
-  if g:miniBufExplorerDebugLevel >= a:level
-
-    " Prevent a report of our actions from showing up.
-    let l:save_rep    = &report
-    let l:save_sc     = &showcmd
-    let &report       = 10000
-    set noshowcmd 
-
-    " Debug output to a buffer
-    if g:miniBufExplorerDebugMode == 0
-        " Save the current window number so we can come back here
-        let l:prevWin     = winnr()
-        wincmd p
-        let l:prevPrevWin = winnr()
-        wincmd p
-
-        " Get into the debug window or create it if needed
-        call <SID>FindCreateWindow('MiniBufExplorer.DBG', 1, 0, 0)
-    
-        " Make sure we really got to our window, if not we 
-        " will display a confirm dialog and turn debugging
-        " off so that we won't break things even more.
-        if bufname('%') != 'MiniBufExplorer.DBG'
-            call confirm('Error in window debugging code. Dissabling MiniBufExplorer debugging.', 'OK')
-            let g:miniBufExplorerDebugLevel = 0
-        endif
-
-        " Write Message to DBG buffer
-        let res=append("$",s:debugIndex.':'.a:level.':'.a:msg)
-        norm G
-        "set nomodified
-
-        " Return to original window
-        exec l:prevPrevWin.' wincmd w'
-        exec l:prevWin.' wincmd w'
-    " Debug output using VIM's echo facility
-    elseif g:miniBufExplorerDebugMode == 1
-      echo s:debugIndex.':'.a:level.':'.a:msg
-    " Debug output to a file -- VERY SLOW!!!
-    " should be OK on UNIX and Win32 (not the 95/98 variants)
-    elseif g:miniBufExplorerDebugMode == 2
-        if has('system') || has('fork')
-            if has('win32') && !has('win95')
-                let l:result = system("cmd /c 'echo ".s:debugIndex.':'.a:level.':'.a:msg." >> MiniBufExplorer.DBG'")
-            endif
-            if has('unix')
-                let l:result = system("echo '".s:debugIndex.':'.a:level.':'.a:msg." >> MiniBufExplorer.DBG'")
-            endif
-        else
-            call confirm('Error in file writing version of the debugging code, vim not compiled with system or fork. Dissabling MiniBufExplorer debugging.', 'OK')
-            let g:miniBufExplorerDebugLevel = 0
-        endif
-    elseif g:miniBufExplorerDebugMode == 3
-        let g:miniBufExplorerDebugOutput = g:miniBufExplorerDebugOutput."\n".s:debugIndex.':'.a:level.':'.a:msg
-    endif
-    let s:debugIndex = s:debugIndex + 1
-
-    let &report  = l:save_rep
-    let &showcmd = l:save_sc
-
-  endif
-
-endfunc " }}}
-
-" MBE Script History {{{
-"=============================================================================
-"
-"      History: 6.3.2 o For some reason there was still a call to StopExplorer
-"                       with 2 params. Very old bug. I know I fixed before, 
-"                       any way many thanks to Jason Mills for reporting this!
-"               6.3.1 o Include folds in source so that it's easier to 
-"                       navigate.
-"                     o Added g:miniBufExplForceSyntaxEnable setting for folks
-"                       that want a :syntax enable to be called when we enter 
-"                       buffers. This can resolve issues caused by a vim bug
-"                       where buffers show up without highlighting when another 
-"                       buffer has been closed, quit, wiped or deleted.
-"               6.3.0 o Added an option to allow single click (rather than
-"                       the default double click) to select buffers in the
-"                       MBE window. This feature was requested by AW Law
-"                       and was inspired by taglist.vim. Note that you will 
-"                       need the latest version of taglist.vim if you want to 
-"                       use MBE and taglist both with singleclick turned on.
-"                       Also thanks to AW Law for pointing out that you can
-"                       make an Explorer not be listed in a standard :ls.
-"                     o Added the ability to have your tabs show up in a
-"                       vertical window rather than the standard horizontal
-"                       one. Just let g:miniBufExplVSplit = <width> in your
-"                       .vimrc and your will get this functionality.
-"                     o If you use the vertical explorer and you want it to
-"                       autosize then let g:miniBufExplMaxSize = <max width>
-"                       in your .vimrc. You may use the MinSize letting in
-"                       addition to the MaxLetting if you don't want a super
-"                       thin window.
-"                     o g:miniBufExplMaxHeight was renamed g:miniBufExplMaxSize
-"                       g:miniBufExplMinHeight was renamed g:miniBufExplMinSize
-"                       the old settings are backwards compatible if you don't
-"                       use the new settings, but they are depreciated.
-"               6.2.8 o Add an option to stop MBE from targeting non-modifiable
-"                       buffers when switching buffers. Thanks to AW Law for
-"                       the inspiration for this. This may not work if a user
-"                       has lots of explorer/help windows open.
-"               6.2.7 o Very minor bug fix for people who want to set
-"                       loaded_minibufexplorer in their .vimrc in order to
-"                       stop MBE from loading. 99.99% of users do not need
-"                       this update.
-"               6.2.6 o Moved history to end of source file
-"                     o Updated highlighting documentation
-"                     o Created global commands MBEbn and MBEbp that can be 
-"                       used in mappings if folks want to cycle buffers while 
-"                       skipping non-eligible buffers.
-"               6.2.5 o Added <Leader>mbt key mapping which will toggle
-"                       the MBE window. I map this to F3 in my .vimrc
-"                       with "map <F3> :TMiniBufExplorer<CR>" which 
-"                       means I can easily close the MBE window when I'm 
-"                       not using it and get it back when I want it.
-"                     o Changed default debug mode to 3 (write to global
-"                       g:miniBufExplorerDebugOutput)
-"                     o Made a pass through the documentation to clarify 
-"                       serveral issues and provide more complete docs
-"                       for mappings and commands.
-"               6.2.4 o Because of the autocommand switch (see 6.2.0) it 
-"                       was possible to remove the restriction on the
-"                       :set hidden option. It is now possible to use
-"                       this option with MBE.
-"               6.2.3 o Added miniBufExplTabWrap option. It is turned 
-"                       off by default. When turned on spaces are added
-"                       between tabs and gq} is issued to perform line
-"                       formatting. This won't work very well if filenames
-"                       contain spaces. It would be pretty easy to write
-"                       my own formatter, but I'm too lazy, so if someone
-"                       really needs that feature I'll add it :)
-"               6.2.2 o Changed the way the g:miniBufExplorerMoreThanOne
-"                       global is handled. You can set this to the number
-"                       of eligible buffers you want to be loaded before
-"                       the MBE window is loaded. Setting it to 0 causes
-"                       the MBE window to be opened even if there are no
-"                       buffers. Setting it to 4 causes the window to stay
-"                       closed until the 4th eligible buffer is loaded.
-"                     o Added a MinHeight option. This is nice if you want
-"                       the MBE window to always take the same amount of
-"                       space. For example set MaxSize and MinSize to 2
-"                       and set MoreThanOne to 0 and you will always have
-"                       a 2 row (plus the ruler :) MBE window.
-"                       NOTE: in 6.3.0 we started using MinSize instead of
-"                       Minheight. This will still work if MinSize is not
-"                       specified, but it is depreciated. Use MinSize instead.
-"                     o I now setlocal foldcomun=0 and nonumber in the MBE 
-"                       window. This is for those of you that like to have
-"                       these options turned on locally. I'm assuming noone
-"                       outthere wants foldcolumns and line numbers in the
-"                       MBE window? :)
-"                     o Fixed a bug where an empty MBE window was taking half
-"                       of the screen (partly why the MinHeight option was 
-"                       added.)
-"               6.2.1 o If MBE is the only window (because of :bd for example)
-"                       and there are still eligible buffers then one of them
-"                       will be displayed.
-"                     o The <Leader>mbe mapping now highlights the buffer from
-"                       the current window.
-"                     o The delete ('d') binding in the MBE window now restors
-"                       the cursor position, which can help if you want to 
-"                       delete several buffers in a row that are not at the
-"                       beginning of the buffer list.
-"                     o Added a new key binding ('p') in the MBE window to 
-"                       switch to the previous window (last edit window)
-"               6.2.0 o Major overhaul of autocommand and list updating code,
-"                       we now have much better handling of :bd (which is the 
-"                       most requested feature.) As well as resolving other
-"                       issues where the buffer list would not be updated
-"                       automatically. The old version tried to trap specific
-"                       events, this one just updates frequently, but it keeps
-"                       track and only changes the screen if there has been
-"                       a change.
-"                     o Added g:miniBufExplMaxHeight variable so you can keep
-"                       the -MiniBufExplorer- window small when you have lots
-"                       of buffers (or buffers with long names :)
-"                       NOTE: in 6.3.0 we started using MaxSize instead of
-"                       MaxHeight. This will still work if MaxSize is not
-"                       specified, but it is depreciated. Use MaxSize instead.
-"                     o Improvement to internal syntax highlighting code
-"                       I renamed the syntax group names. Anyone who has 
-"                       figured out how to use them already shouldn't have
-"                       any trouble with the new Nameing :)
-"                     o Added debug mode 3 which writes to a global variable
-"                       this is fast and doesn't mess with the buffer/window
-"                       lists.
-"               6.1.0 o <Leader>mbc was failing because I was calling one of
-"                       my own functions with the wrong number of args. :(
-"                       Thanks to Gerry Patterson for finding this!
-"                       This code is very stable (although it has some
-"                       idiocyncracies.)
-"               6.0.9 o Double clicking tabs was overwriting the cliboard 
-"                       register on MS Windows.  Thanks to Shoeb Bhinderwala 
-"                       for reporting this issue.
-"               6.0.8 o Apparently some VIM builds are having a hard time with
-"                       line continuation in scripts so the few that were here
-"                       have been removed.
-"                     o Generalized FindExplorer and FindCreateExplorer so
-"                       that they can be used for the debug window. Renaming
-"                       to FindWindow and FindCreateWindow.
-"                     o Updated debugging code so that debug output is put into
-"                       a buffer which can then be written to disk or emailed
-"                       to me when someone is having a major issue. Can also
-"                       write directly to a file (VERY SLOWLY) on UNIX or Win32
-"                       (not 95 or 98 at the moment) or use VIM's echo function 
-"                       to display the output to the screen.
-"                     o Several people have had issues when the hidden option 
-"                       is turned on. So I have put in several checks to make
-"                       sure folks know this if they try to use MBE with this
-"                       option set.
-"               6.0.7 o Handling BufDelete autocmd so that the UI updates 
-"                       properly when using :bd (rather than going through 
-"                       the MBE UI.)
-"                     o The AutoUpdate code will now close the MBE window when 
-"                       there is a single eligible buffer available.
-"                       This has the usefull side effect of stopping the MBE
-"                       window from blocking the VIM session open when you close 
-"                       the last buffer.
-"                     o Added functions, commands and maps to close & update
-"                       the MBE window (<leader>mbc and <leader>mbu.)
-"                     o Made MBE open/close state be sticky if set through
-"                       StartExplorer(1) or StopExplorer(1), which are 
-"                       called from the standard mappings. So if you close
-"                       the mbe window with \mbc it won't be automatically 
-"                       opened again unless you do a \mbe (or restart VIM).
-"                     o Removed spaces between "tabs" (even more mini :)
-"                     o Simplified MBE tab processing 
-"               6.0.6 o Fixed register overwrite bug found by Sébastien Pierre
-"               6.0.5 o Fixed an issue with window sizing when we run out of 
-"                       buffers.  
-"                     o Fixed some weird commenting bugs.  
-"                     o Added more optional fancy window/buffer navigation:
-"                     o You can turn on the capability to use control and the 
-"                       arrow keys to move between windows.
-"                     o You can turn on the ability to use <C-TAB> and 
-"                       <C-S-TAB> to open the next and previous (respectively) 
-"                       buffer in the current window.
-"                     o You can turn on the ability to use <C-TAB> and 
-"                       <C-S-TAB> to switch windows (forward and backwards 
-"                       respectively.)
-"               6.0.4 o Added optional fancy window navigation: 
-"                     o Holding down control and pressing a vim direction 
-"                       [hjkl] will switch windows in the indicated direction.
-"               6.0.3 o Changed buffer name to -MiniBufExplorer- to resolve
-"                       Issue in filename pattern matching on Windows.
-"               6.0.2 o 2 Changes requested by Suresh Govindachar:
-"                     o Added SplitToEdge option and set it on by default
-"                     o Added tab and shift-tab mappings in [MBE] window
-"               6.0.1 o Added MoreThanOne option and set it on by default
-"                       MiniBufExplorer will not automatically open until
-"                       more than one eligible buffers are opened. This
-"                       reduces cluter when you are only working on a
-"                       single file. 
-"                       NOTE: See change log for 6.2.2 for more details about 
-"                             this feature
-"               6.0.0 o Initial Release on November 20, 2001
-"
-"=============================================================================
-" }}}
-" vim:ft=vim:fdm=marker:ff=unix:nowrap:tabstop=4:shiftwidth=4:softtabstop=4:smarttab:shiftround:expandtab