There has been a long debate over which text editor is Really king. VI or EMACS. Both have their loyal fans that scoff at the other side’s text editor. No one really can prove that one text editor is better than the other one. Yet people will probably still be arguing about it ten years from now. In the computer nerd(i use that term in a good way) world text editors can be very important things.
Normal computer illiterate folk wouldn’t understand the holy war ongoing between the dueling text editors. Most people fire up Word and get done with it. Well we open source fanatics will have none of that if we have any say. We are obsessed with speed and being a quote UV quote “power user”. We want to tailor our text editing experience to fit us personally. We don’t want to conform to some Microsoft engineer who’s making all the UI decisions.
No one who wasn’t into computers would even know there is such a thing as a “EMACS” or a “VI”. Obviously anyone who cares enough to use a complicated non-word text editor is probably very passionate about computers and what software they use.
Both text editors go very far back and have been around longer than I. Emacs & VI have. Both have been around since 1976. They are still maintained and used by thousands of people each day, and have probably the most loyal fans after operating system fanboys.
There main difference between vi and Emacs is that vi inside the terminal and emacs is more like an individual application. Also vi is basically available on every Linux distribution and even OSX without needing to be installed and emacs is not. If a server is down and all you have is the command line you will be using vi to edit files.
In my opinion vi tends to be lightweight compared to Emacs. But Emacs seems to have a higher level of extensibility. It is basically a compiler form lisp. It even has its own tetris game. Emacs can made to do basically anything with lisp. I don’t know of anything comparable on Vi. Also too me the Emacs commands make some more sense. With Emacs you don’t have to worry about switching from insert to command mode. You can execute commands all the time not just in specified command mode.
I don’t know but vi seems a little less user friendly compared to Emacs. Emacs could be used by anyone you don’t technically need to know any commands because at least in v23 there is a GUI you can resort to if you don’t know a command or don’t feel like typing everything. Also Emacs allows you to use a mouse in addition to keyboard commands. This feature is especially nice for anyone not ready to learn a lot of new commands.
Overall I would say Emacs is generally easier to use without any command knowledge. It also is very extensible. With Lisp you can basically do anything. If a function for something in Emacs doesn’t exist you can make it exist.
Where Emacs is more user-friendly Vi tends to be a little bit harder to pick up as it is totally navigated with keyboard commands. Vi is also lightweight compared to Emacs. Where Emacs takes a second to load on my netbook Vi loads immediately. Vi is also highly configurable through its .vimrc file where basically any feature can be changed to fit a user’s preference. To me Vi seems a little too bare bones for what I do with text editors.
I admit I used to be one of those Microsoft Word minions and still to some extent still am. Emacs overall seems like a much smoother transition and seems to have a function to fill all of my needs. Where it lacks in speed and portability it makes up in pure potential. This is a real thing that happened to me today. I wanted to see how long this article would be. I had no clue if Emacs had a word count function so I Googled it. Emacs does not in fact have a word count command. It was no problem though because I was able to download a script and put it into my .emacs file and I was fine. I reloaded Emacs and hit alt-x word-count and I was on my way. As far as I know Vi doesn’t have that kind of easy process to allow you to add a command.
When it comes down to the text editor holy war I think it all depends on what you would rather have. A jack or all trades (EMACS) or a master of one (VI/VIM). They are two totally different text editors based on different design philosophies. I think that is why they clash together in this ongoing holy war. This is why this war will never end. This difference, the most important difference of all is why no one will ever win.
I am sure the Vi lovers will say I need to give it a chance. To take more time learning the commands, and that this wasn’t a fair article. The Emacs lovers will tell me I am making the right choice in sticking with EMACS. Honestly though does it really matter? People will use the right text editor for them and nothing else. If they want to write all of their C++ code in notepad so be it. If no one can win let us agree to drop it and get on with out lives.
Popularity: 22% [?]
VIM has its own interpreters that allow you to write additional commands and whole plugins. You can write it in vim’s script language or as I sad before use one of available interpreters: python, python3, lua, mzscheme or ruby. Plugins are available at http://www.vim.org/scripts/