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.
What follows is a non-comprehensive collection of key-binding details.
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 |
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 |
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 |
F12 g i | View issues (via Forge) |
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 |
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/.