emacs

My emacs godmode indicators and Elisp equivalent of defonce

Godmode Godmode1 is a handy mode that aims to ease the stress on otherwise stretching fingers by basically holding C- or M-C for you. A common difficulty is knowing if you are currently in Godmode or not, especially since I no longer use doom-modeline2. The first solution that is recommended is to change your cursor depending on whether you are in the mode or not. For years, back when I used godmode more rarely, this was enough.

How I Switched to DVP Dvorak Keyboard Layout as a Linux EXWM Emacs User

My heavy emacs use was both the motivation and the obstacle to switching to a new keyboard layout. Motivation because my life is keyboard driven, so there are healh and efficiency reasons to want to make the best of my keyboard experience. Obstruction because so much of my emacs and typing proficiency is in my muscle memory, and this might be lost if I make a drastic change. Well, rather than Colemaks or QwertZ, which aim to maintain most of your muscle memory, I decided to go whole hog and do Dvorak.

org-agenda no longer clocks out and in

For years my workflow has centered in org-agenda and I would go from one clocked item to the next. For instance, I would be clocked into my “Emails” task, which never closes, and then eventually move down in the agenda to “Task B”. Then I hit C-x TAB to clock in. It correctly queries for a comment on the task I’m leaving but no longer clocks me in to the new task as I’d asked.

Two modes on loading a file

** This question was posted to the emacs stackexchange. 1 Clojure files should open in Clojure-mode. I also have Clojure files that contain color info and are used to generate my styles; they live under a /styles path. For these files, I want them to have both clojure-mode (a major mode) and rainbow-mode (a minor mode). I can implement this on a file-by-file basis be starting such files with a line like this:

How to get readable mode in emacs w3m?

I’ve made the switch to w3m from eww, which has been great overall since the eww thread-blocking was insufferable. However, one of the biggest benefits of eww was the ability to engage a readability mode that cut all but the content of the page, which is also a feature I use a lot on Firefox on my phone. A previous answer from 20201 did something like this but was referencing elfeed, which has nothing to do with my use case, and used a bootstrap Python script.

dired no hiline

I was trying to make sure that hl-line mode (to highlight a line) is not on in my dired buffers without changing its presence anywhere else, since it messes up display of my diredfl permission faces. Unfortunately, the following didn’t work, probably because “setting” isn’t the same thing as calling the variable. What was the best way to selectively disable hl-line-mode? There were many good answers on Reddit1. (add-hook 'dired-mode-hook (lambda () (setq-local global-hl-line-mode nil hl-line-mode nil) ;; I wasn't sure on the relationship between ;; these two, or even which one was being used )) Learning along the way: global- is unrelated to hl-line-mode It turns out that global-hl-line does not share anything in common with hl-line-mode other than the end result, so altering one does not alter the other.

Tip: BBDB mode for contact management

BBDB1 is one of those libraries that has been around for so long it would be highly irregular if we weren’t talking about Emacs. The size and age of the thing is what originally scared me away from it in favor of org-contacts2, which had the advantage of being orgmode but was deprecated a long time ago. With BBDB you don’t usually view the elisp database that lies beneath, instead using its robust interface to interact.

Anzu mode for incremental find-and-replace

Shared on the Emacs Tip & Tricks thread 1. Anzu is great for previewing your query-replace as you go; just remember not to attempt it on HUGE files as the preview (or at least, result counting) gets problematic. Also remember that if you are doing a regexp replace that has side-effects (e.g. incrementing a counter), the preview itself will also do all those side effects before you run the actual replace.

Clojure in Action: Teaching new Clojure devs on our work applications

For reasons of internal review but also for the benefit of the community, at work I’ve started recording and making public some of our work meetings, where we build web applications using a full-stack Clojure setup derived (years ago) from Luminus. Several of our team members are brand new to Clojure, so we deal with lots of basics. Questions are welcome! https://www.youtube.com/playlist?list=PLRoUFLqvFD3MRYXTnXQyl-z_svY2gDhFi

What can Emacs give me in 2021? A response to the Mother of All Emacs Papers

Image above NOT a title for Burrough’s 1912 story “A Princess of Mars” 1 This is an essay inspired by Greenberg’s 1996 “Mother of All Emacs papers"2. We learn in that paper that Emacs was born of a necessity for a text tool that had to solve several problems: Hardware (memory space) limitations Costly, lengthy compilation times for other programming languages Steep learning curve compared to arcane character-editing tools, which were painfully close to the assembler and showed it It succeeded in all of these, and after we look at how it succeeded we’ll be ready to think about its viability in an age where the problems have changed completely.