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