During a normal day of work one gets into a lot of different tasks related to programming, documenting, writing, reading and so on.

Multiple formats are handled by our fingers each day, and multiple things are done over and over and over. One of these things is editing, editing has been for a long time for me, essential.

Editing text in different kind of files has had a lot of testing from my side, my requirements are quite simple:

  • Multiple encoding support
  • dos-to-unix and viceversa editing 
  • multi-window/panel split features
  • snippets
  • auto-completion
  • formatting
  • visualization
  • file-tree navigation
You might say, these things are simple and you can fill them up with TextMate, Notepad++ or an IDE, and perhaps you're right, but not in my context.

My context is development, of different kinds and different programming languages, so here you have some considerations/notes/remarks for the editors I've used:
  • IDEs: these are great, fully integrated, but I'm not always with the possibility to delegate 1GB of memory just to edit a simple  YAML file.
  • High-end editors: Such as TextMate, SublimeText and others. I have used them, and I have been pleased with their simplicity and user-interface. But sadly it doesn't satisfy my mental model since from time to time I have to work over an SSH connection with scripts.
  • Emacs and derivatives:  I love Emacs, and I love JED, but sadly such environments need (from my point of view) lots of effort to configure, setup, and even to keep it working for in a productive way for my needs. I use them from time to time, but they're not my first choice.



So finally, I tried VIM, it's a great tool, I cannot say if it's better than Emacs or others, but one thing I can say, it has a great community, the Ruby and Open Source communities in general have chosen VIM and made a damn excellent environment out of it, this was not the case 5 years ago, things like:
And others make it my first choice right now, it's kind of confusing at time to get the edition modes, but once switching for some hours it gets natural, VIM is not only an editor, is a powerful edition environment that works really well, and it's mainly because of the community behind it. 

Got give it a try, or try Emacs, but as I was told by others, define your needs and pick the tool that applies to your context.