My personal emacs config
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


My personal Emacs config.

It makes heavy use of use-package, downloading required packages from elpa and melpa. Even my own personal packages (which make no sense being contributed to public package archives) live in a package archive.

The current look of my config started life in early 2016 when I killed off my original ~/.emacs and started using what I think is a cleaner approach via ~/.emacs.d. About a year later I made a few more significant changes to make things work even better, with another big revamp to switch from using customize happening about 3 months later.

As with any good development setup, it's an ongoing process and will continue to evolve. While I obviously am highly unlikely to accept pull requests for this repo, feedback and ideas for how I might improve it are always welcome.

Notable bindings

What follows is a non-comprehensive collection of key-binding details.

General/misc keys

Binding Function
Meta+s Switch to *scratch*
F6 Switch to next buffer
Ctrl+F6 Process list
Meta+F6 Show iBuffer
F11 Show current Emacs uptime
F12 F11 Show Emacs uptimes
Ctrl+F11 Show binary clock
Ctrl+Meta+F11 Nuke buffers
F12 F12 List personal key bindings
F12 e Open eg
F12 h Open eshell
F12 k Browse the kill-ring
F12 r Open elisp REPL (ielm)
F12 s Toggle through camelCase, snake-case, etc.
F12 w Open eww (web browser)
F12 x Open wttrin (as in "view wX")
F12 o a Org agenda view
F12 o t Org todo view
F12 q requote
F8 neotree
F12 i e Add an end-of-file marker
F12 ? w woman

Moving around

Binding Function
Meta+g Goto line
Super+s Forward search symbol at point
Home Context-aware "home"
End Context-aware "end"
Super+Left Context-aware "home"
Super+Right Context-aware "end"
Meta+Left Backward sexp
Meta+Right Forward sexp
Super+Up Backward page
Super+Down Forward page
F12 m b Create bookmark here
F12 m l View bookmarks
F12 m g Go to bookmark


Binding Function
F12 p l List packages
F12 p r Refresh package lists
F12 p t Lint the current buffer as a package
F12 p u Upload current buffer as a package, to delpa


Binding Function
F12 g s Repo status
F12 g l a View log for whole repo
F12 g l f View log for current file


Binding Function
F12 b i boxquote-insert-file
F12 b Meta+w boxquote-kill-ring-save
F12 b y boxquote-yank
F12 b b boxquote-region
F12 b t boxquote-title
F12 b h f boxquote-describe-function
F12 b h v boxquote-describe-variable
F12 b h k boxquote-describe-key
F12 b h w boxquote-where-is
F12 b ! boxquote-shell-command


Binding Function
F12 / / Search cheat-sh, using region if there is one
F12 / l List sheets for a given item
F12 / ? Show cheat-sh help
F12 / s Search cheat-sh
F12 / t Search a specific topic on cheat-sh


Binding Function
F12 i a Insert an autoload cookie for current defun
F12 i f Insert a filename
F12 i m Insert a melpa badge for a package
F12 i s Insert Emacs sexp link quotes around current symbol
F12 i y Insert markdown code for a YouTube video preview
F12 i ; Insert my own style of "break here" comment


Binding Function
Ctrl+c Right Open window to the right of the current window
Ctrl+c Left Open window to the left of the current window
Ctrl+c Up Open window above current window
Ctrl+c Down Open window below current window
Ctrl+c Ctrl+Right Open window to the right of the current window and prompt for a file
Ctrl+c Ctrl+Left Open window to the left of the current window and prompt for a file
Ctrl+c Ctrl+Up Open window above current window and prompt for a file
Ctrl+c Ctrl+Down Open window below current window and prompt for a file


It hardly seems worth having a licence on something that's intended for my own use. However, on the off chance that someone wants to derive from this:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see