Published multiple files
All checks were successful
Build and Deploy Quartz / build (push) Successful in 26s
All checks were successful
Build and Deploy Quartz / build (push) Successful in 26s
This commit is contained in:
115
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md
Normal file
115
content/10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md
Normal file
@@ -0,0 +1,115 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/nvim.md
|
||||
title: nvim (Neovim)
|
||||
created: 2026-01-30T08:08:10.433-07:00
|
||||
modified: 2026-02-05T09:12:58.916-07:00
|
||||
tags:
|
||||
- editor
|
||||
- terminal
|
||||
- development
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Neovim is a hyperextensible Vim-based text editor. I use [LazyVim](http://www.lazyvim.org/) as a pre-configured distribution for a batteries-included experience.
|
||||
|
||||
## Installation
|
||||
|
||||
**Arch Linux:**
|
||||
```bash
|
||||
sudo pacman -S neovim
|
||||
```
|
||||
|
||||
**Dependencies for full LazyVim experience:**
|
||||
```bash
|
||||
sudo pacman -S git lazygit ripgrep fd nodejs npm
|
||||
```
|
||||
|
||||
## LazyVim Setup
|
||||
|
||||
LazyVim provides sensible defaults, plugin management, and a curated set of plugins.
|
||||
|
||||
**Backup existing config:**
|
||||
```bash
|
||||
mv ~/.config/nvim ~/.config/nvim.bak
|
||||
mv ~/.local/share/nvim ~/.local/share/nvim.bak
|
||||
```
|
||||
|
||||
**Install LazyVim:**
|
||||
```bash
|
||||
git clone https://github.com/LazyVim/starter ~/.config/nvim
|
||||
rm -rf ~/.config/nvim/.git
|
||||
nvim
|
||||
```
|
||||
|
||||
On first launch, LazyVim will install all plugins automatically.
|
||||
|
||||
## Key Bindings (LazyVim defaults)
|
||||
|
||||
### General
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Space` | Leader key |
|
||||
| `Space Space` | Find files |
|
||||
| `Space /` | Live grep |
|
||||
| `Space e` | File explorer |
|
||||
| `Space gg` | LazyGit |
|
||||
|
||||
### Buffers
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Space bd` | Delete buffer |
|
||||
| `H` / `L` | Prev/next buffer |
|
||||
| `Space bb` | Switch buffer |
|
||||
|
||||
### Windows
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Ctrl+h/j/k/l` | Navigate windows |
|
||||
| `Space w-` | Split horizontal |
|
||||
| `Space w\|` | Split vertical |
|
||||
|
||||
### Code
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `gd` | Go to definition |
|
||||
| `gr` | Find references |
|
||||
| `K` | Hover documentation |
|
||||
| `Space ca` | Code action |
|
||||
| `Space cf` | Format |
|
||||
|
||||
## Configuration
|
||||
|
||||
LazyVim config lives in `~/.config/nvim/lua/`:
|
||||
|
||||
### Add plugins
|
||||
`~/.config/nvim/lua/plugins/custom.lua`:
|
||||
```lua
|
||||
return {
|
||||
-- Add plugins here
|
||||
{ "tpope/vim-surround" },
|
||||
|
||||
-- Override existing plugin config
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = { "lua", "python", "typescript" },
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### Options
|
||||
`~/.config/nvim/lua/config/options.lua`:
|
||||
```lua
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.wrap = true
|
||||
vim.opt.tabstop = 4
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- LazyVim docs: http://www.lazyvim.org/
|
||||
- Neovim docs: https://neovim.io/doc/
|
||||
- `:Lazy` - Plugin manager UI
|
||||
- `:Mason` - LSP/formatter installer
|
||||
Reference in New Issue
Block a user