sponsor Vim development Vim logo Vim Book Ad

winmanager : A windows style IDE for Vim 6.0

 script karma  Rating 1012/370, Downloaded by 86695  Comments, bugs, improvements  Vim wiki

created by
Srinath Avadhanula
script type
winmanager: A classical windows type environment for vim6.0

Snapshot                 : http://robotics.eecs.berkeley.edu/~srinath/vim/snapshot2.JPG
Detailed Instructions : http://robotics.eecs.berkeley.edu/~srinath/vim/winmanager.htm
Upates                    : http://robotics.eecs.berkeley.edu/~srinath/vim/winmanager-2.0.htm

winmanager is a plugin which implements a classical windows type IDE in Vim-6.0. Basically, you have the directory tree
and the buffer list as 2 windows which stay on the left and the editing is done in a seperate area on the left. People
have already made excellent File and Buffer explorers seperately and I thought that it might be a cool idea to combine
them both.  winmanager.vim combines the standard File Explorer which ships with Vim6.0 and a Buffer Explorer written by
Jeff Lanzarotta into one package.  It has the following features:

1. the buffer listing is dynamic: i.e as you keep changing windows, editing new files, etc, the buffer list changes
dynamically. the window also resizes dynamically, i.e it tries to occupy the minimum possible space to display all the
currently listed windows. also, only the filename (i.e without path) is displayed in this window. however, the full path
name is echoed on the command line as one moves around.

2. the file explorer window doesn't actually edit a directory. Its a new empty file with modifiable off, etc. so that it
doesnt eat up buffer numbers as you roam around the directory tree. I found the original behaviour slightly annoying...
Also, I didnt find a way to change drives i.e go from c:/ to h:/ in the original explorer.vim. therefore i have added a
tiny new mapping 'C' which changes the currently displayed directory to pwd.


install details
For version >= 2.0
1. copy the file to your $HOME/.vim or $HOME\vimfiles directory

