Things that are worth the Bloat #3: emacs
OH NO, I’m using X!
This one is not going to fit for everyone, and I’m not going to cover everything that is possible with GNUemacs, because this would be the longest post in the history of posts. I will leave a few links, and you’re more than welcome to start the journey on your own should you so desire.
The reason I have emacs on every single install of any OS that I have is that it’s so much more than just a text editor. As I mentioned before, vim is actually a more efficient way to deal with huge blocks of code as far as my opinion is concerned. What emacs does well, is… well, everything. When working outside of X, it is totally reasonable to never leave emacs. I guess that working in X would apply the same way, but I often only install the nox-emacs, and since I’m very comfortable with using keybinds, I don’t need any menu support. I tend to use what I have regardless of where I am and what I’mm doing.
Still, having emacs is the one constant between my Sid/BBQ/killx/Arch/whatever installs. I keep my emacs init file pushed into a git repo so that when I’m starting work on a new project, I can install the base package, curl my files down from the cloud (if I don’t plan to install git), and be in a familiar working environment. In a graphical or cli environment, emacs provides me file-management, syntax-highlighting, irc, email, RSS feed reading, a calculator, basic lisp interpreter, frames and windows, and a myriad of other tools. With a few simple plug-ins, it becomes a multi-tool for doing everything. (I strongly recommend emacs-w3m for web-browsing if you’re looking for technical documents.)
It may not be the BEST tool for each task, but it’s a huge toolkit for many individual tasks. This make it one of the things that I truly am not sure that I do without. The learning curve is pretty steep. Oh, it’s simple enough to just edit text, but once you start shifting buffers and launching scripts from it, things do increase in difficulty a bit. One of its biggest strengths is that it is actually configured via emacs-lisp, a legitimate lisp dialect similar to common-lisp. This allow it to be infinitesimally extensible. This is a big advantage when using a multi-tool.
I won’t bore you with the minute details, but if you’re willing to take the next few years to learn what may be one of the most flexible tools in existence, check out the emacs wiki. There should be plenty to keep you busy.