Friday, April 02, 2010


Back in 2003 I had to write code in Linux for the first time in my life. For some reason I could not get the GUI running so I had to find an editor which works in text user interface. Immediately, I found the two most famous editors for Unix: Emacs and Vi. Vi seemed to be hard to grasp at that time. I did not get the idea of having two modes: the command mode and the insert mode. So I quickly decided to use Emacs which was much easier to learn. However, last summer I decided to give Vim a try. After using it for couple of days I started to like it and eventually it became my most favorite editor for coding. I was so habituated to using Vim that while working in Eclipse I subconsciously tried to use the Vim commands. Recently, I thought that given the huge number of Vim fans in the software developer community, there must be one or two projects on combining the power of Eclipse and Vim together and yes, I was right. I found several projects working on the idea:
  1. VimPlugin
  2. Eclim
  3. Vrapper
I tried VimPlugin. You need to have gVim installed in your system to make it work. It provides a fully working Vim editor in Eclipse. However, it misses the powerful auto-completion feature and other features on the context menu of Eclipse's default editor and so I was not satisfied with it. I did not try Eclim because the main focus of that project is to run Eclipse inside Vim instead of the other way around. Then I installed Vrapper plugin and found it to be the one I was looking for. As the name suggests, it wraps the default editor to provide Vim-like functionality. The feature list it provides is still a subset of that of Vim and they are working on providing more features. However, the plugin has the basic features for which people love Vim and I think I like it too. Features like search with regular expression and search and replace are marked for future versions. But I can live without them for the time being. Those who like both Eclipse and Vim can certainly give it a try.

No comments: