Skip to content

davep/.emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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/.