Vim is probably the most configurable text editor know. It was written by Bram Moolenaar and first released publicly in 1991 but it’s is in active development and it used across several plaforms including Linux, Windows and Mac. It is widely used in developer community due to its:

  • Flexible multiple document interface: In Vim, your files and unsaved documents are referred to as buffers. The editor gives you a tremendous amount of control over how your buffers are displayed on the screen
  • Modal editing with sophisticated keyboard shortcuts: Vim has separate interaction modes for text input and text editing. Insert mode behaves largely as you would expect a regular text editor to work—commands are performed with conventional keyboard shortcuts and characters are appended to the buffer as you press the associated keys. In the “normal” mode, however, sequences of key presses perform commands
  • Multiple clipboards: Instead of a conventional clipboard, Vim stores copied text with a mechanism that it calls registers. This effectively acts like a clipboard multiplexer. The contents of the registers persist between uses of Vim, which means that they are preserved when you quit and will still be there when you open the editor again.
  • Macros: Vim has a macro system that allows you to record keypresses for later playback.
  • Extremely powerful search capabilities: Vim has some very sophisticated tools for automated search and replace, including extensive support for regular expressions. It also has a built-in version of the grep command, which integrates with Vim’s enormously convenient quickfix feature—a special buffer that shows you a list of results and allows you to conveniently jump between them.
  • Extremely rich extensibility: Vim is prodigiously scriptable and highly conducive to automation. It has its own native scripting language with container types, a unique variable scoping model, and a bunch of useful Vim-specific functionality
  • Portability: Vim will work almost everywhere that you do. Vim is widely used on Windows, Linux, and Mac OS X and is available for many other platform. Users can run it from the terminal or operate it with a native graphical interface on all three major operating systems.
  • But starting Vim for the first time is painful for everyone. Here I got an interactive online tutorial on Vim, which is fun to try out: http://www.openvim.com/tutorial.html If you are starting with Vim, I would recommend you to try it out once, just for fun. :)