Update README.md

This commit is contained in:
James Cherti
2024-09-15 10:51:24 -04:00
parent 42b261aabc
commit 7d49c603f2

118
README.md
View File

@@ -22,14 +22,13 @@ A [user commented on Reddit](https://www.reddit.com/r/emacs/comments/1feaf37/com
- [Install minimal-emacs.d](#install-minimal-emacsd)
- [Installation into ~/.emacs.d](#installation-into-emacsd)
- [Alternative: Installation in `~/.minimal-emacs.d`](#alternative-installation-in-minimal-emacsd)
- [Features](#features)
- [Update minimal-emacs.d](#update-minimal-emacsd)
- [Customizations](#customizations)
- [How to customize early-init.el and init.el?](#how-to-customize-early-initel-and-initel)
- [How to enable dialogs, context menu, tool-bar, menu-bar, and tooltips?](#how-to-enable-dialogs-context-menu-tool-bar-menu-bar-and-tooltips)
- [Reducing clutter in `~/.emacs.d` by redirecting files to `~/emacs.d/var/`](#reducing-clutter-in-emacsd-by-redirecting-files-to-emacsdvar)
- [How to activate recentf, savehist, saveplace, and auto-revert?](#how-to-activate-recentf-savehist-saveplace-and-auto-revert)
- [Optimization: Native Compilation](#optimization-native-compilation)
- [How to enable dialogs, context menu, tool-bar, menu-bar, and tooltips?](#how-to-enable-dialogs-context-menu-tool-bar-menu-bar-and-tooltips)
- [How to configure vterm](#how-to-configure-vterm)
- [How to configure Vertico, Consult, and Embark](#how-to-configure-vertico-consult-and-embark)
- [How to configure Vim keybindings using Evil?](#how-to-configure-vim-keybindings-using-evil)
@@ -44,6 +43,7 @@ A [user commented on Reddit](https://www.reddit.com/r/emacs/comments/1feaf37/com
- [Are post-early-init.el and pre-init.el the same file in terms of the logic?](#are-post-early-initel-and-pre-initel-the-same-file-in-terms-of-the-logic)
- [Why the reflexive disabling of the menu bar? Its a major aid to discoverability, especially for new users.](#why-the-reflexive-disabling-of-the-menu-bar-its-a-major-aid-to-discoverability-especially-for-new-users)
- [Why did the author develop minimal-emacs.d?](#why-did-the-author-develop-minimal-emacsd)
- [Features](#features)
- [Author and license](#author-and-license)
- [Links](#links)
@@ -72,51 +72,6 @@ To install `minimal-emacs.d` in a non-default directory, use the `--init-directo
emacs --init-directory ~/.minimal-emacs.d/
```
## Features
1. **Performance Improvements:**
- Increases the amount read from processes in a single chunk.
- Prefers loading newer compiled files.
- Reduces startup screen and message noise, including removing the "For information about GNU Emacs..." message.
- Configures Emacs to start with a scratch buffer in `fundamental-mode` to shave seconds off startup time.
- Delays garbage collection during startup to improve performance and resets it to a more reasonable value once Emacs has started.
- Customizes `file-name-handler-alist` for improved startup time and package load time (Special thanks to the Doom Emacs developers for the `file-name-handler-alist` optimizations; This function have been inspired by their project and will contribute to improving vanilla Emacs configurations.)
- Reduces rendering workload by not rendering cursors or regions in non-focused windows.
- Disables warnings from the legacy advice API and suppresses warnings about aliased variables.
- Avoids unnecessary excessive UI updates.
- Disables font compacting to avoid high memory usage.
- Defer tool bar setup
- Unset command line options irrelevant to the current OS
2. **Native Compilation and Byte Compilation:**
- Configures native compilation and byte compilation settings
- Suppresses compiler warnings and errors during native compilation.
4. **UI Element Management:**
- Disables the startup screen and messages, including menu bar, tool bar, and scroll bars.
- Configures Emacs to avoid resizing frames and minimizes unnecessary UI updates.
5. **Package Management:**
- Configures package archives and priorities for MELPA, ELPA, and other repositories.
6. **Customizable Initialization Files:**
- Supports additional configuration files (`pre-init.el`, `post-init.el`, `pre-early-init.el`, and `post-early-init.el`) to allow further customization at different stages of the startup process.
7. **File Management:**
- Manages auto-save and backup files, including backup options and version control settings.
8. **User Experience Enhancements:**
- Configures user interface settings such as cursor behavior, scrolling, and response to prompts.
- Disables beeping and blinking to avoid distractions.
9. **Buffer and Window Configuration:**
- Sets default fringe widths and buffer boundaries.
- Configures smooth scrolling and cursor behavior for a more seamless editing experience.
10. **Miscellaneous**
- Configure recentf, savehist, and auto-save
- Configure Ediff to use a single frame and split windows horizontally
## Update minimal-emacs.d
To keep your Emacs configuration up to date, you can pull the latest changes from the repository. Run the following command in your terminal:
@@ -147,6 +102,18 @@ Always begin your `pre-init.el`, `post-init.el`, `post-early-init.el`, and `pre-
(Replace `FILENAME.el` with the actual name and DESCRIPTION with a brief description of its purpose.)
### How to enable dialogs, context menu, tool-bar, menu-bar, and tooltips?
**Note:** Enabling the tool-bar, menu-bar, and similar UI elements may slightly increase your startup time.
To customize your Emacs setup to include various user interface elements, you can use the following settings in your ``~/.emacs.d/pre-early-init.el``:
``` emacs-lisp
(setq minimal-emacs-ui-features '(context-menu tool-bar menu-bar dialogs tooltips))
```
These settings control the visibility of dialogs, context menus, toolbars, menu bars, and tooltips.
### Reducing clutter in `~/.emacs.d` by redirecting files to `~/emacs.d/var/`
Emacs, by default, stores various configuration files, caches, backups, and other data in the `~/.emacs.d` directory. Over time, this directory can become cluttered with numerous files, making it difficult to manage and maintain.
@@ -198,18 +165,6 @@ Check if native compilation is enabled by evaluating `(native-comp-available-p)`
Native compilation can greatly enhance performance by translating Emacs Lisp code into native machine code, leading to faster execution and improved responsiveness.
### How to enable dialogs, context menu, tool-bar, menu-bar, and tooltips?
**Note:** Enabling the tool-bar, menu-bar, and similar UI elements may slightly increase your startup time.
To customize your Emacs setup to include various user interface elements, you can use the following settings in your ``~/.emacs.d/pre-early-init.el``:
``` emacs-lisp
(setq minimal-emacs-ui-features '(context-menu tool-bar menu-bar dialogs tooltips))
```
These settings control the visibility of dialogs, context menus, toolbars, menu bars, and tooltips.
### How to configure vterm
The `emacs-libvterm` package is a terminal emulator integrated into GNU Emacs. Built on libvterm, a C library, it offers superior performance compared to Elisp-based alternatives. This compiled code approach enables `emacs-libvterm` to handle large outputs efficiently, providing a fast and feature-complete terminal experience within Emacs.
@@ -655,6 +610,51 @@ Other UI features can also be enabled by adding the following to `~/.emacs.d/pre
The author began working on it after realizing that no existing starter kit offered a truly minimal setup with the flexibility for users to choose exactly what to include in their configuration.
## Features
1. **Performance Improvements:**
- Increases the amount read from processes in a single chunk.
- Prefers loading newer compiled files.
- Reduces startup screen and message noise, including removing the "For information about GNU Emacs..." message.
- Configures Emacs to start with a scratch buffer in `fundamental-mode` to shave seconds off startup time.
- Delays garbage collection during startup to improve performance and resets it to a more reasonable value once Emacs has started.
- Customizes `file-name-handler-alist` for improved startup time and package load time (Special thanks to the Doom Emacs developers for the `file-name-handler-alist` optimizations; This function have been inspired by their project and will contribute to improving vanilla Emacs configurations.)
- Reduces rendering workload by not rendering cursors or regions in non-focused windows.
- Disables warnings from the legacy advice API and suppresses warnings about aliased variables.
- Avoids unnecessary excessive UI updates.
- Disables font compacting to avoid high memory usage.
- Defer tool bar setup
- Unset command line options irrelevant to the current OS
2. **Native Compilation and Byte Compilation:**
- Configures native compilation and byte compilation settings
- Suppresses compiler warnings and errors during native compilation.
4. **UI Element Management:**
- Disables the startup screen and messages, including menu bar, tool bar, and scroll bars.
- Configures Emacs to avoid resizing frames and minimizes unnecessary UI updates.
5. **Package Management:**
- Configures package archives and priorities for MELPA, ELPA, and other repositories.
6. **Customizable Initialization Files:**
- Supports additional configuration files (`pre-init.el`, `post-init.el`, `pre-early-init.el`, and `post-early-init.el`) to allow further customization at different stages of the startup process.
7. **File Management:**
- Manages auto-save and backup files, including backup options and version control settings.
8. **User Experience Enhancements:**
- Configures user interface settings such as cursor behavior, scrolling, and response to prompts.
- Disables beeping and blinking to avoid distractions.
9. **Buffer and Window Configuration:**
- Sets default fringe widths and buffer boundaries.
- Configures smooth scrolling and cursor behavior for a more seamless editing experience.
10. **Miscellaneous**
- Configure recentf, savehist, and auto-save
- Configure Ediff to use a single frame and split windows horizontally
## Author and license
Copyright (C) 2024 [James Cherti](https://www.jamescherti.com)