Why I Use Emacs, And Why It Matters
As of the new year I've made a concious effort to work out all the proprietary
software form my workflow, the biggest one being VSCodium. To start off I moved
my daily driver from beeing my MacBook 2018 model to a ThinkPad x200 configured
with Arch + i3-gaps and a suite of custom written bash scripts to automate my
development, so from that I had to think of alternatives to what I used on my
MacBook and make sure to check licenses as well as see how well they ran on
older hardware. My file manager is now
ranger depending on what I
feel like, my Image viewer is suckless
sxiv, PDF viewer
zathura, and many
other alternatives that basically are CLI-based applications that work well with
or along-side suckless
dmenu. The hardest thing for me was choosing an editor
for working on larger projects (such as this site for example) as Vim or NeoVim
is perfect for bash scripting or smaller projects I needed something that would
be an all-in-one tool.
On MacOS I went from Sublime Text -> Atom -> VSCode -> VSCodium, and while VSCodium is still the best alternative for GUI work, there's still some things that are proprietary, and some features can still ping back home to Microsoft without your concent. So as I searched online and in books I found the one answer was GNU Emacs as an IDE. I had tried in the past to learn emacs but I found that it was all a bit much for me, and I just wanted something that worked.
Around late January I left the company I had moved across state for and had really nothing lined up, so as I had time to kill looking for work I decided to buy as many programming and tech-related books as I could that I thought were relevant to what I wanted to learn. So I picked up a book on Mastering Emacs and a book on the GNU Linux cookbook with all the default keybinding for emacs inside. From a previous attempt at learning I had downloaded Doom Emacs, which is GNU Emacs with some vim bindings (evil-mode) and with an Melpa (emacs packages) helper already setup. This madde learning even simpler as I didn't have to really worry about setting up this monolith of a program (operating system really).
What's Emacs got that others don't? Emacs allows you complete freedom in what
you wish to do with it, and it's self documenting, meaning when you change
something the documentation can reflect that change. Org-Mode is what seems to
attract most people, and it alone is a fully featured notes, todo, and
scheduling tool that can syncronize with projects. Magit, Emacs' git manager is
as easy as
M-x magit-status to pull up magit,
s to stage file for commit ->
c+c to commit ->
p+u to push tp origin, all in a REPL that drops down so you
never have to touch your mouse or leave that screen you wereon. Everything is can
be modified, anything can work the way you want.
So why go through the trouble of learning Emacs and having to configure things, why linux, etc. These questions I've gotten before, and to answer simply is that I like my stuff a certain way, so I should be able to configure to my liking. As a programmer or tickerer you should take pride in your machine and your ecosystem of an operating system. Right now I have everything a keybinding away in either Emacs or on Arch so I can launch whatever I need quickly. I take pride in all I've done to configure my system so it feels second-nature to me, and while others just want something that works, that's completly fine. Programming and configuring system-related stuff is a form of Zen for me, so it brings me pleasure knowing I can load a youtube video in whatever format, have it float whereever on my screen and do this all with a couple keystrokes and cooperate with dmenu. The main reason though that I go through the "pain" of going through Free/Libre or alternatively open-source software is that I care about my freedoms as a user, I don't want to be the product I just want to make things without having to worry about licenses or insecure practices (looking at you microsoft/google products). The fact that I can write my LaTeX papers and compile/preview them without having to move to another window or screen is really nice, same goes for compiling C/Lisp code, I just use the REPL and follow the keybindings to execute the needed comand.
If you're wondering why I chose Doom emacs then it's because I could handle my configs between multiple machines easier, also the faster loading times and preconfigured MELP support helps.
Overall, I've found Zen in Emacs, a kind of Zen that comes with having the freedom to do whatever with my text editor and subsequently the things I edit. I have the freedom to do as I please with my software, create whatever I like without being inhibited by a malicious feature. You get the idea, there is the right tool for the job, sometimes it's Vim and sometimes it's Emacs but at least it isn't Nano.
I implore others to do your own research on emacs and see if it's right for you, which understandably may not be so. I have resources regarding Emacs in my personal Wiki so take a glance at those if you're interested.
Below are some links regarding emacs on my wiki:
Here's some related post regarding the subject of minimalism and such: