Update README.md

This commit is contained in:
James Cherti
2026-03-14 15:44:16 -04:00
parent 314b8a1850
commit df22269c99

View File

@@ -292,7 +292,6 @@ Native compilation enhances Emacs performance by converting Elisp code into nati
;; Ensure adding the following compile-angel code at the very beginning ;; Ensure adding the following compile-angel code at the very beginning
;; of your `~/.emacs.d/post-init.el` file, before all other packages. ;; of your `~/.emacs.d/post-init.el` file, before all other packages.
(use-package compile-angel (use-package compile-angel
:ensure t
:demand t :demand t
:config :config
;; The following disables compilation of packages during installation; ;; The following disables compilation of packages during installation;
@@ -336,7 +335,6 @@ To fix this, add **exec-path-from-shell** to `~/.emacs.d/post-init.el`:
(use-package exec-path-from-shell (use-package exec-path-from-shell
:if (and (or (display-graphic-p) (daemonp)) :if (and (or (display-graphic-p) (daemonp))
(eq system-type 'darwin)) ; macOS only (eq system-type 'darwin)) ; macOS only
:ensure t
:demand t :demand t
:functions exec-path-from-shell-initialize :functions exec-path-from-shell-initialize
:config :config
@@ -478,7 +476,6 @@ To configure `corfu` and `cape`, add the following to `~/.emacs.d/post-init.el`:
;; current candidates, positioned either below or above the point. Candidates ;; current candidates, positioned either below or above the point. Candidates
;; can be selected by navigating up or down. ;; can be selected by navigating up or down.
(use-package corfu (use-package corfu
:ensure t
:commands (corfu-mode global-corfu-mode) :commands (corfu-mode global-corfu-mode)
:hook ((prog-mode . corfu-mode) :hook ((prog-mode . corfu-mode)
@@ -500,7 +497,6 @@ To configure `corfu` and `cape`, add the following to `~/.emacs.d/post-init.el`:
;; in-buffer completion. It integrates with Corfu or the default completion UI, ;; in-buffer completion. It integrates with Corfu or the default completion UI,
;; by providing additional backends through completion-at-point-functions. ;; by providing additional backends through completion-at-point-functions.
(use-package cape (use-package cape
:ensure t
:commands (cape-dabbrev cape-file cape-elisp-block) :commands (cape-dabbrev cape-file cape-elisp-block)
:bind ("C-c p" . cape-prefix-map) :bind ("C-c p" . cape-prefix-map)
:init :init
@@ -529,7 +525,6 @@ Add the following to `~/.emacs.d/post-init.el` to set up Vertico, Consult, and E
;; navigate and select from completion candidates (e.g., when `M-x` is pressed). ;; navigate and select from completion candidates (e.g., when `M-x` is pressed).
(use-package vertico (use-package vertico
;; (Note: It is recommended to also enable the savehist package.) ;; (Note: It is recommended to also enable the savehist package.)
:ensure t
:config :config
(vertico-mode)) (vertico-mode))
@@ -537,7 +532,6 @@ Add the following to `~/.emacs.d/post-init.el` to set up Vertico, Consult, and E
;; to input multiple patterns separated by spaces, which Orderless then ;; to input multiple patterns separated by spaces, which Orderless then
;; matches in any order against the candidates. ;; matches in any order against the candidates.
(use-package orderless (use-package orderless
:ensure t
:custom :custom
(completion-styles '(orderless basic)) (completion-styles '(orderless basic))
(completion-category-defaults nil) (completion-category-defaults nil)
@@ -547,7 +541,6 @@ Add the following to `~/.emacs.d/post-init.el` to set up Vertico, Consult, and E
;; In addition to that, Marginalia also enhances Vertico by adding rich ;; In addition to that, Marginalia also enhances Vertico by adding rich
;; annotations to the completion candidates displayed in Vertico's interface. ;; annotations to the completion candidates displayed in Vertico's interface.
(use-package marginalia (use-package marginalia
:ensure t
:commands (marginalia-mode marginalia-cycle) :commands (marginalia-mode marginalia-cycle)
:hook (after-init . marginalia-mode)) :hook (after-init . marginalia-mode))
@@ -559,7 +552,6 @@ Add the following to `~/.emacs.d/post-init.el` to set up Vertico, Consult, and E
;; Embark is an Emacs package that acts like a context menu, allowing ;; Embark is an Emacs package that acts like a context menu, allowing
;; users to perform context-sensitive actions on selected items ;; users to perform context-sensitive actions on selected items
;; directly from the completion interface. ;; directly from the completion interface.
:ensure t
:commands (embark-act :commands (embark-act
embark-dwim embark-dwim
embark-export embark-export
@@ -582,14 +574,12 @@ Add the following to `~/.emacs.d/post-init.el` to set up Vertico, Consult, and E
(window-parameters (mode-line-format . none))))) (window-parameters (mode-line-format . none)))))
(use-package embark-consult (use-package embark-consult
:ensure t
:hook :hook
(embark-collect-mode . consult-preview-at-point-mode)) (embark-collect-mode . consult-preview-at-point-mode))
;; Consult offers a suite of commands for efficient searching, previewing, and ;; Consult offers a suite of commands for efficient searching, previewing, and
;; interacting with buffers, file contents, and more, improving various tasks. ;; interacting with buffers, file contents, and more, improving various tasks.
(use-package consult (use-package consult
:ensure t
:bind (;; C-c bindings in `mode-specific-map' :bind (;; C-c bindings in `mode-specific-map'
("C-c M-x" . consult-mode-command) ("C-c M-x" . consult-mode-command)
("C-c h" . consult-history) ("C-c h" . consult-history)
@@ -695,7 +685,6 @@ To install and configure these packages, add the following to `~/.emacs.d/post-i
;; The undo-fu package is a lightweight wrapper around Emacs' built-in undo ;; The undo-fu package is a lightweight wrapper around Emacs' built-in undo
;; system, providing more convenient undo/redo functionality. ;; system, providing more convenient undo/redo functionality.
(use-package undo-fu (use-package undo-fu
:ensure t
:commands (undo-fu-only-undo :commands (undo-fu-only-undo
undo-fu-only-redo undo-fu-only-redo
undo-fu-only-redo-all undo-fu-only-redo-all
@@ -708,7 +697,6 @@ To install and configure these packages, add the following to `~/.emacs.d/post-i
;; The undo-fu-session package complements undo-fu by enabling the saving ;; The undo-fu-session package complements undo-fu by enabling the saving
;; and restoration of undo history across Emacs sessions, even after restarting. ;; and restoration of undo history across Emacs sessions, even after restarting.
(use-package undo-fu-session (use-package undo-fu-session
:ensure t
:commands undo-fu-session-global-mode :commands undo-fu-session-global-mode
:hook (after-init . undo-fu-session-global-mode)) :hook (after-init . undo-fu-session-global-mode))
``` ```
@@ -770,7 +758,6 @@ Configuring Vim keybindings in Emacs can greatly enhance your editing efficiency
;; Vim emulation ;; Vim emulation
(use-package evil (use-package evil
:ensure t
:commands (evil-mode evil-define-key) :commands (evil-mode evil-define-key)
:hook (after-init . evil-mode) :hook (after-init . evil-mode)
@@ -811,7 +798,6 @@ Configuring Vim keybindings in Emacs can greatly enhance your editing efficiency
(use-package evil-collection (use-package evil-collection
:after evil :after evil
:ensure t
:init :init
;; It has to be defined before evil-colllection ;; It has to be defined before evil-colllection
(setq evil-collection-setup-minibuffer t) (setq evil-collection-setup-minibuffer t)
@@ -832,7 +818,6 @@ You can also install the [vim-tab-bar](https://github.com/jamescherti/vim-tab-ba
``` emacs-lisp ``` emacs-lisp
;; Give Emacs tab-bar a style similar to Vim's ;; Give Emacs tab-bar a style similar to Vim's
(use-package vim-tab-bar (use-package vim-tab-bar
:ensure t
:commands vim-tab-bar-mode :commands vim-tab-bar-mode
:hook (after-init . vim-tab-bar-mode)) :hook (after-init . vim-tab-bar-mode))
``` ```
@@ -850,7 +835,6 @@ The `evil-surround` package simplifies handling surrounding characters, such as
;; using S" or gS". ;; using S" or gS".
(use-package evil-surround (use-package evil-surround
:after evil :after evil
:ensure t
:commands global-evil-surround-mode :commands global-evil-surround-mode
:custom :custom
(evil-surround-pairs-alist (evil-surround-pairs-alist
@@ -896,7 +880,6 @@ To configure **easysession**, add the following to `~/.emacs.d/post-init.el`:
;; manage Emacs editing sessions and utilizes built-in Emacs functions to ;; manage Emacs editing sessions and utilizes built-in Emacs functions to
;; persist and restore frames. ;; persist and restore frames.
(use-package easysession (use-package easysession
:ensure t
:commands (easysession-switch-to :commands (easysession-switch-to
easysession-save-as easysession-save-as
easysession-save-mode easysession-save-mode
@@ -961,7 +944,6 @@ This configuration sets up `markdown-mode` with deferred loading to improve star
```elisp ```elisp
;; Automatically generate a table of contents when editing Markdown files ;; Automatically generate a table of contents when editing Markdown files
(use-package markdown-toc (use-package markdown-toc
:ensure t
:commands (markdown-toc-generate-toc :commands (markdown-toc-generate-toc
markdown-toc-generate-or-refresh-toc markdown-toc-generate-or-refresh-toc
markdown-toc-delete-toc markdown-toc-delete-toc
@@ -1077,7 +1059,6 @@ For folding based on indentation levels, the **[outline-indent](https://github.c
;; - Move backward/forward to the indentation level of the current line ;; - Move backward/forward to the indentation level of the current line
;; - and other features. ;; - and other features.
(use-package outline-indent (use-package outline-indent
:ensure t
:commands outline-indent-minor-mode :commands outline-indent-minor-mode
:custom :custom
@@ -1146,7 +1127,6 @@ To configure **apheleia**, add the following to `~/.emacs.d/post-init.el`:
;; Apheleia is an Emacs package designed to run code formatters (e.g., Shfmt, ;; Apheleia is an Emacs package designed to run code formatters (e.g., Shfmt,
;; Black and Prettier) asynchronously without disrupting the cursor position. ;; Black and Prettier) asynchronously without disrupting the cursor position.
(use-package apheleia (use-package apheleia
:ensure t
:commands (apheleia-mode :commands (apheleia-mode
apheleia-global-mode) apheleia-global-mode)
:hook ((prog-mode . apheleia-mode))) :hook ((prog-mode . apheleia-mode)))
@@ -1201,7 +1181,6 @@ The [yasnippet-snippets](https://github.com/AndreaCrotti/yasnippet-snippets) pac
```elisp ```elisp
;; The official collection of snippets for yasnippet. ;; The official collection of snippets for yasnippet.
(use-package yasnippet-snippets (use-package yasnippet-snippets
:ensure t
:after yasnippet) :after yasnippet)
;; YASnippet is a template system designed that enhances text editing by ;; YASnippet is a template system designed that enhances text editing by
@@ -1209,7 +1188,6 @@ The [yasnippet-snippets](https://github.com/AndreaCrotti/yasnippet-snippets) pac
;; abbreviation, YASnippet automatically expands it into a full template, which ;; abbreviation, YASnippet automatically expands it into a full template, which
;; can include placeholders, fields, and dynamic content. ;; can include placeholders, fields, and dynamic content.
(use-package yasnippet (use-package yasnippet
:ensure t
:commands (yas-minor-mode :commands (yas-minor-mode
yas-global-mode) yas-global-mode)
@@ -1309,7 +1287,6 @@ To enable **stripspace** and automatically delete trailing whitespace, add the f
;; that automatically removes trailing whitespace and blank lines at the end of ;; that automatically removes trailing whitespace and blank lines at the end of
;; the buffer when saving. ;; the buffer when saving.
(use-package stripspace (use-package stripspace
:ensure t
:commands stripspace-local-mode :commands stripspace-local-mode
;; Enable for prog-mode-hook, text-mode-hook, conf-mode-hook ;; Enable for prog-mode-hook, text-mode-hook, conf-mode-hook
@@ -1364,7 +1341,6 @@ To configure **org-mode**, add the following to `~/.emacs.d/post-init.el`:
;; scheduling, deadlines, time tracking, and exporting to multiple formats ;; scheduling, deadlines, time tracking, and exporting to multiple formats
;; including HTML, LaTeX, PDF, and Markdown. ;; including HTML, LaTeX, PDF, and Markdown.
(use-package org (use-package org
:ensure t
:commands (org-mode org-version) :commands (org-mode org-version)
:mode :mode
("\\.org\\'" . org-mode) ("\\.org\\'" . org-mode)
@@ -1434,7 +1410,6 @@ To configure **auto-package-update**, add the following to `~/.emacs.d/post-init
```elisp ```elisp
;; This automates the process of updating installed packages ;; This automates the process of updating installed packages
(use-package auto-package-update (use-package auto-package-update
:ensure t
:custom :custom
;; Set the number of days between automatic updates. ;; Set the number of days between automatic updates.
;; Here, packages will only be updated if at least 7 days have passed ;; Here, packages will only be updated if at least 7 days have passed
@@ -1479,7 +1454,6 @@ To configure **buffer-terminator**, add the following to `~/.emacs.d/post-init.e
```emacs-lisp ```emacs-lisp
(use-package buffer-terminator (use-package buffer-terminator
:ensure t
:custom :custom
;; Enable/Disable verbose mode to log buffer cleanup events ;; Enable/Disable verbose mode to log buffer cleanup events
(buffer-terminator-verbose nil) (buffer-terminator-verbose nil)
@@ -1511,7 +1485,6 @@ To configure **treemacs**, add the following to `~/.emacs.d/post-init.el`:
;; in the left window, providing a persistent view of files, projects, and ;; in the left window, providing a persistent view of files, projects, and
;; other elements. ;; other elements.
(use-package treemacs (use-package treemacs
:ensure t
:commands (treemacs :commands (treemacs
treemacs-select-window treemacs-select-window
treemacs-delete-other-windows treemacs-delete-other-windows
@@ -1611,15 +1584,12 @@ To configure **treemacs**, add the following to `~/.emacs.d/post-init.el`:
;; (use-package treemacs-evil ;; (use-package treemacs-evil
;; :after (treemacs evil) ;; :after (treemacs evil)
;; :ensure t)
;; ;;
;; (use-package treemacs-icons-dired ;; (use-package treemacs-icons-dired
;; :hook (dired-mode . treemacs-icons-dired-enable-once) ;; :hook (dired-mode . treemacs-icons-dired-enable-once)
;; :ensure t)
;; ;;
;; (use-package treemacs-tab-bar ; treemacs-tab-bar if you use tab-bar-mode ;; (use-package treemacs-tab-bar ; treemacs-tab-bar if you use tab-bar-mode
;; :after (treemacs) ;; :after (treemacs)
;; :ensure t
;; :config (treemacs-set-scope-type 'Tabs)) ;; :config (treemacs-set-scope-type 'Tabs))
;; ;;
;; (treemacs-start-on-boot) ;; (treemacs-start-on-boot)
@@ -1634,7 +1604,6 @@ To configure **helpful**, add the following to `~/.emacs.d/post-init.el`:
;; Helpful is an alternative to the built-in Emacs help that provides much more ;; Helpful is an alternative to the built-in Emacs help that provides much more
;; contextual information. ;; contextual information.
(use-package helpful (use-package helpful
:ensure t
:commands (helpful-callable :commands (helpful-callable
helpful-variable helpful-variable
helpful-key helpful-key
@@ -1660,7 +1629,6 @@ It operates by generating a dynamic, temporary mapping: upon invocation, such as
To configure **avy**, add the following to `~/.emacs.d/post-init.el`: To configure **avy**, add the following to `~/.emacs.d/post-init.el`:
```elisp ```elisp
(use-package avy (use-package avy
:ensure t
:commands (avy-goto-char :commands (avy-goto-char
avy-goto-char-2 avy-goto-char-2
avy-next) avy-next)
@@ -1682,7 +1650,6 @@ The functions above also ensures that any modified buffers are saved prior to ex
To configure **bufferfile**, add the following to `~/.emacs.d/post-init.el`: To configure **bufferfile**, add the following to `~/.emacs.d/post-init.el`:
```elisp ```elisp
(use-package bufferfile (use-package bufferfile
:ensure t
:commands (bufferfile-copy :commands (bufferfile-copy
bufferfile-rename bufferfile-rename
bufferfile-delete) bufferfile-delete)
@@ -1710,14 +1677,12 @@ To enhance the Elisp development experience, add the following to `~/.emacs.d/po
```emacs-lisp ```emacs-lisp
;; Enables automatic indentation of code while typing ;; Enables automatic indentation of code while typing
(use-package aggressive-indent (use-package aggressive-indent
:ensure t
:commands aggressive-indent-mode :commands aggressive-indent-mode
:hook :hook
(emacs-lisp-mode . aggressive-indent-mode)) (emacs-lisp-mode . aggressive-indent-mode))
;; Highlights function and variable definitions in Emacs Lisp mode ;; Highlights function and variable definitions in Emacs Lisp mode
(use-package highlight-defined (use-package highlight-defined
:ensure t
:commands highlight-defined-mode :commands highlight-defined-mode
:hook :hook
(emacs-lisp-mode . highlight-defined-mode)) (emacs-lisp-mode . highlight-defined-mode))
@@ -1727,7 +1692,6 @@ Other optional packages that may be useful include:
```emacs-lisp ```emacs-lisp
;; Prevent parenthesis imbalance ;; Prevent parenthesis imbalance
(use-package paredit (use-package paredit
:ensure t
:commands paredit-mode :commands paredit-mode
:hook :hook
(emacs-lisp-mode . paredit-mode) (emacs-lisp-mode . paredit-mode)
@@ -1737,14 +1701,12 @@ Other optional packages that may be useful include:
;; For paredit+Evil mode users: enhances paredit with Evil mode compatibility ;; For paredit+Evil mode users: enhances paredit with Evil mode compatibility
;; -------------------------------------------------------------------------- ;; --------------------------------------------------------------------------
;; (use-package enhanced-evil-paredit ;; (use-package enhanced-evil-paredit
;; :ensure t
;; :commands enhanced-evil-paredit-mode ;; :commands enhanced-evil-paredit-mode
;; :hook ;; :hook
;; (paredit-mode . enhanced-evil-paredit-mode)) ;; (paredit-mode . enhanced-evil-paredit-mode))
;; Displays visible indicators for page breaks ;; Displays visible indicators for page breaks
(use-package page-break-lines (use-package page-break-lines
:ensure t
:commands (page-break-lines-mode :commands (page-break-lines-mode
global-page-break-lines-mode) global-page-break-lines-mode)
:hook :hook
@@ -1753,7 +1715,6 @@ Other optional packages that may be useful include:
;; Provides functions to find references to functions, macros, variables, ;; Provides functions to find references to functions, macros, variables,
;; special forms, and symbols in Emacs Lisp ;; special forms, and symbols in Emacs Lisp
(use-package elisp-refs (use-package elisp-refs
:ensure t
:commands (elisp-refs-function :commands (elisp-refs-function
elisp-refs-macro elisp-refs-macro
elisp-refs-variable elisp-refs-variable
@@ -1777,7 +1738,6 @@ To configure **inhibit-mouse**, add the following to `~/.emacs.d/post-init.el`:
;; - Reinforce a keyboard-centric workflow by discouraging reliance on the mouse ;; - Reinforce a keyboard-centric workflow by discouraging reliance on the mouse
;; for navigation. ;; for navigation.
(use-package inhibit-mouse (use-package inhibit-mouse
:ensure t
:config :config
(if (daemonp) (if (daemonp)
(add-hook 'server-after-make-frame-hook #'inhibit-mouse-mode) (add-hook 'server-after-make-frame-hook #'inhibit-mouse-mode)
@@ -1805,7 +1765,6 @@ To enable *quick-sdcv*, add the following to your `~/.emacs.d/post-init.el`:
```emacs-lisp ```emacs-lisp
(use-package quick-sdcv (use-package quick-sdcv
:ensure t
:custom :custom
(quick-sdcv-unique-buffers t) (quick-sdcv-unique-buffers t)
(quick-sdcv-dictionary-prefix-symbol "►") (quick-sdcv-dictionary-prefix-symbol "►")
@@ -2265,6 +2224,8 @@ The `straight.el` package is a declarative package manager for Emacs that aims t
(goto-char (point-max)) (goto-char (point-max))
(eval-print-last-sexp))) (eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage)) (load bootstrap-file nil 'nomessage))
(setq straight-use-package-by-default t)
``` ```
### Configuring Elpaca (package manager) ### Configuring Elpaca (package manager)
@@ -2326,6 +2287,21 @@ And [add the Elpaca bootstrap code](https://github.com/progfolio/elpaca?tab=read
;; Optional: Install use-package support ;; Optional: Install use-package support
;; (elpaca elpaca-use-package ;; (elpaca elpaca-use-package
;; (elpaca-use-package-mode)) ;; (elpaca-use-package-mode))
(elpaca
elpaca-use-package
;; Enable use-package :ensure support for Elpaca.
(elpaca-use-package-mode))
;; TODO windows
;; Uncomment for systems which cannot create symlinks:
;; (elpaca-no-symlink-mode)
;; Install use-package support
(elpaca
elpaca-use-package
;; Enable use-package :ensure support for Elpaca.
(elpaca-use-package-mode))
``` ```
## Frequently asked questions ## Frequently asked questions