## Config Folder
To confirm path location, open Neovim and type `:echo stdpath('config')`
%%
Config location on personal Macbook Pro 2019 is `~.config/nvim`
Config location on work laptop (within WSL) is `/home/spencer/.config/nvim`
%%
Create `init.lua` file and insert customizations there.
Or download [[Neovim Setup]] from GitHub.
## Remap Reference
| key | command | notes |
| --- | --- | ---
| `<leader>sg` | Search Grep |
| `<leader>sf` | Search Files |
| `grd` | Go to definition |
| `grD` | Go to declaration |
| `grr` | Go to references | "Find Usages" |
| `gO` | Open document symbols | "Show/View Structure" JetBrains equivalent |
| `<leader>d` | Start debug session |
| `<leader>b` | Toggle breakpoint |
## Hotkey Reference
| key | command |
| --- | ---
| `ctrl` + `w` + `x` | swap window positions |
## Packages
Handled with Lazy
- [tpope/vim-sleuth](https://github.com/tpope/vim-sleuth)
- autopairs.lua
- [winwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs)
- colors.lua
- [folke/tokyonight.nvim](https://github.com/folke/tokyonight.nvim)
- [folke/todo-comments.nvim](https://github.com/folke/todo-comments.nvim)
- debug.lua
- [[Neovim dap]]
- gitsigns.lua
- [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)
- indent_line.lua
- [lukas-reineke/indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim)
- lint.lua
- [mfussenegger/nvim-lint](https://github.com/mfussenegger/nvim-lint)
- lsp.lua
- [folke/lazydev.nvim](https://github.com/folke/lazydev.nvim)
- [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
- [stevearc/conform.nvim](https://github.com/stevearc/conform.nvim)
- [Saghen/blink.cmp](https://github.com/Saghen/blink.cmp)
- mini.lua
- [echasnovski/mini.nvim](https://github.com/echasnovski/mini.nvim)
- mini-tree.lua
- [nvim-neo-tree/neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim)
- telescope.lua
- [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
- treesitter.lua
- [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- which-key.lua
- [folke/which-key.nvim](https://github.com/folke/which-key.nvim)
## See Also
[config repo](https://github.com/SpencerCloud/neovim-config)
[[Neovim Settings]]
---
# Deprecated
This is slightly out-of-date, as now for new Neovim projects, I'm simply downloading from my [repo](https://github.com/SpencerCloud/neovim-config).
NB: Much of this is out of date. Delete if unused a while after 2025-04-16.
Taken partially from The Primeagen's [0 to LSP : Neovim RC from Scratch](https://www.youtube.com/watch?v=w7i4amO_zaE), but using [lazy](https://github.com/folke/lazy.nvim) as the package manager since [packer](https://github.com/wbthomason/packer.nvim) is no longer supported.
## Packages
- [[Neovim Lazy | lazy]]
- package manager
- [[Neovim Telescope | Telescope]]
- Fuzzy finder
- May require [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) for ripgrep searching text in files
- nvim-treesitter/nvim-treesitter
- Syntax highlighting
- threprimeagen/harpoon
- File marker / opener
- mbbill/undotree
- tpope/vim-fugitive
- git integration
## Remaps
| key | command | note |
| --- | --- | ---
| `<leader>e` | Explorer |
| `<leader>w` | Write |
| `<leader>we` | Write + Explorer |
| `<leader>ff` | Telescope find files | `telescope.lua` |
| `Ctrl + p` | Search git-tracked filenames | `telescope.lua` |
| `<leader>ps` | ripgrep search | `telescope.lua`<br>requires `ripgrep` installation as CLI tool |
| `<leader>u` | Toggle undo tree |
| `<leader>gs` | "git status" - Run vim git | Set with Fugitive |
### Harpoon
| key | command |
| --- | ---
| `<leader>a` | add file |
| `Ctrl + d` | Toggle quick menu |
| `Ctrl + h/j/k/l` | Open file 1/2/3/4 |