VIM Control Center
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
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: vimcc.pyw 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