Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeremyf/dotemacs
https://github.com/jeremyf/dotemacs
dotfiles emacs
Last synced: 22 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/jeremyf/dotemacs
- Owner: jeremyf
- Created: 2021-08-27T18:49:15.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T21:12:01.000Z (6 months ago)
- Last Synced: 2024-05-22T22:15:00.595Z (6 months ago)
- Topics: dotfiles, emacs
- Language: Emacs Lisp
- Homepage:
- Size: 7.21 MB
- Stars: 40
- Watchers: 4
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
#+title: README for Dotemacs
#+AUTHOR: Jeremy Friesen
#+EMAIL: [email protected]
#+STARTUP: showall
#+OPTIONS: toc:3This is my Emacs configuration repository. It pairs with my [[https://github.com/jeremyf/dotzshrc/][dotzshrc repository]]. The [[https://github.com/jeremyf/dotzshrc/blob/main/install.rb][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 [[https://takeonrules.com/2020/10/18/why-i-chose-emacs-as-my-new-text-editor/][Why I Chose Emacs as My New Text Editor // Take on Rules]].
* The Structure
:PROPERTIES:
:ID: 45A067AA-0193-4D6E-A77F-8E02B088DCBC
:END:Below is the top-level directory:
#+BEGIN_EXAMPLE
> tree -L 1
.
├── README.org
├── emacs.d
├── lib
├── random-tables
└── templates3 directories, 2 files
#+END_EXAMPLEThe 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 [[https://github.com/minad/tempel][Emacs tempel package]].* The emacs.d Directory
:PROPERTIES:
:ID: F12B8506-CA7F-4BC7-92DA-077C96AD2B80
:END:There are two “primary” files to consider in =./emacs.d=:
- [[file:emacs.d/init.el][init.el]] :: The file evaluated when Emacs launches.
- early-init.el :: The file evaluated early on when Emacs launches.** Digging Further into emacs.d
:PROPERTIES:
:ID: 9E740E8A-2098-41A5-B20F-72E1321AA97E
:END: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-.el= has a rudimentary commentary.
- [[file:emacs.d/abbrev_defs][abbrev_defs]] :: Common typos auto-corrected
- [[file:emacs.d/early-init.el][early-init.el]] :: The preamble for starting Emacs
- [[file:emacs.d/hide-comnt.el][hide-comnt.el]] :: A silly little mode to hide comments
- [[file:emacs.d/init.el][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.
- [[file:emacs.d/org-charsheet.el][org-charsheet.el]] :: A work-in-progress package for managing Org Headline metadata (with a focus on table top role-playing games).** Keybinding Prefixes
:PROPERTIES:
:ID: EADA236A-4612-42D2-B5A7-7F73408C2AB8
:END: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:
1. Create and document keybinding prefixes
2. Rely on the =which-key= package to provide bits of guidance.Those keybinding prefixes are as follows:
1. =C-c y= :: *Yank* something; as insert some text.
2. =C-c w= :: *Wrap* something; as in wrap the /current region/ by inserting text before and after the region.
3. =C-c f= :: *Find* something; search the file or project for something.
4. =C-c j= :: *Jump* to something; I have =C-j= bound =avy-goto-char-timer= as a quick in buffer jumper. And =C-c C-j= as =jf/project/jump-to-task=; which provides another contextThere 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.