From df22269c99eb507c226f2f70c3ded350f31a5432 Mon Sep 17 00:00:00 2001 From: James Cherti <60946298+jamescherti@users.noreply.github.com> Date: Sat, 14 Mar 2026 15:44:16 -0400 Subject: [PATCH] Update README.md --- README.md | 58 ++++++++++++++++--------------------------------------- 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index ac07669..ea5a1ec 100644 --- a/README.md +++ b/README.md @@ -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 ;; of your `~/.emacs.d/post-init.el` file, before all other packages. (use-package compile-angel - :ensure t :demand t :config ;; 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 :if (and (or (display-graphic-p) (daemonp)) (eq system-type 'darwin)) ; macOS only - :ensure t :demand t :functions exec-path-from-shell-initialize :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 ;; can be selected by navigating up or down. (use-package corfu - :ensure t :commands (corfu-mode global-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, ;; by providing additional backends through completion-at-point-functions. (use-package cape - :ensure t :commands (cape-dabbrev cape-file cape-elisp-block) :bind ("C-c p" . cape-prefix-map) :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). (use-package vertico ;; (Note: It is recommended to also enable the savehist package.) - :ensure t :config (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 ;; matches in any order against the candidates. (use-package orderless - :ensure t :custom (completion-styles '(orderless basic)) (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 ;; annotations to the completion candidates displayed in Vertico's interface. (use-package marginalia - :ensure t :commands (marginalia-mode marginalia-cycle) :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 ;; users to perform context-sensitive actions on selected items ;; directly from the completion interface. - :ensure t :commands (embark-act embark-dwim 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))))) (use-package embark-consult - :ensure t :hook (embark-collect-mode . consult-preview-at-point-mode)) ;; Consult offers a suite of commands for efficient searching, previewing, and ;; interacting with buffers, file contents, and more, improving various tasks. (use-package consult - :ensure t :bind (;; C-c bindings in `mode-specific-map' ("C-c M-x" . consult-mode-command) ("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 ;; system, providing more convenient undo/redo functionality. (use-package undo-fu - :ensure t :commands (undo-fu-only-undo undo-fu-only-redo 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 ;; and restoration of undo history across Emacs sessions, even after restarting. (use-package undo-fu-session - :ensure t :commands 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 (use-package evil - :ensure t :commands (evil-mode evil-define-key) :hook (after-init . evil-mode) @@ -811,7 +798,6 @@ Configuring Vim keybindings in Emacs can greatly enhance your editing efficiency (use-package evil-collection :after evil - :ensure t :init ;; It has to be defined before evil-colllection (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 ;; Give Emacs tab-bar a style similar to Vim's (use-package vim-tab-bar - :ensure t :commands 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". (use-package evil-surround :after evil - :ensure t :commands global-evil-surround-mode :custom (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 ;; persist and restore frames. (use-package easysession - :ensure t :commands (easysession-switch-to easysession-save-as easysession-save-mode @@ -961,7 +944,6 @@ This configuration sets up `markdown-mode` with deferred loading to improve star ```elisp ;; Automatically generate a table of contents when editing Markdown files (use-package markdown-toc - :ensure t :commands (markdown-toc-generate-toc markdown-toc-generate-or-refresh-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 ;; - and other features. (use-package outline-indent - :ensure t :commands outline-indent-minor-mode :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, ;; Black and Prettier) asynchronously without disrupting the cursor position. (use-package apheleia - :ensure t :commands (apheleia-mode apheleia-global-mode) :hook ((prog-mode . apheleia-mode))) @@ -1201,7 +1181,6 @@ The [yasnippet-snippets](https://github.com/AndreaCrotti/yasnippet-snippets) pac ```elisp ;; The official collection of snippets for yasnippet. (use-package yasnippet-snippets - :ensure t :after yasnippet) ;; 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 ;; can include placeholders, fields, and dynamic content. (use-package yasnippet - :ensure t :commands (yas-minor-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 ;; the buffer when saving. (use-package stripspace - :ensure t :commands stripspace-local-mode ;; 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 ;; including HTML, LaTeX, PDF, and Markdown. (use-package org - :ensure t :commands (org-mode org-version) :mode ("\\.org\\'" . org-mode) @@ -1434,7 +1410,6 @@ To configure **auto-package-update**, add the following to `~/.emacs.d/post-init ```elisp ;; This automates the process of updating installed packages (use-package auto-package-update - :ensure t :custom ;; Set the number of days between automatic updates. ;; 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 (use-package buffer-terminator - :ensure t :custom ;; Enable/Disable verbose mode to log buffer cleanup events (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 ;; other elements. (use-package treemacs - :ensure t :commands (treemacs treemacs-select-window treemacs-delete-other-windows @@ -1611,15 +1584,12 @@ To configure **treemacs**, add the following to `~/.emacs.d/post-init.el`: ;; (use-package treemacs-evil ;; :after (treemacs evil) -;; :ensure t) ;; ;; (use-package treemacs-icons-dired ;; :hook (dired-mode . treemacs-icons-dired-enable-once) -;; :ensure t) ;; ;; (use-package treemacs-tab-bar ; treemacs-tab-bar if you use tab-bar-mode ;; :after (treemacs) -;; :ensure t ;; :config (treemacs-set-scope-type 'Tabs)) ;; ;; (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 ;; contextual information. (use-package helpful - :ensure t :commands (helpful-callable helpful-variable 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`: ```elisp (use-package avy - :ensure t :commands (avy-goto-char avy-goto-char-2 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`: ```elisp (use-package bufferfile - :ensure t :commands (bufferfile-copy bufferfile-rename bufferfile-delete) @@ -1710,14 +1677,12 @@ To enhance the Elisp development experience, add the following to `~/.emacs.d/po ```emacs-lisp ;; Enables automatic indentation of code while typing (use-package aggressive-indent - :ensure t :commands aggressive-indent-mode :hook (emacs-lisp-mode . aggressive-indent-mode)) ;; Highlights function and variable definitions in Emacs Lisp mode (use-package highlight-defined - :ensure t :commands highlight-defined-mode :hook (emacs-lisp-mode . highlight-defined-mode)) @@ -1727,7 +1692,6 @@ Other optional packages that may be useful include: ```emacs-lisp ;; Prevent parenthesis imbalance (use-package paredit - :ensure t :commands paredit-mode :hook (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 ;; -------------------------------------------------------------------------- ;; (use-package enhanced-evil-paredit -;; :ensure t ;; :commands enhanced-evil-paredit-mode ;; :hook ;; (paredit-mode . enhanced-evil-paredit-mode)) ;; Displays visible indicators for page breaks (use-package page-break-lines - :ensure t :commands (page-break-lines-mode global-page-break-lines-mode) :hook @@ -1753,7 +1715,6 @@ Other optional packages that may be useful include: ;; Provides functions to find references to functions, macros, variables, ;; special forms, and symbols in Emacs Lisp (use-package elisp-refs - :ensure t :commands (elisp-refs-function elisp-refs-macro 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 ;; for navigation. (use-package inhibit-mouse - :ensure t :config (if (daemonp) (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 (use-package quick-sdcv - :ensure t :custom (quick-sdcv-unique-buffers t) (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)) (eval-print-last-sexp))) (load bootstrap-file nil 'nomessage)) + +(setq straight-use-package-by-default t) ``` ### 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 ;; (elpaca elpaca-use-package ;; (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