mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-09-19 00:11:22 +02:00
security(home): drop all neovim plugins to shrink supply-chain exposure (#259)
* chore(home): drop AstroNvim bundle and centralize editors Remove the bundled Neovim plugin tree to shrink supply-chain exposure; keep a minimal programs.neovim backup. Daily editing stays Helix-first with Yazi and Zellij. - Add Helix/Neovim docs, glossary, and cheatsheets under core/editors/. - Default EDITOR/VISUAL to hx; use SUDO_EDITOR nvim --clean for sudoedit and other sensitive edits; adjust Nushell buffer_editor accordingly. - Apply Helix Home Manager settings (keys, editor UI) in core/editors/helix. - Keep heavy language-server tooling only in home/base/tui/editors/packages.nix; wire it via an explicit default.nix import so core stays lightweight. - Extend modules/base packages.nix where that profile sets global editor env. * docs: link editors, VS Code, and agents from README Document tui/editors versus core/editors; add root README pointers to GUI vscode (Home Manager) and agents/. Cross-link heavy packages README from core/editors.
This commit is contained in:
@@ -1,190 +0,0 @@
|
||||
# Neovim Editor
|
||||
|
||||
My Neovim config based on [AstroNvim](https://github.com/AstroNvim/AstroNvim). For more details,
|
||||
visit the [AstroNvim website](https://astronvim.com/).
|
||||
|
||||
This document outlines neovim's configuration structure and various shortcuts/commands for efficient
|
||||
usage.
|
||||
|
||||
## Screenshots
|
||||
|
||||
 
|
||||
|
||||
## Configuration Structure
|
||||
|
||||
| Description | Standard Location | My Location |
|
||||
| ------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------- |
|
||||
| Neovim's config | `~/.config/nvim` | AstroNvim's github repository, referenced as a flake input in this flake. |
|
||||
| AstroNvim's user configuration | `$XDG_CONFIG_HOME/astronvim/lua/user` | [./astronvim_user/](./astronvim_user/) |
|
||||
| Plugins installation directory (lazy.nvim) | `~/.local/share/nvim/` | The same as standard location, generated and managed by lazy.nvim. |
|
||||
| LSP servers, DAP servers, linters, and formatters | `~/.local/share/nvim/mason/`(by mason.nvim) | [./default.nix](./default.nix), installed by nix. |
|
||||
|
||||
## Update/Clean Plugins
|
||||
|
||||
Note that lazy.nvim will not automatically update plugins, so you need to update them manually.
|
||||
|
||||
```bash
|
||||
:Lazy update
|
||||
```
|
||||
|
||||
Remove all unused plugins:
|
||||
|
||||
```bash
|
||||
:Lazy clean
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
> via `Justfile` located at the root of this repo.
|
||||
|
||||
```bash
|
||||
# testing
|
||||
just nvim-test
|
||||
|
||||
# clear test data
|
||||
just nvim-clear
|
||||
```
|
||||
|
||||
## Cheetsheet
|
||||
|
||||
Here is the cheetsheet related to my Neovim configs. Please read vim's common cheetsheet at
|
||||
[../README.md](../README.md) before reading the following.
|
||||
|
||||
### Incremental Selection
|
||||
|
||||
Provided by nvim-treesitter.
|
||||
|
||||
| Action | Shortcut |
|
||||
| ----------------- | -------------- |
|
||||
| init selection | `<Ctrl-space>` |
|
||||
| node incremental | `<Ctrl-space>` |
|
||||
| scope incremental | `<Alt-Space>` |
|
||||
| node decremental | `Backspace` |
|
||||
|
||||
### Search and Jump
|
||||
|
||||
Provided by [flash.nvim](https://github.com/folke/flash.nvim), it's a intelligent search and jump
|
||||
plugin.
|
||||
|
||||
1. It enhances the default search and jump behavior of neovim.(search with prefix `/`)
|
||||
|
||||
| Action | Shortcut |
|
||||
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
|
||||
| Search | `/`(normal search), `s`(disable all code highlight, only highlight matches) |
|
||||
| Treesitter Search | `yR`,`dR`, `cR`, `vR`, `ctrl+v+R`(around your matches, all the surrounding Treesitter nodes will be labeled) |
|
||||
| Remote Flash | `yr`, `dr`, `cr`, (around your matches, all the surrounding Treesitter nodes will be labeled) |
|
||||
|
||||
### Commands & Shortcuts
|
||||
|
||||
| Action | Shortcut |
|
||||
| ----------------------------- | -------------- |
|
||||
| Open file explorer | `<Space> + e` |
|
||||
| Focus Neotree to current file | `<Space> + o` |
|
||||
| Toggle line wrap | `<Space> + uw` |
|
||||
| Show line diagnostics | `gl` |
|
||||
| Show function/variable info | `K` |
|
||||
| References of a symbol | `gr` |
|
||||
| Next tab | `]b` |
|
||||
| Previous tab | `[b` |
|
||||
|
||||
### Window Navigation
|
||||
|
||||
- Switch between windows: `<Ctrl> + h/j/k/l`
|
||||
- Resize windows: `<Ctrl> + Up/Down/Left/Right` (`<Ctrl-w> + -/+/</>`)
|
||||
- Note: On macOS, conflicts with system shortcuts
|
||||
- Disable in System Preferences -> Keyboard -> Shortcuts -> Mission Control
|
||||
|
||||
### Splitting and Buffers
|
||||
|
||||
| Action | Shortcut |
|
||||
| ---------------- | ------------- |
|
||||
| Horizontal Split | `\` |
|
||||
| Vertical Split | `\|` |
|
||||
| Close Buffer | `<Space> + c` |
|
||||
|
||||
### Editing and Formatting
|
||||
|
||||
| Action | Shortcut |
|
||||
| ----------------------------------------------------- | -------------- |
|
||||
| Toggle buffer auto formatting | `<Space> + uf` |
|
||||
| Format Document | `<Space> + lf` |
|
||||
| Code Actions | `<Space> + la` |
|
||||
| Rename | `<Space> + lr` |
|
||||
| Opening LSP symbols | `<Space> + lS` |
|
||||
| Comment Line(support multiple lines) | `<Space> + /` |
|
||||
| Open filepath/URL at cursor(neovim's builtin command) | `gx` |
|
||||
| Find files by name (fzf) | `<Space> + ff` |
|
||||
| Find files by name (include hidden files) | `<Space> + fF` |
|
||||
| Grep string in files (ripgrep) | `<Space> + fw` |
|
||||
| Grep string in files (include hidden files) | `<Space> + fW` |
|
||||
|
||||
### Git
|
||||
|
||||
| Action | Shortcut |
|
||||
| -------------------------- | --------------- |
|
||||
| Git Commits (repository) | `:<Space> + gc` |
|
||||
| Git Commits (current file) | `:<Space> + gC` |
|
||||
| Git Branches | `:<Space> + gb` |
|
||||
| Git Status | `:<Space> + gt` |
|
||||
|
||||
### Sessions
|
||||
|
||||
| Action | Shortcut |
|
||||
| ------------------------------ | -------------- |
|
||||
| Save Session | `<Space> + Ss` |
|
||||
| Last Session | `<Space> + Sl` |
|
||||
| Delete Session | `<Space> + Sd` |
|
||||
| Search Session | `<Space> + Sf` |
|
||||
| Load Current Directory Session | `<Space> + S.` |
|
||||
|
||||
### Debugging
|
||||
|
||||
Press `<Space> + D` to view available bindings and options.
|
||||
|
||||
### Search and Replace Globally
|
||||
|
||||
| Description | Shortcut |
|
||||
| ------------------------------------------ | -------------- |
|
||||
| Open spectre.nvim search and replace panel | `<Space> + ss` |
|
||||
|
||||
Search and replace via cli(fd + sad + delta):
|
||||
|
||||
```bash
|
||||
fd "\\.nix$" . | sad '<pattern>' '<replacement>' | delta
|
||||
```
|
||||
|
||||
### Surrounding Characters
|
||||
|
||||
Provided by mini.surround plugin.
|
||||
|
||||
- Prefix `gz`
|
||||
|
||||
| Action | Shortcut | Description |
|
||||
| ------------------------------ | -------- | ----------------------------------------------- |
|
||||
| Add surrounding characters | `gzaiw'` | Add `'` around the word under cursor |
|
||||
| Delete surrounding characters | `gzd'` | Delete `'` around the word under cursor |
|
||||
| Replace surrounding characters | `gzr'"` | Replace `'` by `"` around the word under cursor |
|
||||
| Highlight surrounding | `gzh'` | Highlight `'` around the word under cursor |
|
||||
|
||||
### Text Manipulation
|
||||
|
||||
| Action | |
|
||||
| -------------------------------------- | ------------- |
|
||||
| Join with LSP intelligence(treesj) | `<Space> + j` |
|
||||
| Split Line into Multiple Lines(treesj) | `<Space> + s` |
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
| Action | |
|
||||
| --------------------------------- | --------------- |
|
||||
| Show all Yank History | `:<Space> + yh` |
|
||||
| Show undo history | `:<Space> + uh` |
|
||||
| Show the path of the current file | `:!echo $%` |
|
||||
|
||||
## Additional Resources
|
||||
|
||||
For more detailed information and advanced usage, refer to:
|
||||
|
||||
1. [AstroNvim walkthrough](https://astronvim.com/Basic%20Usage/walkthrough)
|
||||
2. [./astronvim_user/mapping.lua](./astronvim_user/mappings.lua)
|
||||
3. All the plugins' documentations
|
||||
Reference in New Issue
Block a user