¶Updates
- Updated my Emacs configuration to remove Straight.el and setup.el, now back to
use-package
andpackage.el
in Emacs 29! Jeff Bowman has been working hard on Crafted Emacs v2! We’ll discuss it next Friday, but until then, check it out here:
https://github.com/SystemCrafters/crafted-emacs/tree/craftedv2alpha
Support the channel!
Buy me a coffee at https://ko-fi.com/SystemCrafters Buy Mastering Emacs with this link https://www.masteringemacs.org/r/systemcrafters
¶Moving to Matrix, Feedback Wanted!
I’ve been mulling over this for a while and I think I’m finally ready to proceed: the System Crafters community chat will be moving from Discord to Matrix and IRC!
Here are some things I’d like to know:
If you’re interested in trying out Matrix, check out Alphapapa’s excellent Ement.el package:
https://github.com/alphapapa/ement.el
From the System Crafters Discord:
- What were your favorite channels? What should we replicate?
- There are “official” channels for Emacs and Guix on Matrix, so should we have SC versions of those channels? Maybe not?
XMPP can bridge to IRC via Biboumi!
IRC cloaks on Libera.Chat: https://libera.chat/guides/cloaks
More info on how to connect to IRC/Matrix: http://systemcrafters.chat
¶Emacs Packages for Modal Editing
- god-mode: https://github.com/emacsorphanage/god-mode
- boon: https://github.com/jyp/boon
- meow: https://github.com/meow-edit/meow
- xah-fly-keys: https://github.com/xahlee/xah-fly-keys
- Hydra? Viper? Avy?
¶God Mode
This package is pretty nice! You can just press single letters for many vanilla Emacs key bindings. Check the README of the repository for more information.
(straight-use-package 'god-mode) (global-set-key (kbd "<escape>") #'god-local-mode) (define-key god-local-mode-map (kbd "i") 'god-local-mode)
¶Boon
(straight-use-package 'boon) (require 'boon-qwerty) (turn-on-boon-mode)
¶Meow
Meow is definitely worth trying! Run the tutorial with M-x meow-tutor
after setting up this configuration:
(straight-use-package 'meow) (defun meow-setup () (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty) (meow-motion-overwrite-define-key '("j" . meow-next) '("k" . meow-prev) '("<escape>" . ignore)) (meow-leader-define-key ;; SPC j/k will run the original command in MOTION state. '("j" . "H-j") '("k" . "H-k") ;; Use SPC (0-9) for digit arguments. '("1" . meow-digit-argument) '("2" . meow-digit-argument) '("3" . meow-digit-argument) '("4" . meow-digit-argument) '("5" . meow-digit-argument) '("6" . meow-digit-argument) '("7" . meow-digit-argument) '("8" . meow-digit-argument) '("9" . meow-digit-argument) '("0" . meow-digit-argument) '("/" . meow-keypad-describe-key) '("?" . meow-cheatsheet)) (meow-normal-define-key '("0" . meow-expand-0) '("9" . meow-expand-9) '("8" . meow-expand-8) '("7" . meow-expand-7) '("6" . meow-expand-6) '("5" . meow-expand-5) '("4" . meow-expand-4) '("3" . meow-expand-3) '("2" . meow-expand-2) '("1" . meow-expand-1) '("-" . negative-argument) '(";" . meow-reverse) '("," . meow-inner-of-thing) '("." . meow-bounds-of-thing) '("[" . meow-beginning-of-thing) '("]" . meow-end-of-thing) '("a" . meow-append) '("A" . meow-open-below) '("b" . meow-back-word) '("B" . meow-back-symbol) '("c" . meow-change) '("d" . meow-delete) '("D" . meow-backward-delete) '("e" . meow-next-word) '("E" . meow-next-symbol) '("f" . meow-find) '("g" . meow-cancel-selection) '("G" . meow-grab) '("h" . meow-left) '("H" . meow-left-expand) '("i" . meow-insert) '("I" . meow-open-above) '("j" . meow-next) '("J" . meow-next-expand) '("k" . meow-prev) '("K" . meow-prev-expand) '("l" . meow-right) '("L" . meow-right-expand) '("m" . meow-join) '("n" . meow-search) '("o" . meow-block) '("O" . meow-to-block) '("p" . meow-yank) '("q" . meow-quit) '("Q" . meow-goto-line) '("r" . meow-replace) '("R" . meow-swap-grab) '("s" . meow-kill) '("t" . meow-till) '("u" . meow-undo) '("U" . meow-undo-in-selection) '("v" . meow-visit) '("w" . meow-mark-word) '("W" . meow-mark-symbol) '("x" . meow-line) '("X" . meow-goto-line) '("y" . meow-save) '("Y" . meow-sync-grab) '("z" . meow-pop-selection) '("'" . repeat) '("<escape>" . ignore))) (require 'meow) (meow-setup) (meow-global-mode 1)
¶Repeat Mode
This is not really a modal editing feature, but you can repeat key bindings easily.
Check out Karthik’s blog about it: