Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/davep/.emacs.d

My personal emacs config
https://github.com/davep/.emacs.d

configuration dot-emacs dotfiles editing elisp emacs emacs-lisp

Last synced: 11 days ago
JSON representation

My personal emacs config

Awesome Lists containing this project

README

        

# .emacs.d

My personal Emacs config.

It makes heavy use
of [`use-package`](https://github.com/jwiegley/use-package), downloading
required packages from [elpa](https://elpa.gnu.org/)
and [melpa](https://melpa.org/). Even my own personal packages (which make
no sense being contributed to public package archives) live
in [a package archive](http://blog.davep.org/delpa/).

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`](http://blog.davep.org/2016/05/26/starting_fresh_with_gnu_emacs.html).
About a year later I made a few more significant changes
to
[make things work even better](http://blog.davep.org/2017/04/01/another_revamp_of_my_emacs_config.html),
with
[another big revamp to switch from using `customize` happening about 3 months later](http://blog.davep.org/2017/07/13/more_revamping_of_my_emacs_config.html).

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*`](https://github.com/davep/itch.el) |
| F6 | Switch to next buffer |
| Ctrl+F6 | Process list |
| Meta+F6 | Show iBuffer |
| F11 | [Show current Emacs uptime](https://github.com/davep/uptimes.el) |
| F12 F11 | [Show Emacs uptimes](https://github.com/davep/uptimes.el) |
| Ctrl+Meta+F11 | [Nuke buffers](https://github.com/davep/nuke-buffers.el) |
| 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.](https://github.com/akicho8/string-inflection) |
| F12 w | Open `eww` (web browser) |
| F12 o a | Org agenda view |
| F12 o t | Org todo view |
| F12 q | [requote](https://github.com/davep/requote.el) |
| F8 | [neotree](https://github.com/jaypei/emacs-neotree) |
| F12 i e | [Add an end-of-file marker](https://github.com/davep/end-it.el) |
| F12 ? w | [woman](https://www.gnu.org/software/emacs/manual/html_mono/woman.html) |
| F12 f d | Lookup dictionary definition of word under cursor |
| F12 / d | Lookup dictionary definition of word |
| F12 ` | [pinboard](https://github.com/davep/pinboard.el) |

### [Finding things](https://github.com/abo-abo/swiper)

| 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"](https://github.com/davep/moving.el) |
| End | [Context-aware "end"](https://github.com/davep/moving.el) |
| Super+Left | [Context-aware "home"](https://github.com/davep/moving.el) |
| Super+Right | [Context-aware "end"](https://github.com/davep/moving.el) |
| 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](http://blog.davep.org/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 |

### [boxquote.el](https://github.com/davep/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` |

### [insert.el](https://github.com/davep/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](https://melpa.org/) 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](https://github.com/davep/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 .

[//]: # (README.md ends here)