unsolved rubik cube

Rogelio's Blog

Go back

Emacs or Neovim

03-17-2025

Why am I doing this comparison?

I have always liked trying new things, and as a developer I feel the obligation to try new and old tech in order to find what I like the most and add it to my daily developer routine. That’s why I’m making this comparison with two text editors that similar and that a lot of linux users use in their daily workflow. I’ve been using both of this editors to do some work and spending time customizing them in order to understand how these work under the hood with autocompletion, snippets, autosuggestions, code syntax, formatting, etc.

Neovim

Neovim its just Vim but with modern adaptations and open source. It has been gaining a lot of user over just VIM because of the open source part of it, allowing to create libraries that add a lot a functionalities to the text editor. Neovim is very customizable and that allows it to build your own IDE over this environment. You can expect having stuff like lsp, autocompletion, auto-correction, snippets, auto formatting, etc.

One of the best thinks I can say Neovim has just like Vim, are the keybindings, something that Emacs also has, but in my opinion, Vim keybindings are just better, they just work better while typing because in Emacs you need to use more function keys like Ctrl or the META key and that can slow you a little bit. You can add these keybindings to Emacs by enabling “Evil Mode”, so that just proves the point of Vim keybindings being the preferred way of using the text editor by other developers.

Emacs

A text editor developed for the GNU project, in their words Emacs it’s “An extensible, customizable, free/libre text editor — and more.” and for what I’ve been trying it, I would say the statement is true. Emacs is a text editors with super powers, similar to Neovim you can customize it whatever you like, but Emacs goes further, you can user it as an agenda, you can create your own Notion or Obsidian to take notes, you can make presentations, todo lists, etc with Org mode, you can send and receive emails, you can even use it like a browser, yeah I’m not kidding, you can basically do pretty much anything you would need in you daily workflow. And why is that? Well, emacs was created to actually never leave the software while using the computer, instead you create new buffers for different tasks, and you do all your work in emacs, this is the way you actually achieve a high level of optimization while tasking.

For editing code, you can create you own IDE basically, similar to Neovim really. You can configure all the tools for code languages like lsp, autocompletion, snippets, formatting, syntax highlighting and auto-correction, etc. You do this using their own language called emacs lisp, which is a simple syntax language I would say pretty straight forward to use and easy to learn. You create your own config files and you just tell Emacs where these file are and all the config will load to your Emacs session. Emacs is not as popular as Neovim, not because its bad or anything like that, but I think it has to do that Windows users prefer Neovim over Emacs, and Emacs its mainly used on Linux distros. But ignoring that fact, it has a good community and there are a lot of libraries out there that you can integrate with the software so you can be sure you can achieve whatever you can probably want, and if not just ask out there in any forum.

Are these text editors really that efficient?

The short answer is yes. But for that to be true (in my opinion) you would need to be a super linux user, because these editors integrate the best with linux distros. As I said before, these are planned to be used for not only editing text, but also do a lot of stuff on your computer, so If you are not an user that has this type of workflow maybe you will not see the level of efficiency a lot of people say you have when using these editors. So in the end, for what I grasp, if you are a developer that only uses a text editor for coding purposes then you should be fine sticking with whatever text editor you’re using at the moment, and also if your really like Emacs or Neovim just for editing code then go for it, because they are great for that, but don’t expect really a lot of improve in efficiency if you are not willing to dive deep into their more advanced features.

So which one I prefer?

Honestly, after trying Emacs and Neovim, I like Emacs more than Neovim but VSCode overall. I’m not a heavy user on optimization in my workflow, so I just use text editors to code, thats why I prefer VSCode it’s just faster to configure, and I like my workflow on it because I have my custom keybindings and custom visuals that allow me to enjoy it more. I will still be using all of them just to have them on my repertoire, but my main will still be VSCode.