VIM Control Center

Version: 1.1 , Date: 04/04/2002

About: VIM Command Center is a set of Python scripts that gives VIM users a simple GUI to access their code that is running in VIM. It currently only works on the Windows Platform. wxWindows is required.

Requirments: Python, wxPython

Limiations: The QT and TK interfaces included do not currently work.

Known Bugs: None known

Author(s): Jason Erickson


SourceBinariesLicense None BSD


I use to have my Windows(R) task bar all filled up with instances of VIM.  I
know that VIM supports multiple buffers in one instance, but I never opened
up files inside of VIM.  I would have a Windows Explorer window opened up
so I could view the files in that directory and open them up by
double-clicking or by right-clicking.  Other times I would be at the command
prompt and type 'gvim ' on the command line.  It was just always
easier to open up a new window.

Later on, I learned that one could drag and drop files onto VIM to load them.
This worked out good, but it was a pain to switch between the buffers.

This is how the VIM Command Center was born.  I thought to my self, how could
I 'mimic' some of the functionality that coworkers had with their Windows
editors?  What was I missing the most?  I decided it was the quick select
button bar, like tabs that other editors have when one is editing multiple
files at once, so that is the first thing that I implemented.

To use the VIM Command Center, just type:

This program will share one VIM Command Center, so it can be used when no
files are loaded, or when you already have files loaded in VIM.

I am releasing the files under the BSD license, so have fun with it.

How does the VIM Command Center work?

VIM Command Center (VIM CC) uses Python, the win32all extentions, and
wxPython to interface to VIM via the VIM OLE interface.  VIM CC polls the
editor every so often and checks to see if there was any changes with the
editor that it need to know about.

It is possible to port the GUI interface to other GUIs (at one time, I had
it sorta working on Tkinker and QT, which is why there are files included,
but decided to get it working on one first, so they really do not work
anymore).  I have started to abstract some of the GUI information to be able
to easily maintain different interfaces, but I do not currently know enough
about all three GUI interfaces to be very far with that.

It is also possible to port the VIM interface off of its reliance on OLE
(like the embedded Python VIM interface, or the new server-client
interfaces).  I believe I have abstracted the VIM interface enought that
adding a new interface should be pretty straight forward.  It looks like
both the server-client interface and the embedded Python interface is
very similar to the OLE interface.  The VIM interface is the only reason
that it is limited to Windows.

How are the buttons sorted?
Currently, the buttons are sorted by complete path name.  This is nice
sometimes because all the files from one directory is in one location.
The disadvantage is that it makes it more difficult to find a file based
upon the button.  I have not decided on which way is better.


04/04/2002 - 1.1 - First Package Release
02/02/2002 - 1.0 - Initial Release