Commits

Dave Vedder committed aa52f78

It helps if you hg add the things you meant to add

  • Participants
  • Parent commits c10ff39

Comments (0)

Files changed (6)

.vim/bundle/minibufexpl.vim/doc/minibufexpl.txt

+*minibufexpl.txt*    Mini Buffer Explorer
+
+==============================================================================
+CONTENTS                                                *MiniBufExpl-contents*
+                                                        *MiniBufExpl*
+
+    1. Install................................|MiniBufExplInstall|
+    2. Key Mappings...........................|MiniBufExplKeymap|
+    3. Commands...............................|MiniBufExplCommands|
+    4. Options................................|MiniBufExplOptions|
+       4.1 Splits.............................|MiniBufExplSplits|
+       4.2 Horizontal Size....................|MiniBufExplWindowSize|
+       4.3 Automatic Opening..................|MiniBufExplAutoOpen|
+       4.4 Keyboard Control...................|MiniBufExplKeyboard|
+       4.5 Misc...............................|MiniBufExplMisc|
+       4.6 Debugging..........................|MiniBufExplDebugging|
+    5. Highlighting...........................|MiniBufExplHighlighting|
+    6. Known Issues...........................|MiniBufExplKnownIssues|
+    7. About..................................|MiniBufExplAbout|
+    8. Changelog..............................|MiniBufExplChangelog|
+
+==============================================================================
+1. Install                                                *MiniBufExplInstall*
+
+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'.
+
+==============================================================================
+2. Key Mappings                                          *MiniBufExplMappings*
+
+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.)
+
+==============================================================================
+3. Commands                                              *MiniBufExplCommands*
+
+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                                           *:MiniBufExplorer*
+    Open and/or goto Explorer
+
+:CMiniBufExplorer                                         *:CMiniBufExplorer*
+    Close the Explorer if it's open
+
+:UMiniBufExplorer                                         *:UMiniBufExplorer*
+    Update Explorer without navigating
+
+:TMiniBufExplorer                                         *:TMiniBufExplorer*
+    Toggle the Explorer window open and closed.
+
+==============================================================================
+4. Options                                                *MiniBufExplOptions*
+
+------------------------------------------------------------------------------
+4.1 Splits                                                 *MiniBufExplSplits*
+
+                                                   *'g:miniBufExplSplitBelow'*
+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.
+
+                                                  *'g:miniBufExplSplitToEdge'*
+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
+
+                                                       *'g:miniBufExplVSplit'*
+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
+
+
+------------------------------------------------------------------------------
+4.2 Window Size                                        *MiniBufExplWindowSize*
+
+                                                      *'g:miniBufExplMaxSize'*
+------------------------------------------------------------------------------
+Horizontal
+
+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.
+
+------------------------------------------------------------------------------
+Vertical
+
+(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.
+
+NOTE: This was *'g:miniBufExplMaxHeight'* before 6.3.0; the old
+setting is backwards compatible if you don't use MaxSize.
+
+                                                      *'g:miniBufExplMinSize'*
+------------------------------------------------------------------------------
+Horizontal
+
+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>
+
+------------------------------------------------------------------------------
+Vertical
+
+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 specify MaxSize.
+
+NOTE: This was *'g:miniBufExplMinHeight'* before 6.3.0; the old
+setting is backwards compatible if you don't use MinSize.
+
+------------------------------------------------------------------------------
+4.3 Automatic Opening                                    *MiniBufExplAutoOpen*
+
+                                              *'g:miniBufExplorerMoreThanOne'*
+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.
+
+------------------------------------------------------------------------------
+4.4 Keyboard Control                                     *MiniBufExplKeyboard*
+
+                                              *'g:miniBufExplMapWindowNavVim'*
+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
+
+                                           *'g:miniBufExplMapWindowNavArrows'*
+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
+
+                                            *'g:miniBufExplMapCTabSwitchBufs'*
+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
+
+                                         *'g:miniBufExplMapCTabSwitchWindows'*
+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.
+
+------------------------------------------------------------------------------
+4.5 Misc                                                     *MiniBufExplMisc*
+
+                                               *'g:miniBufExplUseSingleClick'*
+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.
+
+                                                 *'g:miniBufExplModSelTarget'*
+If you use other explorers like TagList you can (As of 6.2.8) put:
+
+  let g:miniBufExplModSelTarget = 1
+
+                                                *'g:miniBufExplCloseOnSelect'*
+If you would like MBE to close when you select a buffer, put:
+
+  let g:miniBufExplCloseOnSelect = 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.
+
+                                                *'g:miniBufExplCheckDupeBufs'*
+If you use Vim with many open buffers simultaneously (>15) and you notice that
+switching buffers takes longer than usual, it is because of MBE's duplicate
+buffer name checking feature. To turn it off, you can add the following to
+your .vimrc:
+
+    let g:miniBufExplCheckDupeBufs = 0
+
+We are working on a fix so that we can all enjoy the feature if you want!
+
+                                               *'g:miniBufExplShowBufNumbers'*
+If you would like to omit the buffer number from MBE's buffer display, put the
+following in your .vimrc:
+
+    let g:miniBufExplShowBufNumbers = 0
+
+                                            *'g:miniBufExplForceSyntaxEnable'*
+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
+
+------------------------------------------------------------------------------
+4.6 Debugging                                           *MiniBufExplDebugging*
+
+                                               *'g:miniBufExplorerDebugLevel'*
+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
+
+                                               *'g:miniBufExplorerDebugMode'*
+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.
+
+==============================================================================
+5. Highlighting                                      *MiniBufExplHighlighting*
+
+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
+  MBEVisibleNormalActive  - buffers that have NOT CHANGED and are
+                            VISIBLE and is the active buffer
+  MBEVisibleChanged       - for buffers that have CHANGED and are 
+                            VISIBLE
+  MBEVisibleChangedActive - buffers that have CHANGED and are VISIBLE
+                            and is the active buffer
+
+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.
+
+==============================================================================
+6. Known Issues                                       *MiniBufExplKnownIssues*
+
+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.
+
+==============================================================================
+6. Todo                                                      *MiniBufExplTodo*
+
+- Add context to tab titles so that multiple tabs show the
+  root folder names. Useful for working with MVC frameworks
+  where multiple files have the same name but are in different
+  locations.
+- 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.
+
+
+==============================================================================
+7. About                                                    *MiniBufExplAbout*
+
+    Copyright: Copyright (C) 2002 & 2003 Bindu Wavell 
+               Copyright (C) 2010 Oliver Uvman
+               Copyright (C) 2010 Danielle Church
+               Copyright (C) 2010 Stephan Sokolow
+               Copyright (C) 2010 & 2011 Federico Holgado
+               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,
+               minibufexpl.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.
+
+  Description: Mini Buffer Explorer Vim Plugin
+   Maintainer: Federico Holgado <fholgado@gmail.com>
+ Last Updated: Federico Holgado <fholgado@gmail.com>
+          URL: http://vim.sourceforge.net/scripts/script.php?script_id=159
+   GitHub URL: https://github.com/fholgado/minibufexpl.vim
+  Last Change: Sunday, February 26, 2012
+      Version: 6.4.4
+               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
+               [NO LONGER AVAILABLE]
+
+
+==============================================================================
+8. Changelog                                            *MiniBufExplChangelog*
+
+
+6.4.4
+    - Set up proper documentation. Thanks to Claytron :)
+    - Fix colorcolum feature detection. Thanks to sandaya :)
+    - MBE now ignores buffers with empty name. Thanks to Folke
+      for the pull :)
+    - Fix incompatibility with tildes in filenames. Thanks to
+      future for the pull :)
+
+6.4.3
+    - Fix MBE losing highlighting when a buffer is closed.
+      Thanks to Markus Koller for the pull request!
+    - Disable spellcheck on MBE buffer.
+    - Don't use colorcolumn setting on MBE buffer. Thanks to 
+      grassofhust for the pull requests for this and the
+      previous issue!
+
+6.4.2
+    - Moving current build out of beta. Getting ready for a
+      re-write!
+
+6.4.1b5
+    - Allow users to turn off Buffer number display on exporer
+      tabs courtesy of jmatraszek.
+    - Allow users to turn off duplicate buffer name checking
+      to speed up MBE buffer switching. We are working on
+      optimizing this feature so that it is usable even with
+      many buffers open.
+    - Set Shellslash fix for Windows users so that duplicate
+      buffer name checking works properly.
+    - Re-enable synatx highlighitng after cycling the buffer
+      courtesy of Sontek.
+    - Fix erratic :q behavior when MBE is the last buffer
+      courtesy of Moopet.
+
+6.4.1b4
+    - Finally figured out how to turn off parentheses
+      matching for the MBE buffer, which solves a couple of
+      annoying graphical glitches. Thanks to Thomas Egreger
+      for the patch!
+    - Added a temporary fix for the issues with MBE and
+      FuzzyFinder thanks to toupeira.
+
+6.4.1b2
+    - Fixed Dupe File Name checking function to prevent some
+      errors and actually work properly!
+
+6.4.1b1
+    - Added handler function to only update MBE on changes.
+
+6.4.0
+    - Added Emacs-like 'uniquify' feature where MBE will
+      show a parent directory when there are 2 buffers with
+      the same filename. Example: There are 2 buffers, one
+      is /ProjectA/Application/CSS/style.css and
+      /ProjectB/Applications/CSS/style.css. Originally, MBE
+      would just display 'style.css' for both buffers. Now,
+      MBE crawls up the directory tree to find the first
+      differentiating parent directory for both buffers, so
+      MBE will show 'ProjectA/style.css' and
+      'ProjectB/style.css' for each buffer name.
+    - Now setting winfixheight and winfixwidth for the MBE
+      buffer so that it does not get resized automatically
+      by window resizing commands such as 'CTRL W='.
+
+6.3.7
+    - MBE now uses it's own status line format to reduce the
+      amount of visual clutter. This can be customized.
+
+6.3.6
+    - MBE now updates current buffer's status on buffer save
+      and when a buffer is modified. Patched by Federico
+      Holgado (fholgado at gmail dot com).
+
+6.3.5
+    - Added highlighting for currently active buffer.
+      Patched by Federico Holgado (fholgado at gmail dot
+      com).
+
+6.3.4
+    - Now returns to augroup NONE after setting augroup
+      commands. Big thanks to Maciej Laszcz for the bug
+      report!
+
+6.3.3
+    - Added additional keybindings. In addition to <TAB> and
+      <S-TAB>, l and h can now be used. In addition to <CR>,
+      and e can now be used.
+    - You can open the selected buffer in a new split window 
+      by pressing s while in the minibufexplorer window.
+    - You can open the selected buffer in a new vertically
+      split window while pressing v while in the
+      minibufexplorer window. Patched by Oliver Uvman.
+
+6.3.2
+    - 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
+    - Include folds in source so that it's easier to 
+      navigate.
+    - 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
+    - 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.
+    - 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.
+    - 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.
+    - 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
+    - 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
+    - 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
+    - Moved history to end of source file
+    - Updated highlighting documentation
+    - 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
+    - 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.
+    - Changed default debug mode to 3 (write to global
+      g:miniBufExplorerDebugOutput)
+    - Made a pass through the documentation to clarify 
+      serveral issues and provide more complete docs
+      for mappings and commands.
+
+6.2.4
+    - 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
+    - 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
+    - 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.
+    - 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.
+    - I now setlocal foldcolumn=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? :)
+    - Fixed a bug where an empty MBE window was taking half
+      of the screen (partly why the MinHeight option was 
+      added.)
+
+6.2.1
+    - If MBE is the only window (because of :bd for example)
+      and there are still eligible buffers then one of them
+      will be displayed.
+    - The <Leader>mbe mapping now highlights the buffer from
+      the current window.
+    - 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.
+    - Added a new key binding ('p') in the MBE window to 
+      switch to the previous window (last edit window)
+
+6.2.0
+    - 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.
+    - 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.
+    - 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 :)
+    - 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
+    - <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
+    - Double clicking tabs was overwriting the cliboard 
+      register on MS Windows.  Thanks to Shoeb Bhinderwala 
+      for reporting this issue.
+
+6.0.8
+    - Apparently some VIM builds are having a hard time with
+      line continuation in scripts so the few that were here
+      have been removed.
+    - Generalized FindExplorer and FindCreateExplorer so
+      that they can be used for the debug window. Renaming
+      to FindWindow and FindCreateWindow.
+    - 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.
+    - 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
+    - Handling BufDelete autocmd so that the UI updates 
+      properly when using :bd (rather than going through 
+      the MBE UI.)
+    - 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.
+    - Added functions, commands and maps to close & update
+      the MBE window (<leader>mbc and <leader>mbu.)
+    - 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).
+    - Removed spaces between "tabs" (even more mini :)
+    - Simplified MBE tab processing 
+
+6.0.6
+    - Fixed register overwrite bug found by S?bastien Pierre
+
+6.0.5
+    - Fixed an issue with window sizing when we run out of 
+      buffers.  
+    - Fixed some weird commenting bugs.  
+    - Added more optional fancy window/buffer navigation:
+    - You can turn on the capability to use control and the 
+      arrow keys to move between windows.
+    - 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.
+    - You can turn on the ability to use <C-TAB> and 
+      <C-S-TAB> to switch windows (forward and backwards 
+      respectively.)
+
+6.0.4
+    - Added optional fancy window navigation: 
+    - Holding down control and pressing a vim direction 
+      [hjkl] will switch windows in the indicated direction.
+
+6.0.3
+    - Changed buffer name to -MiniBufExplorer- to resolve
+      Issue in filename pattern matching on Windows.
+
+6.0.2
+    - 2 Changes requested by Suresh Govindachar:
+    - Added SplitToEdge option and set it on by default
+    - Added tab and shift-tab mappings in [MBE] window
+
+6.0.1
+    - 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
+    - Initial Release on November 20, 2001

