My Search for the Perfect Editor
From what I’ve seen around in several programming communities, the editor you (and other people) use is something that always sparks discussion. Whether it be about which one is the best, or someone is sharing their configuration, these conversations are very interesting.
All of this is why the editor I use is something which I love switching around with and discussing with others.
The Beginning
The very first editor I used, when I started learning some basic HTML and CSS programming editor was Atom, which has since been archived. This editor was certainly one that past me enjoyed. I loved the simplicity and intuitiveness of the interface. For the person who was only making simple webpages, this was enough.
Then I picked up Python. This was a language I had known about, but never really used until I decided to make a Discord bot with discord.py. It was a fun experience, and something I enjoyed very much. However, it came around a time when I was starting to not really like Atom that much. It was feeling a little bit… too simple. I wanted something more powerful.
Enter VSCode. This was an editor that a lot of people in the discord.py server were using, and thus I gave it a try. When I started to use it, to say I fell in love with it would be an understatement. It was PERFECT. Everything, from the UI, to the integrated terminal, to the customization options. The best part was the terminal though, definitely. I loved being able to run my scripts right from inside the editor. It felt modern, though, and the configurations were easy and had sane defaults. For the first time, I enjoyed the programming workflow, and I kind of wanted to program just so I could use my editor.
The things that made me switch, however, is the fact that it just ate my RAM, which is pretty obvious with VSCode being an Electron app, as well as getting kind of sick of it. This “getting sick of things and wanting to try something new” is actually a big reason I kind of keep switching editors.
Trying something new
After some research, I stumbled upon Sublime Text. It seemed pretty good on paper. From what I had read online, it was lighter, while still being as powerful as VSCode. I decided to give it a go, and immediately, I realized a very interesting thing which kind of ties back into the reason I used VSCode in the first place: it had sane defaults, and was pretty configured for me out of the box. Now, I realize people are gonna say that Sublime Text requires a license, but it’s like WinRAR: it works without paying, just with the occasional pop-up asking you to pay. Otherwise, I realized something very funny was happening. I was trying to make my Sublime Text editor look like VSCode, the very editor I was trying to avoid!
This is the part of the blog where I admit something: VSCode’s interface is the one I have gotten used to the best. The sidebars, the terminal, the Git workflow, everything was so intuitive to me, a beginning programmer. One of my very favorite features I LOVED about VSCode is the fact that the Git tab they had. As someone who barely understood Git (and still barely does), this was a godsend. The company that made Sublime Text had a companion app called Sublime Merge, which was their own Git client, and I tried it out, and while I liked it, I didn’t like the fact it was a separate app. So, I did what any sane person would do: I decided to learn the commands of Git, so I could use it in the CLI.
As for the other things I wanted to configure, they were easy enoughâ„¢, given a lot of time and head smashing. I managed to figure out how to set up LSP, and cook up a spicy theme. (I ported the one I was using in VSCode, and made a little modifications.) I also managed to get Terminus, a shell for Sublime Text. I thought it was perfect, and surely this would be the only editor I would use from now on…
Getting bored and trying something new, again
Recently, around April of this year, I experienced the thing with Sublime Text that I had experienced with VSCode a couple of years earlier: I was getting sick of it, and I wanted to try something new. Seeking suggestions from the community, I asked around in a couple of discord servers, and a lot of people of suggested helix, lapce, and neovim.
This is where I go on a little side rant about vim: I like vim. It’s not that it is bad. In fact, I use it for the quick config edit, because of it how it is. Unfortunately, it’s just not to my liking. It’s very interesting, for sure, especially with the modal interface, but it is not what I want for an editing experience, having tried it out. Besides, this is probably just me, but I spent a lot of time trying to configure something, so I gave up trying to use it at all.
Helix was pretty similar to vim, so I threw that out of the window. Lapce was pretty cool, but it felt way too much like VSCode to my liking. Also lapce was still a pretty young editor, and had some features I was waiting to use. so that was something I put as a maybe later.
Then, I remembered about a certain editor… Emacs. This was an editor which I seen memes about on the Internet, about “ha ha you can do everything in Emacs”, and how you can have an email reader and effing everything in there. But it was different, and from what I’d seen, it would be something I like. After some looking around, it seemed like Doom Emacs provided sane defaults, so I installed it and got to work. After the installation, and setting up the LSP, I have something that suits my tastes. It also has a lot of extensions, so I could use this in the future for other things too.. like writing this blog.
Conclusion
I think I will use a combination of Emacs and Sublime Text in the future, but who knows? Maybe I’ll switch again…