First the foremost, this article is all subjective opinions by me, and there are all kind of text editor for any kind of programmer. I think some programmer have some kind of religion, so I am not going to tell anyone to use any particular text editor. I believed text editor is just tool to help programmer make a software and get their job done.

At my previous post ' Framework I have been working… (Part 2) ’ I mentioned I watched a few episodes of ' Handmade Hero ’s series. Casey Muratori was using Emacs as a text editor coding C/C++(I think now he use 4coder instead of Emacs). I was surprised by how fast he can code in Emacs. So I made some research and discovered there is Vim which is another great text editor competing with Emacs. I decide to give both editor a try, and it turn out I chose Emacs over Vim.

First, I would like to talk about why I chose Emacs over Vim. I think Emacs can do almost everything that Vim does. Vim stays cool he just wants to be a text editor and does not want to do something else. Emacs design the way that you could turn Emacs from text editor to something else. And of course, Emacs is not perfect. Emacs has few troubles doing something like you still need to use third-party software in order to run a package, and sometimes Emacs just froze when I am just trying to edit a text file. Emacs is just a right tool for me because I use to want a text editor that could edit any programming languages and do anything inside it. On the other hand, you might say that is gross to have a text editor do all kind of job for you. Why do not we just use another program instead of code in elisp and write your own functionality for Emacs? Is that even worth it?

The answer is really depend on who is using it. For me, I program in different programming languages; I would somehow need to use other text editor or IDE when I change to code in another programming language. For example, I code Java and C++ I would have to change from ‘Eclipse’/‘Android Studio’ to ‘Visual Studio’/‘MonoDevelop’. And these IDEs has different key bindings, which I really hate because I would somehow make mistakes by pressing the wrong key binding from previous IDE to current IDE. In this case, Emacs/Vim become useful because I could finally code all programming languages with the same key bindings. On the other hand, if you are a front-end developer you would recommend people use Sublime Text instead of Emacs because it is wasting your time and is not worth it anymore.

* My emacs file config repo *

* Few Videos I watched when I learn Emacs *