Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/humanfactors/.emacs.d

A minimalist Windows centric, modern-ish always evolving init.el et al.
https://github.com/humanfactors/.emacs.d

emacs

Last synced: about 23 hours ago
JSON representation

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

Awesome Lists containing this project

README

        

#+TITLE: Micah's .emacs.d

#+html: 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

#+ATTR_HTML: :alt A really messy code base
[[file:docs/preview.png]]
#+ATTR_HTML: :alt When I need to shut up and fucking write something (example here only).
[[file: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)=

#+begin_src emacs-lisp
(use-package expand-region
:bind (("M-[" . er/expand-region)
("C-(" . er/mark-outside-pairs)))
#+end_src

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

#+begin_src emacs-lisp
(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)
...)
#+end_src