My Emacs setup
Live, litterate version of my emacs configuration configuration

This article discuss and define my Emacs configuration. It is meant to be a live and literate version, using org-mode and it is tangled into a files in my Emacs configuration.

This document is largely inspired by Emacs literate configuration out-there, especially bauer as I also use NixOS most of my time, but want a configuration that works on non-nixos systems.

1 TODO Introduction

2 TODO Key binding

2.1 Conventions

C-c letter is reserved for user, i.e. feel free to use them in your user configuration. F5 to F9 is also reserved for user

See Key Binding Conventions in Emacs manual. Also : Marcin Borkowski: 2019-03-18 Free Emacs key bindings.

2.2 TODO My strategy

  • Create a table

Main idea is to use the user-reserved ones, aka C-c letter. As an example, for org-mode :

  • C-c o is the prefix, C-c o a for agenda, C-c o c for capture, C-c o r refile prefix, …

2.2.1 NEXT keybinding table

prefix “mode”
<F1> Terminal (? — should be eshell and more)
<F2> (?) zoom, split
<F3> Register macro(s)
<F4> Plays macro(s)
<F5> revert-buffer
<F6> notmuch
<F7> N/A
<F8> N/A
<F9> N/A
<F10> Global menu (context)
<F11> org-clock-goto (?)
<F12> org-agenda
C-z N/A
C-c a N/A
C-c b bookmark (bm, …)
C-c c N/A
C-c d N/A (dired)
C-c e N/A (editng)
C-c f X (files ?)
C-c g N/A
C-c h help (helpful, …)
C-c i N/A
C-c j N/A
C-c k N/A
C-c l N/A
C-c m N/A
C-c n navigation (avy, …)
C-c o org-mode
C-c p projects (projectile, ?)
C-c q N/A
C-c r N/A
C-c s X string and search (?)
C-c t X ??
C-c u N/A
C-c v revision control (vcs, magit)
C-c w window
C-c x major mode hydra
C-c y snippets (yasnippets)
C-c z N/A

3 TODO Compilation

Compiling in Emacs has it’s own mode and all… It’s cool but there is few shortcomings.

3.1 Multiple compile buffers

One of those shortcomings is that there is only one *Compile* buffer for the whole Emacs session… When using emacs daemon, this means there is only one *Compile* buffer for all… which tends to suck.

It’s actually pretty simple, there is a function that can be defined that will be called to create the compilation buffer name : compilation-buffer-name-function.

(setq compilation-buffer-name-function (lambda (mode) (concat "*" (downcase mode) ": " (projectile-project-name) "*")))

4 References

Emacs (Org mode 8.0.3)

Vincent Demeester. Last Updated 2019-12-23 Mon 19:53 (exported 2020-01-05 Sun 15:07).