Why I love emacs?

Why I love emacs?

I like exploring different tools which can make me productive and is available in all major platform. My first code editor was Notepad++ which I got with a magazine named Digit in India. Internet was luxury so only way for me to explore new software was CD packed with Digit magazine and to be honest it was one of the main reasons I used to buy that magazine.

I started learning C++/C with PHP for web in that Notepad++. For C/C++ I was using mingw compiler in Windows and XAMP for PHP development.

Then I switched to Visual Studio which also I got from same Digit magazine and it was first IDE I used though I didn't know it's called IDE. Parallel to this I was using TurboC++ in school also. After that many editor or IDE came like Sublime Text, IntelliJ, PyCharm, Atom and I settled with Visual Studio Code as my go to editor.

For last 2 weeks I am using Emacs especially Doom Emacs and I love it so far with its usability and features. Here is why I like it:

  • Being an old software, which came in era when mouse was not so popular it is well optimized to work with keyboard, in Doom emacs space is used as Meta key and it also very helpful in showing all the options available.
  • By now you know that I am using Evil mode in Emacs, which make use of muscle memory form Vim here also for editor tasks.
  • Org mode is useful addition in an IDE that I can keep track of all my works in IDE itself without leaving also it renders tasks very intuitively for TODO, COMPLETED and can be extended with help of custom config
  • Being a developer, I constantly change files, search for new file or a particular word in current project or create a new file and for this I became fan of dired creating or deleting files, moving files etc with keyboard only.
  • Magit is another integration I loved in Emacs, just few keystrokes and boom your code staged, committed and pushed to remote.
  • I used vterm with Emacs to bring my fish terminal to Emacs and I was finding to split terminal in vterm which was not working out. So, I found solution using tmux inside vterm so that I can split my window and also keep running task even I need to get out of termianl for some reason.
  • Being polyglot programmer what I liked about VSCode was Language servers are available for most the languages out there and I was happy to know same thing is available for Emacs also. So, I get same features for a particular language what I was getting in VSCode.

It's a wonderful experience working in Emacs but there are few things like HTML source code editing, CSS which I will like to continue using VSCode specially I don't have to setup emmet. Also, I can open browser pane inside of VSCode itself as being an electron app so that when developing I don't have to jump between windows. So, here are few things that needs to addressed for Emacs, all are my personal opinion:

  • Integrate a web browser inside of Emacs so that people don't have to jump between windows even this can help in improving email client in emacs as most of the email today are just HTML. This will be a hard task but I think can be done.
  • Make vterm or similar alternative default in Emacs as people will like to use their original terminal here also and this can help to save time not configure one thing at least. I don't know how many people will still like to eshell or shell in Emacs.

Above are 2 things I want Emacs to improve upon currently, some more might come up as I use it more and more.

Happy Learning! Happy Coding!