.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 |
| F7 | List personal key bindings |
| F11 | Show current Emacs uptime |
| Meta+F11 | Show Emacs uptimes |
| Ctrl+F11 | Show binary clock |
| Ctrl+Meta+F11 | Nuke buffers |
| F12 h | Open eshell |
| F12 k | Browse the kill-ring |
| F12 r | Open elisp REPL (ielm) |
| F12 w | Open eww (web browser) |
| F12 x | Open wttrin (as in "view wX") |
Moving around
| Binding | Function |
|---|---|
| Meta+g | Goto line |
| 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 |
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 |
boxquote.el
| 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 |
cheat-sh.el
| 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 |
insert.el
| 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 |
winsplit.el
| 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/.