This is my Emacs configuration repository. It pairs with my dotzshrc repository. The install.rb script of the dotzshrc repository uses this repository. For implementation reasons, the emacs.d
directory contains the init files that I link into my $HOME/.emacs.d
directory.
For those curious, I wrote Why I Chose Emacs as My New Text Editor // Take on Rules.
Below is the top-level directory:
> tree -L 1 . ├── README.org ├── emacs.d ├── lib ├── random-tables └── templates 3 directories, 2 files
The files and directories:
- README.org
- This file.
- emacs.d
- A directory that contains files symlinked into
$HOME/.emacs.d
directory. - lib
- Some scripts I’ve written to help with my Emacs configuration.
- random-tables
- Fodder for gaming, really not very well developed.
- templates
- Templates for the Emacs tempel package.
There are two “primary” files to consider in ./emacs.d
:
- init.el
- The file evaluated when Emacs launches.
- early-init.el
- The file evaluated early on when Emacs launches.
The init.el
file requires the various files in my emacs.d
directory. As of <2022-11-19 Sat> I shifted from Literate configuration to a Emacs Lisp configuration. I appreciate being able to jump to the definition and edit directly; something that wasn’t immediately obvious with Literate configuration.
Organizing concepts is an interesting challenge, as packages interact in a multi-dimensional manner. Each of my jf-<concept>.el
has a rudimentary commentary.
- abbrev_defs
- Common typos auto-corrected
- early-init.el
- The preamble for starting Emacs
- hide-comnt.el
- A silly little mode to hide comments
- init.el
- Most everything of or related to my Emacs configuration.
- [[file:emacs.d/dig-my-grave.el][dig-my-grave.el]
- An `org-mode` package that extends the triple back tick by providing a prompt for block context.
- org-charsheet.el
- A work-in-progress package for managing Org Headline metadata (with a focus on table top role-playing games).
On <2023-10-20 Fri> I began refactoring some keybindings. There were functions that got “prime” key chords but were not things I’d frequently use. As such, I’m taking a two-fold approach:
- Create and document keybinding prefixes
- Rely on the
which-key
package to provide bits of guidance.
Those keybinding prefixes are as follows:
C-c y
:: Yank something; as insert some text.C-c w
:: Wrap something; as in wrap the current region by inserting text before and after the region.C-c f
:: Find something; search the file or project for something.C-c j
:: Jump to something; I haveC-j
boundavy-goto-char-timer
as a quick in buffer jumper. AndC-c C-j
asjf/project/jump-to-task
; which provides another context
There are foundational keys that are deeply bound to muscle memory:
C-s
- For
consult-line
; a mini-buffer search and go to line within file. Akin to a feature I used in TextMate, Sublime, and Atom. s-t
- For
consult-projectile
; a very potent navigation through buffers, files, and projects.