Skip to content

humanfactors/.emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Michael’s .emacs.d

Logo

This is my personal Emacs configuration. It is heavily customised and has a lot of room for optimization. Nevertheless, I believe it is relatively well organised, with a modular design. It is geared towards Windows (1st) and Linux (2nd). It’s made for scentific use, and aims to be: quick, minimal, logical, and maintainable.

I do not “live in Emacs”, but I do use it almost every day (for better or worse). To be honest, Emacs is one of those tools that can send me up the wall, and I’m no expert with Emacs Lisp. Yet, I am caught in the spiral and Emacs will remain with me, so I maintain this configuration.

I dream of the day Emacs has rich-text buffer support (e.g., copy paste with formatting) and multi-threading. My dream will probably never come true.

Features

  • ✅ Modular design and automatic setup
  • ✅ Evil-mode, but retains full Emacs defaults in insert mode
  • ✅ Fully useable R config
  • ✅ Confusing set of custom binds and functions I’ve added over the years
  • ✅ Legacy code I’m too worried to remove
  • ✅ Ripped features straight from Spacemacs, Doom and friends.

Usage Notes

The configuration files are in ./elisp/ and each .el is somewhat cryptically named, but the load order of the files is shown in .init.el.

  • 📦 mdw-packages.el ⇨ Initial installation of core packages — first time setup.
  • 🛠 mdw-defaults.el ⇨ Defaults that are in theory directly portable to a vanilla Emacs config
  • 🎨 mdw-vibes.el ⇨ Theme, fonts and anything pretty.
  • 🛠 mdw-utilities.el ⇨ Misc accumulated functions from the internet or old configs
  • 📦 mdw-modes.el ⇨ All use-package configurations and mode configuration, including
  • 🗒 mdw-org.el ⇨ Orgmode stuff
  • 🛠 mdw-ess.el ⇨ R settings
  • mdw-keybinds.el ⇨ All keybinds, including general-define-key stuff.

Preview

docs/preview.png

docs/writing-preview.png

Notes most likely for me

Note that while Evil is installed, Emacs is the default. Evil insert mode reverts to Emacs mode. Therefore, I don’t have a vim insert state.

Keybinds etc

  • C-u M-^ - delete-indentation and pull up
  • (global-set-key (kbd "C-c C-\\") 'xah-shrink-whitespaces)
(use-package expand-region
  :bind (("M-[" . er/expand-region)
         ("C-(" . er/mark-outside-pairs)))

https://github.com/noctuid/general.el#which-key-integration

(general-define-key
 :prefix "SPC"
 :keymaps 'normal
 ;; unbind SPC and give it a title for which-key (see echo area)
 "" '(nil :which-key "my lieutenant general prefix")
 ;; bind nothing but give SPC f a description for which-key
 "f" '(:ignore t :which-key "file prefix")
 ;; use a cons as a replacement
 "g" '(:ignore t :wk ("g-key" . "git prefix"))
 ;; toggle lispy; use a function as a replacement to show if currently on
 "l" '(lispy-mode :wk my-lispy-which-key-display)
 ;; for a keymap, only the keys will be matched;
 ;; :no-match-binding is not necessary
 "p" '(:keymap projectile-command-map :wk "projectile prefix")
 ;; don't display this keybinding at all
 "z" '(hidden-command :wk t)
 ...)

About

A minimalist Windows centric, modern-ish always evolving init.el et al.

Topics

Resources

Stars

Watchers

Forks