: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 M-x). 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