Skip to content

davep/.emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f2bdfe1 Β· Mar 2, 2025
Jun 10, 2020
Jun 28, 2017
Nov 25, 2024
Mar 2, 2025
Nov 22, 2024
Mar 2, 2025
May 3, 2017
Sep 12, 2024
Apr 16, 2023

Repository files navigation

.emacs.d

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+Meta+F11 Nuke buffers
F12 F12 List personal key bindings
F12 h Open eshell
C+x y 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 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
F12 f d Lookup dictionary definition of word under cursor
F12 / d Lookup dictionary definition of word
F12 ` pinboard
Binding Function
F12 f g Find files with ripgrep
F12 f l Find files with locate
F12 f r Open a recent file
F12 f x Cross reference thing under cursor
F12 f Meta+x Find a recently-used command
F12 f c w Find a web colour
F12 f c e Find an Emacs colour

Moving around

Binding Function
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

Packages

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

Magit

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
F12 g i View issues (via Forge)

Eglot

Binding Function
F12 e r Rename symbol under point
F12 e f d Find declaration of symbol under point
F12 e f i Find implementation of symbol under point
F12 e f r Find references of symbol under point
F12 e f t Find type defnition of symbol under point
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 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

Licence

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 http://www.gnu.org/licenses/.