The famous crusade between VIM and Emacs is well-known, and when I firstly want to settle down on one side of the battle, I really don't know which side I should choose. Since there seem to have no body all over the websites who can provide a impartial advise regardless of his predilection, so after a while I decided to make my own decision by comparisons.
Firstly I tried VIM, and unlike the usual editors such as windows system text editor, or UltraEdit or MSwords, it has different modes to switch, and only by typing "i" or "a" under command mode can it switch to insert mode. I really felt dejected when I typed keyboard many times with nothing displayed on the screen except the annoying sound "d~~, d~~" . But after I got used to its basic commands, I understood why so many advanced programmers like it: this is a editor which you can use it efficiently without moving you hands away from keyboard, therefore you can totally throw your mouse away. Besides, the commands it uses is really efficient, e.g., the moving cursor commands "hjkl", the delete commands "dd", the finding position commands, "0,$,*,%", etc. In a word, you can do all your jobs with only limited keys you must press.
Then I tried Emacs, first difference with VIM you notice is that you can input texts with no need to switch between different modes. But if you want to do the same job in VIM, you must press more buttons, the number of keyboard buttons you need to press is basicly two times more than VIM, eg, the moving cursor commands in VIM is "hjkl", while in Emacs, they are "<c-b>,<c-f>,<c-p>,<c-n>". No wonder some people jokes that Emacs = Esc + Mata + Alt + Ctrl + Shift. Unlike VIM which totally focus on plain text editing, Emacs is more like an OS system, it can run shell command within it, it can manage the files in you PC, it also has some games planted in, such as the famous "Tetris", you can use it to browse the internet, listen to music, and even make coffee. Some people wrote a blog describing his life as "Living in Emacs".
One thing the two editors have in common is the good extensibility, by adding necessary plugins, you can turn the two editors into powerful IDEs. You can write and run different kinds of computer language in the two editors, such as C, java, python, ruby, perl, fortran, latex, tex, etc, almost every kinds of language.
So how do I choose? I haven't decided yet, but as a an amateur in computer programming, I think Emacs is more suitable for me. VIM is more suitable for professional programmer, and Emacs can be used as a dailly tools for different kinds of job. But if I want to write a text file more quick, I might use VIM instead. Hopefully one day, I can make some contribution to the development of these two editors, and development of GNU project