83 lines
2.9 KiB
Markdown
83 lines
2.9 KiB
Markdown
# My Neovim configuration
|
|
|
|
## Motivation
|
|
|
|
After doing my first steps with <https://github.com/nvim-lua/kickstart.nvim>,
|
|
I decided to roll my own, custom, "lightweight" Neovim configuration in order to:
|
|
|
|
- better understand Neovim and configuration/customization, package managers, LSP etc.
|
|
- Have "my own" config that only includes things I really need
|
|
|
|
## Benefits for other people?
|
|
|
|
Not sure if there are any, but I added comments where I
|
|
thought they are necessary.
|
|
|
|
`init.lua` documents any needed external dependencies.
|
|
|
|
## Speed
|
|
|
|
Output from lazy.nvim:
|
|
|
|
```bash
|
|
Startuptime: 25.27ms
|
|
|
|
Based on the actual CPU time of the Neovim process till UIEnter.
|
|
This is more accurate than `nvim --startuptime`.
|
|
LazyStart 10.62ms
|
|
LazyDone 22.66ms (+12.04ms)
|
|
UIEnter 25.27ms (+2.61ms)
|
|
```
|
|
|
|
## Plugins
|
|
|
|
| Name | Purpose | URL |
|
|
| --- | -- | -- |
|
|
| **lazy.nvim** | Package manager | <https://github.com/folke/lazy.nvim> |
|
|
| **telescope.nvim** | Find, Filter, Preview, Pick | <https://github.com/nvim-telescope/telescope.nvim> |
|
|
| **nvim-treesitter** | Parser/syntax highlighting | <https://github.com/nvim-treesitter/nvim-treesitter> |
|
|
| **nvim-treesitter-context** | Shows current line context | <https://github.com/nvim-treesitter/nvim-treesitter-context> |
|
|
| **nvim-treesitter-textobjects** | ? | <https://github.com/nvim-treesitter/nvim-treesitter-textobjects> |
|
|
| **vim-sleuth** | Heuristically set tab/shift mode | <https://github.com/tpope/vim-sleuth> |
|
|
| **nightfox.nvim** | Theme | <https://github.com/EdenEast/nightfox.nvim> |
|
|
| **nvim-web-devicons** | filetype glyphs (icons) for plugins | <https://github.com/nvim-tree/nvim-web-devicons> |
|
|
| **which-key.nvim** | Shows contextual key bindings | <https://github.com/folke/which-key.nvim> |
|
|
|
|
## Command cheat sheet
|
|
|
|
### Vim/Neovim
|
|
|
|
#### Basics
|
|
|
|
- `Space` is the leader key and shows key combinations thanks to `which-key.nvim`
|
|
|
|
#### Plugin fiddling/changes
|
|
|
|
- `:so` Source file
|
|
- `:checkhealth <pluginname>` check for problems with plugin. Use `:checkhealth` to check base and all plugins
|
|
|
|
#### Navigation
|
|
|
|
- `Ctrl+t` to open a file in e.g. a Telescope finder in a new buffer
|
|
- `gt` or `gT` to navigate open buffers
|
|
- `Ctrl+wq` close window
|
|
- `Ctrl+ws` split window horizontally
|
|
- `Ctrl+wv` split window vertically
|
|
- `Ctrl+<h/j/k/l>` switch between split windows
|
|
|
|
### Lazy
|
|
|
|
- `:Lazy` to show the package manager UI
|
|
|
|
### Telescope
|
|
|
|
#### File search
|
|
|
|
- `Ctrl+n` scroll down (**n**ext) file list
|
|
- `Ctrl+p` scroll up (**p**revious) file list
|
|
- `Ctrl+d` scroll **d**own in preview
|
|
- `Ctrl+u` scroll **u**p in preview
|
|
|
|
### Treesitter
|
|
|
|
- `:TSUpdate` update all parsers
|