Vimjuta 0.1 “Take me to your leader” has released. Hurrah!
- Tags / Symbols Viewer
- Debugger Support
- You can’t run more than 1 session at a given time. This is because I’ve been using a DBus session bus instead of creating a peer-to-peer connection. In case the program doesn’t work, kill any ghost gvim processes you have running.
- AutoComplete: AutoComplete should *technically* work, but I haven’t been able to get it it to work even with the existing editors.
- Search / Selections : The current implementation is a bit buggy, so I’ve commented out the support. At any rate, vim’s search is infinitely better.
Boring Screencast (Redoux!):
I finally managed to get a screencast. I’m still not sure what the problem was, but it isn’t recurrent, so I’m scared. It looks like I have some bugs to fix, sigh. The video shows a Symbol Browser (actually the plugin is called the Symbol Database. It’s some new and awesome SVN dope) and debugging working. At some point in the video, the program counter disappears. I don’t know why this is, but I have found that Anjuta makes a lot of duplicated Mark/Unmark calls which do sometimes overlap. The bug will be fixed shortly.
Unfortunately, the installation process for Vimjuta is a bit of a pain. Until Anjuta releases 2.6 (which will feature James’ Git Plugin), my patches will not be included upstream.
You can always grab the latest version from SVN, and the release is r50. I’ve also hosted a tarball. To use the plugin, you need to have anjuta-svn (which you should get anyway due to sheer awesomeness). Copy the editor-multiple.diff and accels.diff to anjuta/, patch anjuta. Build, and install anjuta, and finally, build and install anjuta-gvim/. Further instructions can be found in the INSTALL folder.
The plugin on first run will install some configuration files at .config/anjuta/gvim/, namely, anjuta.vimrc (to make vim usable), and a “locked_keys” file which contains some keybindings that should never be remapped by anjuta (for example <C-n> or <C-w>).
Also, to have any fun with the plugin (or vim in general), install the awesome MiniBufExplorer (VimScript #159:
The past couple of weeks have been crazy. From closing bugs just minutes before the GSoC India meet, to being pulled into doing a ton of work for our college’s Golden Jubliee year, and finally fending off people who want me to do their bidding. But it’s there. Vim has assimilated Anjuta, and it’s only due time before Vim takes over the rest of the world.
I pushed out the “offical” release at approximately 11:59 p.m on Friday, which qualifies this release as an “Independence Day” special, and makes me an inch closer to James Bond. There have been so many changes between the last time I blogged about it and now, I hardly know where to begin.
Currently, the keybindings for vim and anjuta mush into each other a lot. The problem is that I need some Anjuta keybindings (like debugger support), and vim keybindings basically take the whole keyboard. A slightly hackish solution I’ve come up with was to unload all of anjuta’s accelerators, and then load another set especially for “Vimjuta”, and lock some special keys like <C-n> or <C-w> which was previously getting overwritten. This solution works by and large, but it’s an unstable solution, as other plugins can overwrite the key-mappings.
Another problem I faced previously was updating the embedded Vim window. From what I managed to gather, GtkSockets don’t emit signals, nor can you invalidate their rectangles. So when I moved the cursor remotely using DBus, it would not update on the screen, until I sent it some form of event (generally by scrolling the mouse). The vim –remote functions seemed to work, and I deduce the reason being that it updates a “window property” (part of the X11 ICCCM protocol). At this point, I’d like to thank Guido Von Rossum for Python, and Ali Ashafar for PIDA. I managed to find out how to set Vim’s properties properly. Now the symbol database and browser work properly.I have noticed how ready vim is for an IDE. It has over the years accumulated an quite a few IDE specific features, like inserting marks (useful for debugger support), remote file editing, etc. This of course made my life much easier. I also realized that I was wasting a lot of time on really unnecessary gui-fications of vim features (like search) instead of features like Debugger Support that vimmr’s really need. All I had to do was keep track of my debugger marks, and that was enough to bring Debugger support.
I hope that everyone likes the plugin, and I’d love to hear feedback.