Vimjuta 0.1.1 and Online

21 10 2008

I made a promise last week to come out with Vimjuta 0.2 over the previous weekend. I hate to say I broke the promise, the best I could come up with was a 0.1.1-ish “release” (it’s on SVN), fixing a very irritating and troublesome reference issue. I spent around 14 straight hours fixing that single issue, chasing my ref counts through Anjuta and fixing several inconsistencies along the way. I couldn’t find the time to fix the problems with the debugger and to re-implement some of the interfaces (mainly the search interfaces, which vim honestly has better functionality in). My new goal is to cut out about an hour every day of this week and work through the weekend (during which I am going home, away from the hectic campus life), and try and come up with a 0.2 release in time for Diwali (huge Indian festival). Wish me luck!

In other matters, I have finally made a small webpage for Vimjuta, hosted on my webserver at:


Vimjuta 0.1 Released

18 08 2008

Vimjuta 0.1 “Take me to your leader” has released. Hurrah!

Download Here


  • Tags / Symbols Viewer
  • Debugger Support
  • Stability!

Known Bugs:

  • 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.

Missing Features:

  • 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.

Installation Instructions:
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.

Vim. Other Editors Don’t Do Such Things

1 06 2008

I’ve been making some progress on my Anjuta-Vim Integration project, infact, I even have screenshots 🙂 [1]. But that’s very deceptive, notice the (null) ((null)) on the window title. Essentially, I’ve written an AnjutaPlugin that implements the necessary interfaces to “open files”. Currently all my interface implementation functions are returning NULL’s or 0’s (which can cause unpredictable segfaults and  memdumps), and that brings me to the real challenge of my GSoC project.
Read the rest of this entry »