2. unzip it (its a zip file) at that location. this should create the files
   - plugin/
   - doc/

   i  . This version of winmanager ONLY works if you have the latest version
        bufexplorer.vim. (vimscript #42).
        The idea is that winmanager will no longer contain a duplicate copy
        of bufexplorer.vim. This reduces script bloat, makes updates easier
        and in genral makes the world a better place.
3. vim -c "helptags ~/.vim/doc" -c "q"  (unix)
   vim -c "helptags ~/vimfiles/doc" -c "q"  (windows)
   (this step should install winmanager.txt as a local help file on your
   system. if this doesnt work, see ":he add-local-help" to see how to do

You will also need to change the mappings you might have used with
winmanager-1.x to

    map <c-w><c-f> :FirstExplorerWindow<cr>
    map <c-w><c-b> :BottomExplorerWindow<cr>
    map <c-w><c-t> :WMToggle<cr>

and the variable name g:bufExplorerWidth has been changed to
g:winManagerWidth just to be more consistent.

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

Click on the package to download.

package script version date Vim version user release notes
winmanager.zip 2.3 2002-04-03 6.0 Srinath Avadhanula Sorry, but I just found out that I had uploaded a week old version last time which didnt have any of the promised new features, namely favorite dirs, improved wintagexplorer etc. Its a huge surprise that I didnt get flooded with complaints! oh well.. also fixed a few minor bugs with both winmanager.vim and wintagexplorer.vim, so this is not a completely wasted upload.

Please see release notes for version 2.2 for changes.
Once again, you need vimscript #42 (bufexplorer.vim) for this to work.
winmanager.zip 2.2 2002-04-01 6.0 Srinath Avadhanula New Features:
1. The file explorer now has a favorite directories option. The list of
   favourite directories is shown above the current listing with '+'
   signs prefixed to each fav dir. In order to change to a favorite
   directory, you just go to that dir and press <enter>. Set g:favDirs
   in your ~/.vimrc to use set a default list of favorite directories.
   This is a new-line seperated list of directories. For example:
        let g:favDirs =
   After startup, you can use 'f' to add the currently displayed
   directory to the favourites.
   NOTE: Use full path names. Use a trailing back-slash is safe.
   NOTE: Use double quotes to enter a new-line.
   NOTE: By default, $HOME is always included in the list. Do *not*
         include it in g:favDirs.

2. wintagexplorer.vim now has a feature where it saves its display in a
   file .vimtagsdisplay in the tags directory. This speeds up display
   next time you use wintagexplorer. useful if you work with large tags
      let g:saveTagsDisplay = 0
   in your ~/.vimrc to disable this feature.

3. There are a couple of more functions which winmanager exposes.
   1. WinManagerGetLastEditedFile(n)
      returns the n^th last file being edited.
   2. IsWinManagerVisible()
      returns 1 or 0 depending on whether explorer windows are visible.
   These functions are internally necessary for adding on
   FlistTree.vim to winmanager.vim. This is a new addon to winmanager
   based on Dr. Charles E. Campbell's flisttree utility which
   graphically shows the function dependency within C files.
   FlistTree.vim is expected to be released shortly.

ug Fixes:
1. When a file is chosen from the bufexplorer list and its not currently
   visible, then the cursor jumps back to the first row.

2. Sometimes the <C-N> and <C-p> mappings would be lost, when an
   explorer didnt display properly.

3. Several bugs in wintagexplorer.vim have been resolved.
   (Thanks to Madoka Machitani and Mike Williams for valuable help).
   wintagexplorer.vim is also more intelligent about remembering its
winmanager.zip 2.1 2002-02-13 6.0 Srinath Avadhanula     1. worked on improving the speed of wintagexplorer.vim
       (the latest version is almost 3 times faster than the previous
       version and faster for larger files).
    2. removed some bugs from wintagexplorer.vim where the mappings would
       dissapear because of caching.
    3. fixed some important documentation bugs (thanks to Madoka
    4. also used an augroup for the autocommands used in winmanager to
       better handle cases where the autcommands are deleted. (thanks to
       Madoka again)
    5. made fileexplorer.vim not screw up the search history. this was
       caused because of ^"= getting into the search history.
       (thanks to Jeff Lanzarotta and Xiangjiang Ma).

     NOTE: I frequently get asked the following question:
     Q. From version 2.0, the command :GotoBufExplorerWindow does not work.
        Whats wrong?
     A. Starting from 2.0, the commands have been changed as follows:
                 old                           new
           GotoFileExplorerWindow  -----> FirstExplorerWindow
           GotoBufExplorerWindow   -----> BottomExplorerWindow
winmanager.zip 2.0 2002-01-18 6.0 Srinath Avadhanula This is a major revision of winmanager with lots of new features, improved
stability, etc.

IMPORTANT: you need to download and install the latest version of
bufexplorer (vimscript #42) to make this version of winmanager work.

1. One of the major new features of this version is (hopefully, touch wood,
etc) its stability. It has undergone extensive QA by Xiangjiang Ma (and
other users of the 2.0 beta version have also been using it for a couple of
weeks and have reported a few bugs). A big thanks to him (and others) for
all the valuable help. Infact a lot of the new features and the
implementation methods owe their style/origin to his ideas.

2. This version of winmanager no longer ships with a duplicate of
bufexplorer.vim. This has many advantages such as a reduction in script
bloat and in general promotes the idea of modularity. The latest version of
bufexplorer.vim (see above) provides hooks so that winmanager can
communicate with it. (thanks to Jeff Lanzarotta for making the necessary

3. Becuase of some new features of bufexplorer.vim, winmanager is able to
offer better dynamic behavior. For example, when you open up winmanager
when your editing only a single buffer, bufexplorer will not be shown. As
soon as at least 2 buffers are opened, bufexplorer is automatically opened.

4. This version provides an easy way to customize the window layout of
winmanager using non-default values of the global variable,
g:winManagerWindowLayout. (see ":he winmanager-customizing" for details).

5. This version also provides a way to use winmanager.vim to "edit"
directories instead of the standard exploerer.vim. To do this, you will
need to disable the standard explorer.vim (either by renaming it to
explorer.txt or putting ":let loaded_explorer = 1" in your .vimrc). You
then need to put
   :let g:defaultExplorer = 0
in your .vimrc to let winmanager know that its supposed to take over.

6. I have tried to set-up a framework wherby it is very easy to add other
IDE type plugins to winmanager. By this I mean that a plugin author
could, with the minimum of effort make a plugin which can be integrated
into winmanager.

7. For the purpose of demonstrating the first feature, in this new version,
winmanager also ships with another lightweight plugin called
tagsexplorer.vim. This is an elementary plugin which shows the tags in the
present directory in a fancy manner and offers some simple ways of
navigating between them.
To see this in action [File List] window and press CTRL-N.
ip used for rating:

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