doomemacs/docs/appendix.org

208 lines
9.6 KiB
Org Mode
Raw Normal View History

2022-08-03 22:15:47 +08:00
: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
2022-09-26 02:19:42 +08:00
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
2022-08-03 22:15:47 +08:00
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