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) - [Install minimal-emacs.d](#install-minimal-emacsd)
- [Installation into ~/.emacs.d](#installation-into-emacsd) - [Installation into ~/.emacs.d](#installation-into-emacsd)
- [Alternative: Installation in `~/.minimal-emacs.d`](#alternative-installation-in-minimal-emacsd) - [Alternative: Installation in `~/.minimal-emacs.d`](#alternative-installation-in-minimal-emacsd)
- [Features](#features)
- [Update minimal-emacs.d](#update-minimal-emacsd) - [Update minimal-emacs.d](#update-minimal-emacsd)
- [Customizations](#customizations) - [Customizations](#customizations)
- [How to customize early-init.el and init.el?](#how-to-customize-early-initel-and-initel) - [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) - [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) - [How to activate recentf, savehist, saveplace, and auto-revert?](#how-to-activate-recentf-savehist-saveplace-and-auto-revert)
- [Optimization: Native Compilation](#optimization-native-compilation) - [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 vterm](#how-to-configure-vterm)
- [How to configure Vertico, Consult, and Embark](#how-to-configure-vertico-consult-and-embark) - [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) - [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) - [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 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) - [Why did the author develop minimal-emacs.d?](#why-did-the-author-develop-minimal-emacsd)
- [Features](#features)
- [Author and license](#author-and-license) - [Author and license](#author-and-license)
- [Links](#links) - [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/ 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 ## 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: 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.) (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/` ### 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. 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. 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 ### 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. 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. 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 ## Author and license
Copyright (C) 2024 [James Cherti](https://www.jamescherti.com) Copyright (C) 2024 [James Cherti](https://www.jamescherti.com)