Move Emacs documents to //emacs
These documents outline some of my Elisp conventions and ideas. As such, I think //emacs should host them.
This commit is contained in:
parent
d0d331df09
commit
46d817665f
3 changed files with 0 additions and 0 deletions
20
emacs/elisp-conventions.md
Normal file
20
emacs/elisp-conventions.md
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# Elisp Conventions
|
||||
|
||||
Some of this aligns with existing style guides. Some of it does not.
|
||||
|
||||
In general, prefer functions with fixed arities instead of variadic
|
||||
alternatives.
|
||||
|
||||
- Namespace functions with `namespace/function-name`
|
||||
- Use `ensure`, `assert`, `refute` whenever possible.
|
||||
- When talking about encoding and decoding, let's use the words "encoding" and
|
||||
"decoding" rather than the myriad of other variants that appear like:
|
||||
- `marshalling` and `unmarshalling`
|
||||
- `parse` and `deparse`, `serialize`, `stringify`
|
||||
- `unpickle` and `pickle` (Python)
|
||||
- `from-string` and `to-string`
|
||||
- TODO: Add more examples of these; there should be close to a dozen.
|
||||
- Annotate assertions with `!` endings.
|
||||
- Prefer the Scheme style of `predicate?`
|
||||
- Variadic functions *should* encode this by appending * onto their
|
||||
name. E.g. `maybe/nil?*`
|
||||
47
emacs/keybindings.md
Normal file
47
emacs/keybindings.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# Keybindings
|
||||
|
||||
Since I'm using Emacs to manage most of my workflow, all of the keybindings
|
||||
should be defined herein and -- in order to scale -- order must be imposed. This
|
||||
can help avoid KBD collisions and improve my ability to remember each KBD.
|
||||
|
||||
See `kbd.el` for the programmatic encoding of these principles.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
When in doubt, use Emacs's `read-key` and `read-event` to learn what signal
|
||||
you're sending Emacs.
|
||||
|
||||
### Super-
|
||||
|
||||
- EXWM X11 windows are not processing `s-`.
|
||||
- EXWM X11 windows are not processing `<M-ESC>`.
|
||||
|
||||
### Super-Ctrl-
|
||||
|
||||
I'm reserving `C-s-` for opening X11 applications.
|
||||
|
||||
- `terminator`: `t`
|
||||
- `google-chrome`: `c`
|
||||
|
||||
## Emacs nouns
|
||||
|
||||
Most of my keybindings should be organized according to their function, which in
|
||||
turn should be related to the following Emacs nouns.
|
||||
|
||||
- `workspace`: As defined by EXWM.
|
||||
- `frame`: What non-Emacs users would call a "window". Currently my workflow
|
||||
doesn't use or rely on Emacs frames.
|
||||
- `window`: A vertical or horizontal split within an Emacs frame.
|
||||
- `buffer`: Anything storing text in memory.
|
||||
|
||||
## Prefixes and their meanings
|
||||
|
||||
TODO: Have a system for leader-prefixed KBDs, chords, and prefixed chords.
|
||||
|
||||
- `s-`: Switching between named workspaces. Right now, super is too overloaded
|
||||
and would benefit from having more deliberate keybindings.
|
||||
- `C-M-`: Window sizing
|
||||
- `M-{h,j,k,l}`: Window traversing
|
||||
- `M-{\,-}`: Window splitting
|
||||
- `M-q`: Window deletion
|
||||
- `<leader>-q`: Window deletion
|
||||
22
emacs/snippets.md
Normal file
22
emacs/snippets.md
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Snippets
|
||||
|
||||
Specifying snippets that I plan on defining for most of the programming
|
||||
languages with which I work. I hope this will serve as a checklist of language
|
||||
constructs I should support when adopting a new language.
|
||||
|
||||
## Shared language features
|
||||
|
||||
These are language features that should be available across most of the
|
||||
languages that I'm hoping to support.
|
||||
|
||||
- `ld`: anonymous functions (i.e. lambdas)
|
||||
- `fn`: named function definition
|
||||
- `var`: variable definition
|
||||
|
||||
## Miscellaneous other language KBDs
|
||||
|
||||
Some of this is related to language tool must-haves, which may need to be a
|
||||
separate document.
|
||||
|
||||
- `<leader>d`: Show documentation
|
||||
- `<leader>x`: Evaluate expression (works mostly for LISPs)
|
||||
Loading…
Add table
Add a link
Reference in a new issue