209 lines
9.6 KiB
Org Mode
209 lines
9.6 KiB
Org Mode
|
# -*- mode: doom-docs-org -*-
|
|||
|
:PROPERTIES:
|
|||
|
:ID: ca20678f-0f1a-4462-a599-da03f0e16330
|
|||
|
:END:
|
|||
|
#+title: Appendix
|
|||
|
#+subtitle: A glossary of (Doom) Emacs terms, acronyms, & concepts
|
|||
|
#+startup: nonum show2levels*
|
|||
|
|
|||
|
* Glossary
|
|||
|
** General :category:
|
|||
|
- Calendar Version, Calendar Versioning :: See https://calver.org.
|
|||
|
- Semantic Version, Semantic Versioning :: See https://semver.org.
|
|||
|
|
|||
|
** Vim/Evil :category:
|
|||
|
- leader key :: TODO
|
|||
|
- localleader key :: TODO
|
|||
|
|
|||
|
** Environment Variables :category:
|
|||
|
- $DOOMDIR :: The location of the user's private configuration for Doom Emacs;
|
|||
|
usually found in =~/.config/doom= or =~/.doom.d=.
|
|||
|
|
|||
|
- $EMACSDIR :: The location of your Emacs initfile. This is where Doom users
|
|||
|
will have cloned Doom's core to (=~/.config/emacs= or =~/.emacs.d=).
|
|||
|
|
|||
|
** Doom Emacs :category:
|
|||
|
- Doom module :: A toggle-able collection of configuration, packages, and
|
|||
|
functions, made for Doom Emacs.
|
|||
|
|
|||
|
** Emacs :category:
|
|||
|
- ELPA :: Emacs-Lisp Package Archive. Used either to refer to the
|
|||
|
GNU package repository or to all ELPA repositories as an ecosystem (e.g.
|
|||
|
MELPA, Marmalade, etc).
|
|||
|
- MELPA :: ELPA
|
|||
|
- GNU ELPA :: ELPA
|
|||
|
|
|||
|
*** Configurations :category:
|
|||
|
- Emacs bankruptcy :: To reset your Emacs configuration from scratch, usually
|
|||
|
because the old one has gotten too messy or complicated, and working backwards
|
|||
|
would be too much hassle.
|
|||
|
|
|||
|
- Emacs framework :: A foundation for your own Emacs Lisp projects, offering
|
|||
|
tools to make it easier to build on top of it.
|
|||
|
|
|||
|
- Starter kit :: A library of preconfiguration for Emacs, intended to spare you
|
|||
|
the time and effort of configuring Emacs yourself.
|
|||
|
|
|||
|
*** User Interface :category:
|
|||
|
- Emacs buffer :: A [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Buffers.html#Buffers][buffer]] is a space in Emacs memory containing text to be edited.
|
|||
|
Buffers are used to hold the contents of files that are being edited or
|
|||
|
opened; there may also be buffers that are not visiting files they display
|
|||
|
other information like Dired that shows the content of a directory. Each
|
|||
|
buffer, including the current buffer, may or may not be displayed in any
|
|||
|
windows.
|
|||
|
|
|||
|
- Echo area :: The [[https://www.gnu.org/software/emacs/manual/html_node/elisp/The-Echo-Area.html#The-Echo-Area][echo area]] is the last line of the frame. Unless the
|
|||
|
minibuffer is active, this is the zone that shows all the messages Emacs sends
|
|||
|
to the user
|
|||
|
|
|||
|
#+begin_quote
|
|||
|
The *echo area* is used for displaying error messages (see [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Errors.html#Errors][Errors]]), for
|
|||
|
messages made with the `message` primitive, and for echoing keystrokes. It is
|
|||
|
not the same as the minibuffer, despite the fact that the minibuffer appears
|
|||
|
(when active) in the same place on the screen as the echo area.
|
|||
|
#+end_quote
|
|||
|
|
|||
|
- Emacs frame :: What the rest of the world calls windows. [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Frames.html][Source]].
|
|||
|
|
|||
|
- Emacs fringe :: On graphical displays, Emacs draws [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Fringes.html][fringes]] next to each window: thin
|
|||
|
vertical strips down the sides which can display bitmaps indicating
|
|||
|
truncation, continuation, horizontal scrolling, and so on.
|
|||
|
|
|||
|
- Header line :: The [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Header-Lines.html][header line]] is like a modeline (extra information line
|
|||
|
about Emacs current state), that is displayed at the top of each window
|
|||
|
instead of the bottom of them.
|
|||
|
|
|||
|
Notable examples include N. Rougier displaying filename [[https://github.com/rougier/elegant-emacs][in the header line]],
|
|||
|
and LSP-mode powered context information ([[https://emacs-lsp.github.io/lsp-mode/page/main-features/#breadcrumb-on-headerline]["breadcrumbs"]])
|
|||
|
|
|||
|
#+begin_quote
|
|||
|
A window can have a *header line* at the top, just as it can have a mode line
|
|||
|
at the bottom. The header line feature works just like the mode line
|
|||
|
feature[…]
|
|||
|
#+end_quote
|
|||
|
|
|||
|
- Display margins :: A buffer can have blank areas called [[https://emacsdocs.org/docs/elisp/Display-Margins][display margins]] on the
|
|||
|
left and on the right. Ordinary text never appears in these areas, but you can
|
|||
|
put things into the display margins using the `display` property.
|
|||
|
|
|||
|
Margins tend to be a lot larger than fringes, as margins are at least as wide
|
|||
|
as characters that you'd want to display there. It is almost always disabled:
|
|||
|
relevant information can be almost always also be shown in fringes, and
|
|||
|
fringes take way less screen real estate.
|
|||
|
|
|||
|
- Minibuffer :: The [[https://emacsdocs.org/docs/emacs/Minibuffer][minibuffer]] is the buffer that takes over the last line of
|
|||
|
your Emacs frame whenever Emacs prompts you (the user) for input.
|
|||
|
|
|||
|
#+begin_quote
|
|||
|
A *minibuffer* is a special buffer that Emacs commands use to read arguments
|
|||
|
more complicated than the single numeric prefix argument. These arguments
|
|||
|
include file names, buffer names, and command names (as in <kbd>M-x</kbd>).
|
|||
|
The minibuffer is displayed on the bottom line of the frame, in the same place
|
|||
|
as the echo area (see [[https://emacsdocs.org/docs/elisp/The-Echo-Area][The Echo Area]]), but only while it is in use for reading
|
|||
|
an argument.
|
|||
|
#+end_quote
|
|||
|
|
|||
|
- The Mode line :: The Emacs [[https://emacsdocs.org/docs/emacs/Mode-Line][mode line]] is the status bar displayed under each
|
|||
|
Emacs window. It's what vimmers know as the status line.
|
|||
|
|
|||
|
#+begin_quote
|
|||
|
Each Emacs window (aside from minibuffer windows) typically has a mode line at
|
|||
|
the bottom, which displays status information about the buffer displayed in
|
|||
|
the window. The mode line contains information about the buffer, such as its
|
|||
|
name, associated file, depth of recursive editing, and major and minor modes.
|
|||
|
#+end_quote
|
|||
|
|
|||
|
- Emacs window :: A [[https://emacsdocs.org/docs/elisp/Windows][window]] is an area of the screen that is used to display a
|
|||
|
buffer (see Emacs buffer).
|
|||
|
|
|||
|
*** Editing :category:
|
|||
|
- Kill :: Cut (in the Cut/Copy/Paste sense)
|
|||
|
|
|||
|
#+begin_quote
|
|||
|
*Kill functions* delete text like the deletion functions, but save it so that
|
|||
|
the user can reinsert it by *yanking* . Most of these functions have ‘kill-'
|
|||
|
in their name. […] Killed text is saved for later yanking in the *kill ring*.
|
|||
|
#+end_quote
|
|||
|
|
|||
|
- Major mode :: A [[https://emacsdocs.org/docs/emacs/Major-Modes][major mode]] is akin to file types/modes to vimmers/others. They
|
|||
|
specialize Emacs for editing or interacting with particular kinds of text.
|
|||
|
Each buffer has exactly one major mode at a time.
|
|||
|
|
|||
|
- Minor mode :: A [[https://emacsdocs.org/docs/emacs/Minor-Modes][minor mode]] provides optional features that users may enable or
|
|||
|
disable independently of the choice of major mode. Minor modes can be enabled
|
|||
|
individually or in combination.
|
|||
|
|
|||
|
Most minor modes implement features that are independent of the major mode,
|
|||
|
and can thus be used with most major modes. For example, Auto Fill mode works
|
|||
|
with any major mode that permits text insertion.
|
|||
|
|
|||
|
- Yank :: Paste (contrary to vim). The most common pitfall to avoid when coming
|
|||
|
from Vim, is that in Emacs, yanking_ is _pasting_.
|
|||
|
|
|||
|
#+begin_quote
|
|||
|
Yanking means inserting text from the kill ring
|
|||
|
#+end_quote
|
|||
|
|
|||
|
*** Emacs Lisp :category:
|
|||
|
- Alist :: An [[https://emacsdocs.org/docs/elisp/Association-Lists][association list]] is one of the main datatype used in Emacs Lisp.
|
|||
|
It's a list of key-value cons cells (essentially tuples).
|
|||
|
|
|||
|
- Association list :: Alist
|
|||
|
|
|||
|
- Interactive command :: https://emacsdocs.org/docs/elisp/Defining-Commands
|
|||
|
|
|||
|
- Doc string :: Short for [[https://emacsdocs.org/docs/elisp/Function-Documentation][documentation string]] is information that is embedded
|
|||
|
in a variable or function. Their docstring can be read when looking up
|
|||
|
functions with [[kbd:][C-h f]] or variables with [[kbd:][C-h v]].
|
|||
|
|
|||
|
*** Keybinds :category:
|
|||
|
- Universal argument :: See
|
|||
|
https://emacsdocs.org/docs/elisp/Prefix-Command-Arguments. This is a special
|
|||
|
key you use to modify the command you invoke directly afterwards.
|
|||
|
|
|||
|
For example, if you take a command called ~delete-stuff~, bound to [[kbd:][C-c d]] that
|
|||
|
tells you it will "delete the current line, or delete the whole buffer if
|
|||
|
prefix argument is set"; then
|
|||
|
|
|||
|
- [[kbd:][C-c d]] will delete a line
|
|||
|
- [[kbd:][M-x delete-stuff RET]] will delete a line
|
|||
|
- [[kbd:][C-u C-c d]] will delete the whole buffer
|
|||
|
- [[kbd:][C-u M-x delete-stuff RET]] will delete the whole buffer.
|
|||
|
|
|||
|
The goal of the universal/prefix argument is to get a slightly different
|
|||
|
behaviour for known commands.
|
|||
|
|
|||
|
#+begin_quote
|
|||
|
📌 Doom users with evil enabled will find the universal argument on [[kbd:][SPC u]]
|
|||
|
instead than [[kbd:][C-u]].
|
|||
|
#+end_quote
|
|||
|
|
|||
|
- Prefix argument :: Universal argument
|
|||
|
|
|||
|
- Prefix key :: A "prefix" is a key that begins a key sequence. For instance,
|
|||
|
the key sequence [[kbd:][C-x C-k b]] is comprised of three distinct input events. Both
|
|||
|
[[kbd:][C-x]] and [[kbd:][C-x C-k]] can be considered prefixes.
|
|||
|
|
|||
|
Prefix keys allow to store and move keybindings in groups. For example by
|
|||
|
default all [[doom-package:][lsp-mode]] commands are under ~SPC c l ...~, but if you want to
|
|||
|
change that prefix to ~SPC L ...~ for all [[doom-package:][lsp-mode]] commands, it is a one liner
|
|||
|
in your configuration; you do _not_ have to rebind each command manually to
|
|||
|
its new ~SPC L ...~ variant.
|
|||
|
|
|||
|
** Repositories :category:
|
|||
|
- doomemacs/core :: https://git.doomemacs.org/core
|
|||
|
- doomemacs/modules :: https://git.doomemacs.org/modules
|
|||
|
- doomemacs/contrib-modules :: https://git.doomemacs.org/contrib-modules
|
|||
|
- doomemacs/themes :: https://git.doomemacs.org/themes
|
|||
|
- doomemacs/snippets :: https://git.doomemacs.org/snippets
|
|||
|
|
|||
|
* Acronyms
|
|||
|
- CD :: Continuous Delivery
|
|||
|
- CI :: Continuous Integration
|
|||
|
- CLI :: Command-Line Interface
|
|||
|
- PR :: (Github) Pull Request
|
|||
|
- PRed :: PR
|
|||
|
- YMMV :: Your mileage may vary
|
|||
|
|
|||
|
* Text Substitutions
|