feat(nvim): migrate editor from vim to Neovim (parity + LSP)
CI / flake (pull_request) Successful in 2m51s
CI / flake (pull_request) Successful in 2m51s
Rewrite editor.nix on programs.nixvim, keeping every prior feature: file tree (nvim-tree, toggle ,,), indent guides (indent-blankline), fugitive, vim-tmux-navigator, Catppuccin Mocha, 2-space hard tabs, and the *Jenkinsfile=groovy rule. Replace the inert ALE with a real LSP stack — nvim-lspconfig, nvim-cmp completion, and tree-sitter for highlighting. Leader is Space; LSP keymaps gd/gr/K/<leader>rn/<leader>ca. Universal servers: nil (Nix), lua_ls, pyright (Python), terraformls. The work box (work.nix) additionally enables omnisharp (C#) and helm_ls (Helm), so the heavy omnisharp closure stays off the personal machines. default.nix drops VISUAL=vim so nixvim's defaultEditor owns $EDITOR/$VISUAL. README and KEYBINDINGS updated (and two stale references corrected). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,7 @@ rebuild, never the generated dotfiles.
|
||||
| Sway (compositor) | [`sway.nix`](./sway.nix) `config.keybindings` + `config.modes`, plus the home-manager Sway module's built-in defaults |
|
||||
| tmux | [`shell.nix`](./shell.nix) `programs.tmux` |
|
||||
| zsh line editor | [`shell.nix`](./shell.nix) `programs.zsh.historySubstringSearch` |
|
||||
| Neovim | [`editor.nix`](./editor.nix) `programs.nixvim` |
|
||||
| foot (terminal) | foot package defaults — only colours are themed (in `sway.nix`) |
|
||||
|
||||
**Conventions**
|
||||
@@ -167,6 +168,26 @@ Only colours are themed; these are foot's default key bindings.
|
||||
|
||||
---
|
||||
|
||||
## Neovim
|
||||
|
||||
Leader is **`Space`**. `Ctrl`+`h/j/k/l` is shared with tmux (see above): it moves
|
||||
across vim splits and tmux panes seamlessly. Everything else is stock vim, plus:
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------------------- | --------------------------------------------------------- |
|
||||
| `,``,` | Toggle the file tree (nvim-tree) — comma pressed twice |
|
||||
| `Ctrl`+`h`/`j`/`k`/`l` | Move between vim splits / tmux panes (vim-tmux-navigator) |
|
||||
| `gd` | Go to definition (LSP) |
|
||||
| `gr` | List references (LSP) |
|
||||
| `K` | Hover documentation (LSP) |
|
||||
| `<leader>rn` | Rename symbol (LSP; `<leader>` is `Space`) |
|
||||
| `<leader>ca` | Code action (LSP) |
|
||||
|
||||
LSP covers Nix, Lua, Python and Terraform (the work box adds C# and Helm);
|
||||
completion (nvim-cmp) appears as you type. `:Git` opens fugitive.
|
||||
|
||||
---
|
||||
|
||||
## zsh
|
||||
|
||||
| Shortcut | Action |
|
||||
|
||||
Reference in New Issue
Block a user