.vim/bundle/minibufexpl.vim/doc/tags

+'g:miniBufExplCheckDupeBufs'	minibufexpl.txt	/*'g:miniBufExplCheckDupeBufs'*
+'g:miniBufExplCloseOnSelect'	minibufexpl.txt	/*'g:miniBufExplCloseOnSelect'*
+'g:miniBufExplForceSyntaxEnable'	minibufexpl.txt	/*'g:miniBufExplForceSyntaxEnable'*
+'g:miniBufExplMapCTabSwitchBufs'	minibufexpl.txt	/*'g:miniBufExplMapCTabSwitchBufs'*
+'g:miniBufExplMapCTabSwitchWindows'	minibufexpl.txt	/*'g:miniBufExplMapCTabSwitchWindows'*
+'g:miniBufExplMapWindowNavArrows'	minibufexpl.txt	/*'g:miniBufExplMapWindowNavArrows'*
+'g:miniBufExplMapWindowNavVim'	minibufexpl.txt	/*'g:miniBufExplMapWindowNavVim'*
+'g:miniBufExplMaxHeight'	minibufexpl.txt	/*'g:miniBufExplMaxHeight'*
+'g:miniBufExplMaxSize'	minibufexpl.txt	/*'g:miniBufExplMaxSize'*
+'g:miniBufExplMinHeight'	minibufexpl.txt	/*'g:miniBufExplMinHeight'*
+'g:miniBufExplMinSize'	minibufexpl.txt	/*'g:miniBufExplMinSize'*
+'g:miniBufExplModSelTarget'	minibufexpl.txt	/*'g:miniBufExplModSelTarget'*
+'g:miniBufExplShowBufNumbers'	minibufexpl.txt	/*'g:miniBufExplShowBufNumbers'*
+'g:miniBufExplSplitBelow'	minibufexpl.txt	/*'g:miniBufExplSplitBelow'*
+'g:miniBufExplSplitToEdge'	minibufexpl.txt	/*'g:miniBufExplSplitToEdge'*
+'g:miniBufExplUseSingleClick'	minibufexpl.txt	/*'g:miniBufExplUseSingleClick'*
+'g:miniBufExplVSplit'	minibufexpl.txt	/*'g:miniBufExplVSplit'*
+'g:miniBufExplorerDebugLevel'	minibufexpl.txt	/*'g:miniBufExplorerDebugLevel'*
+'g:miniBufExplorerDebugMode'	minibufexpl.txt	/*'g:miniBufExplorerDebugMode'*
+'g:miniBufExplorerMoreThanOne'	minibufexpl.txt	/*'g:miniBufExplorerMoreThanOne'*
+:CMiniBufExplorer	minibufexpl.txt	/*:CMiniBufExplorer*
+:MiniBufExplorer	minibufexpl.txt	/*:MiniBufExplorer*
+:TMiniBufExplorer	minibufexpl.txt	/*:TMiniBufExplorer*
+:UMiniBufExplorer	minibufexpl.txt	/*:UMiniBufExplorer*
+MiniBufExpl	minibufexpl.txt	/*MiniBufExpl*
+MiniBufExpl-contents	minibufexpl.txt	/*MiniBufExpl-contents*
+MiniBufExplAbout	minibufexpl.txt	/*MiniBufExplAbout*
+MiniBufExplAutoOpen	minibufexpl.txt	/*MiniBufExplAutoOpen*
+MiniBufExplChangelog	minibufexpl.txt	/*MiniBufExplChangelog*
+MiniBufExplCommands	minibufexpl.txt	/*MiniBufExplCommands*
+MiniBufExplDebugging	minibufexpl.txt	/*MiniBufExplDebugging*
+MiniBufExplHighlighting	minibufexpl.txt	/*MiniBufExplHighlighting*
+MiniBufExplInstall	minibufexpl.txt	/*MiniBufExplInstall*
+MiniBufExplKeyboard	minibufexpl.txt	/*MiniBufExplKeyboard*
+MiniBufExplKnownIssues	minibufexpl.txt	/*MiniBufExplKnownIssues*
+MiniBufExplMappings	minibufexpl.txt	/*MiniBufExplMappings*
+MiniBufExplMisc	minibufexpl.txt	/*MiniBufExplMisc*
+MiniBufExplOptions	minibufexpl.txt	/*MiniBufExplOptions*
+MiniBufExplSplits	minibufexpl.txt	/*MiniBufExplSplits*
+MiniBufExplTodo	minibufexpl.txt	/*MiniBufExplTodo*
+MiniBufExplWindowSize	minibufexpl.txt	/*MiniBufExplWindowSize*
+minibufexpl.txt	minibufexpl.txt	/*minibufexpl.txt*

.vim/bundle/minibufexpl.vim/plugin/minibufexpl.vim

+" 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 
+"                Copyright (C) 2010 Oliver Uvman
+"                Copyright (C) 2010 Danielle Church
+"                Copyright (C) 2010 Stephan Sokolow
+"                Copyright (C) 2010 & 2011 Federico Holgado
+"                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,
+"                minibufexpl.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
+" Documentation: See minibufexpl.txt
+"
+"=============================================================================
+" }}}
+"
+" 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
+if !hasmapto('<Plug>MBEMarkCurrent')
+  map <unique> <Leader>mq <Plug>MBEMarkCurrent
+endif
+" }}}
+" MBE <Script> internal map {{{
+" 
+noremap <unique> <script> <Plug>MiniBufExplorer  :call <SID>StartExplorer(1, -1, bufnr("%"))<CR>:<BS>
+noremap <unique> <script> <Plug>CMiniBufExplorer :call <SID>StopExplorer(1)<CR>:<BS>
+noremap <unique> <script> <Plug>UMiniBufExplorer :call <SID>AutoUpdate(-1,bufnr("%"))<CR>:<BS>
+noremap <unique> <script> <Plug>TMiniBufExplorer :call <SID>ToggleExplorer()<CR>:<BS>
+noremap <unique> <script> <Plug>MBEMarkCurrent :call <SID>MarkCurrentBuffer(bufname("%"),1)<CR>:<BS>
+
+" }}}
+" MBE commands {{{
+" 
+if !exists(':MiniBufExplorer')
+  command! MiniBufExplorer  call <SID>StartExplorer(1, -1, bufnr("%"))
+endif
+if !exists(':CMiniBufExplorer')
+  command! CMiniBufExplorer  call <SID>StopExplorer(1)
+endif
+if !exists(':UMiniBufExplorer')
+  command! UMiniBufExplorer  call <SID>AutoUpdate(-1,bufnr("%"))
+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 = 1
+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
+
+" }}}
+" ShowBufNumber? {{{
+" By default buffers' numbers are shown in MiniBufExplorer. You can turn it off
+" by setting this option to 0.
+"
+if !exists('g:miniBufExplShowBufNumbers')
+  let g:miniBufExplShowBufNumbers = 1
+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 " }}}
+" Close on Select? {{{
+" Flag that can be set to 1 in a users .vimrc to hide
+" the explorer when a user selects a buffer.
+"
+if !exists('g:miniBufExplCloseOnSelect')
+  let g:miniBufExplCloseOnSelect = 0
+endif " }}}
+" Check for duplicate buffer names? {{{
+" Flag that can be set to 0 in a users .vimrc to turn off
+" the explorer's feature that differentiates similar buffer names by
+" displaying the parent directory names. This feature should be turned off
+" if you work with a large number of buffers (>15) simultaneously.
+"
+if !exists('g:miniBufExplCheckDupeBufs')
+  let g:miniBufExplCheckDupeBufs = 1
+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
+
+if !exists('g:miniBufExplSortBy')
+  let g:miniBufExplSortBy = "number"
+endif
+
+if !exists('g:statusLineText')
+  let g:statusLineText = "-MiniBufExplorer-"
+endif
+
+" Variable used to pass maxTabWidth info between functions
+let s:maxTabWidth = 0 
+
+" Variable used to count debug output lines
+let s:debugIndex = 0 
+
+" Build initial MRUList. This makes sure all the files specified on the
+" command line are picked up correctly.
+let s:MRUList = range(1, bufnr('$'))
+  
+" }}}
+" Setup an autocommand group and some autocommands {{{
+" that keep our explorer updated automatically.
+"
+
+"set update time for the CursorHold function so that it is called 100ms after
+"a key is pressed
+setlocal updatetime=300
+
+augroup MiniBufExplorer
+autocmd MiniBufExplorer BufDelete      * call <SID>DEBUG('-=> BufDelete AutoCmd', 10) |call <SID>AutoUpdate(expand('<abuf>'),bufnr("%"))
+autocmd MiniBufExplorer BufDelete      * call <SID>DEBUG('-=> BufDelete ModTrackingListClean AutoCmd for buffer '.bufnr("%"), 10) |call <SID>CleanModTrackingList(bufnr("%"))
+autocmd MiniBufExplorer BufEnter       * call <SID>DEBUG('-=> BufEnter AutoCmd', 10) |call <SID>AutoUpdate(-1,bufnr("%"))
+autocmd MiniBufExplorer BufEnter       * call <SID>DEBUG('-=> BufEnter Checking for Last window', 10) |call <SID>CheckForLastWindow()
+autocmd MiniBufExplorer BufWritePost   * call <SID>DEBUG('-=> BufWritePost AutoCmd', 10) |call <SID>AutoUpdate(-1,bufnr("%"))
+autocmd MiniBufExplorer CursorHold     * call <SID>DEBUG('-=> CursroHold AutoCmd', 10) |call <SID>AutoUpdateCheck(bufnr("%"))
+autocmd MiniBufExplorer CursorHoldI    * call <SID>DEBUG('-=> CursorHoldI AutoCmd', 10) |call <SID>AutoUpdateCheck(bufnr("%"))
+autocmd MiniBufExplorer VimEnter       * call <SID>DEBUG('-=> VimEnter AutoCmd', 10) |let g:miniBufExplorerAutoUpdate = 1 |call <SID>AutoUpdate(-1,bufnr("%"))
+augroup NONE
+" }}}
+
+" Functions
+" EscapeTilde - escapes "~" {{{
+function! <SID>EscapeTilde(str)
+   return substitute(a:str, "\\\~","\\\\\~","g")
+endfunction
+" }}}
+"
+" StartExplorer - Sets up our explorer and causes it to be displayed {{{
+"
+function! <SID>StartExplorer(sticky,delBufNum,currBufName)
+  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
+  "don't highlight matching parentheses, etc.
+  setlocal matchpairs=
+  "Depending on what type of split, make sure the MBE buffer is not
+  "automatically rezised by CTRL + W =, etc...
+  setlocal winfixheight
+  setlocal winfixwidth
+  
+  " Set shellslash for Windows/DOS Vim for dupeBufName checking to Work
+  if (has("win32") || has("win64"))
+      set shellslash
+  endif
+
+  " Set the text of the statusline for the MBE buffer. See help:stl for
+  " many options
+  setlocal stl=%!g:statusLineText
+
+  " No spell check
+  setlocal nospell
+  " Restore colorcolumn for VIM >= 7.3
+  if exists("+colorcolumn")
+      setlocal colorcolumn&
+  end
+ 
+  if has("syntax")
+    syn clear
+    syn match MBENormal                   '\[[^\]]*\]'
+    syn match MBEChanged                  '\[[^\]]*\]+'
+    syn match MBEVisibleNormal            '\[[^\]]*\]\*+\='
+    syn match MBEVisibleChanged           '\[[^\]]*\]\*+'
+    syn match MBEVisibleActive            '\[[^\]]*\]\*!'
+    syn match MBEVisibleChangedActive     '\[[^\]]*\]\*+!'
+
+    "MiniBufExpl Color Examples
+    " hi MBEVisibleActive guifg=#A6DB29 guibg=fg
+    " hi MBEVisibleChangedActive guifg=#F1266F guibg=fg
+    " hi MBEVisibleChanged guifg=#F1266F guibg=fg
+    " hi MBEVisibleNormal guifg=#5DC2D6 guibg=fg
+    " hi MBEChanged guifg=#CD5907 guibg=fg
+    " hi MBENormal guifg=#808080 guibg=fg
+    
+    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 MBEVisibleActive         Boolean
+      hi def link MBEVisibleChanged        Special
+      hi def link MBEVisibleChangedActive  Error
+    endif
+  endif
+
+  " If you press return, o or e in the -MiniBufExplorer- then try
+  " to open the selected buffer in the previous window.
+  nnoremap <buffer> <CR> :call <SID>MBESelectBuffer(0)<CR>:<BS>
+  nnoremap <buffer> o :call <SID>MBESelectBuffer(0)<CR>:<BS>
+  nnoremap <buffer> e :call <SID>MBESelectBuffer(0)<CR>:<BS>
+  " If you press s in the -MiniBufExplorer- then try
+  " to open the selected buffer in a split in the previous window.
+  nnoremap <buffer> s :call <SID>MBESelectBuffer(1)<CR>:<BS>
+  " If you press j in the -MiniBufExplorer- then try
+  " to open the selected buffer in a vertical split in the previous window.
+  nnoremap <buffer> v :call <SID>MBESelectBuffer(2)<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(bufname("#"))<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>
+  nnoremap <buffer> l   :call search('\[[0-9]*:[^\]]*\]')<CR>:<BS>
+  nnoremap <buffer> h :call search('\[[0-9]*:[^\]]*\]','b')<CR>:<BS>
+ 
+  call <SID>DisplayBuffers(a:delBufNum,a:currBufName)
+
+  if (l:curBuf != -1)
+    let l:bname = <SID>EscapeTilde(expand('#'.l:curBuf.':t'))
+    call search('\['.l:curBuf.':'.l:bname.'\]')
+  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
+
+    " Work around a redraw bug in gVim (Confirmed present in 7.3.50)
+    if has('gui_gtk') && has('gui_running')
+        redraw!
+    endif
+  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, bufnr("%"))
+    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,currBufName)
+  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,a:currBufName)
+  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,currBufName)
+  call <SID>DEBUG('Entering ShowBuffers()',10)
+
+  let l:ListChanged = <SID>BuildBufferList(a:delBufNum, 1, a:currBufName)
+
+  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
+
+" }}}
+" CheckRootDirForDupes - Checks if the buffer parent dirs are the same {{{
+" 
+" Compares 2 buffers with the same filename and returns the directory of
+" buffer 1's path at the point where it is different from buffer 2's path
+"
+function! CheckRootDirForDupes(level,path1,path2)
+    call <SID>DEBUG('Entering Dupe Dir Checking Function for at level '.a:level.' for '.join(a:path1).' vs '.join(a:path2),10)
+    if(len(a:path1) >= abs(a:level))
+        call <SID>DEBUG('Path level1 is '.get(a:path1,a:level),10)
+        call <SID>DEBUG('Path level2 is '.get(a:path2,a:level),10)
+        if(get(a:path1,a:level) == get(a:path2,a:level))
+            let s:bufPathPosition = a:level - 1
+            call CheckRootDirForDupes(s:bufPathPosition,a:path1,a:path2)
+            call <SID>DEBUG('Match in directory name at level '.a:level,10)
+            call <SID>DEBUG('Calling CheckRootForDupes again',10)
+        else
+            call <SID>DEBUG('Final path Position is '.s:bufPathPosition,10)
+            let s:bufPathPrefix = a:path1[s:bufPathPosition].'/'
+            call <SID>DEBUG('Found non-matching root dir and it is '.s:bufPathPrefix,10)
+        endif
+    endif
+endfunction
+
+" }}}
+" IgnoreBuffer - check to see if buffer should be ignored {{{
+"
+" Returns 0 if this buffer should be displayed in the list, 1 otherwise.
+"
+function! <SID>IgnoreBuffer(buf)
+  " 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.
+  let l:BufName = bufname(a:buf)
+  if empty(l:BufName) == 1
+    return 1
+  endif
+
+  " Only show modifiable buffers (The idea is that we don't 
+  " want to show Explorers)
+  if (getbufvar(a:buf, '&modifiable') != 1 || l:BufName == '-MiniBufExplorer-')
+    return 1
+  endif
+
+  return 0 
+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, currBufName)
+    call <SID>DEBUG('Entering BuildBufferList()',10)
+
+
+    let l:CurrBufName = a:currBufName
+    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:tabList = []
+    let l:maxTabWidth = 0
+    " default separator for *nix file systems
+    let s:PathSeparator = '/'
+    " counter to see what platform we may be in
+    let l:nixPlatform = 0
+    let l:winPlatform = 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 == l:i)
+            " check to see what platform we are in
+            if (has('unix'))
+                let s:PathSeparator = '/'
+                call <SID>DEBUG('separator set to  '.s:PathSeparator,10)
+            else
+                let s:PathSeparator = '\'
+                call <SID>DEBUG('separator set to  '.s:PathSeparator,10)
+            endif
+
+            call <SID>DEBUG('Separator is '.s:PathSeparator,10)
+
+            continue
+        endif
+
+        if (<SID>IgnoreBuffer(l:i))
+            continue
+        endif
+
+        if g:miniBufExplSortBy == "mru"
+            let l:mruIdx = index(s:MRUList, l:i)
+            if l:mruIdx == -1
+                call add(s:MRUList, l:i)
+            endif
+        endif
+
+        let l:BufName = expand( "#" . l:i . ":p:t")
+
+        " See if buffer names are duplicate
+        let l:dupeBufName = 0
+        let l:i2 = 0
+        " Establish initial parent directory position
+        let s:bufPathPosition = -2
+        let s:bufPathPrefix = ""
+        let l:pathList = []
+
+        " While in current buffer from first loop, loop through all buffers
+        " again!
+        if (g:miniBufExplCheckDupeBufs == 1)
+            while(l:i2 <= l:NBuffers)
+                " Get the full path of the current buffer in the loop and the
+                " current buffer in the new loop
+                let l:i2 = l:i2 + 1
+                let l:bufPath = expand( "#" . l:i . ":p")
+                let l:bufPath2 = expand( "#" . l:i2 . ":p")
+                let l:BufName2 = expand( "#" . l:i2 . ":p:t")      
+
+                call <SID>DEBUG('BUFFER PATHS ---> bufPath is '.l:bufPath.' and bufPath2 is '.l:bufPath2,10)
+                call <SID>DEBUG('BUFFER NAMES ---> bufName is '.l:BufName.' and BufName2 is '.l:BufName2,10)
+
+                " Split the path string by delimiters
+                let l:bufSplitPath = split(l:bufPath,s:PathSeparator,0)
+                let l:bufSplitPath2 = split(l:bufPath2,s:PathSeparator,0)
+
+                if((l:BufName2 != '') && (l:bufPath != l:bufPath2))
+                    call <SID>DEBUG('bufPath2 is not empty and not comparing the same file, going to check for dupes!',10)
+
+                    " Get the filename from each buffer to compare them
+                    let l:bufFileNameFromPath = 'No Name'
+                    if(strlen(l:BufName))
+                        let l:bufFileNameFromPath = l:bufSplitPath[-1]
+                        call <SID>DEBUG('Setting bufFileNameFromPath as '.l:bufSplitPath[-1],10)
+                    endif
+
+                    " Make sure to take into account empty buffers
+                    let l:bufFileNameFromPath2 = 'No Name'
+                    if(strlen(l:BufName2))
+                        let l:bufFileNameFromPath2 = l:bufSplitPath2[-1]
+                        call <SID>DEBUG('Setting bufFileNameFromPath2 as '.l:bufSplitPath2[-1],10)
+                    endif
+
+                    call <SID>DEBUG('Comparing '.l:bufPath.' vs '.l:bufPath2,10)
+
+                    " If there is a match for buffer names, increase a variable
+                    " that we'll check later
+
+                    if (l:bufFileNameFromPath == l:bufFileNameFromPath2)
+                        let l:dupeBufName = l:dupeBufName + 1
+                        call <SID>DEBUG('dupeBufName equals '.l:dupeBufName,10)
+                        " Now check to see if the parent directory matches if there
+                        " are 2 or more buffers with the same name
+                        if (l:bufPath2 != 'No Name')
+                            let l:bufPathToCompare2 = l:bufPath2
+                            let l:pathList = add(l:pathList,l:bufPath2)
+                            call <SID>DEBUG('Adding '.l:bufPath2.' to pathList',10)
+                        endif
+                    endif
+                endif
+            endwhile   
+
+            " If there are 2 or more buffers with the same name, let's call a
+            " function that show a differentiating parent directory so that the name is unique.
+            if l:dupeBufName >= 1
+                for item in l:pathList
+                    call <SID>DEBUG('Item in pathList loop is '.item,10)
+                    if ((!empty(item)) && (item != l:bufPath))
+                        call <SID>DEBUG('2 or more duplicate buffer names, calling dir check function with '.l:bufPath.' vs '.item,10)
+                        call CheckRootDirForDupes(s:bufPathPosition,split(l:bufPath,s:PathSeparator,0),split(item,s:PathSeparator,0))
+                    endif
+                endfor
+            endif
+        endif
+
+        " Establish the tab's content, including the differentiating root
+        " dir if neccessary
+        let l:tab = '['
+        if g:miniBufExplShowBufNumbers == 1
+            let l:tab .= l:i.':'
+        endif
+
+        if (g:miniBufExplCheckDupeBufs == 0)
+            " Get filename & Remove []'s & ()'s
+            let l:shortBufName = fnamemodify(l:BufName, ":t")                  
+            let l:shortBufName = substitute(l:shortBufName, '[][()]', '', 'g') 
+            let l:tab .= l:shortBufName.']'
+        else
+
+            let l:tab .= s:bufPathPrefix.l:bufSplitPath[-1].']'
+        endif
+
+        " If the buffer is open in a window mark it
+        if bufwinnr(l:i) != -1
+            let l:tab .= '*'
+        endif
+
+        " If the buffer is modified then mark it
+        if(getbufvar(l:i, '&modified') == 1)
+            let l:tab .= '+'
+        endif
+
+        " If the buffer matches the)current buffer name, then  mark it
+        call <SID>DEBUG('l:i is '.l:i.' and l:CurrBufName is '.l:CurrBufName,10)
+        if(l:i == l:CurrBufName)
+            let l:tab .= '!'
+        endif
+
+        let l:maxTabWidth = <SID>Max(strlen(l:tab), l:maxTabWidth)
+        call add(l:tabList, l:tab)
+
+        if g:miniBufExplSortBy == "name"
+            call sort(l:tabList, "<SID>NameCmp")