# My Neovim configuration ## Motivation After doing my first steps with , 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 | | | **telescope.nvim** | Find, Filter, Preview, Pick | | | **nvim-treesitter** | Parser/syntax highlighting | | | **nvim-treesitter-context** | Shows current line context | | | **nvim-treesitter-textobjects** | ? | | | **vim-sleuth** | Heuristically set tab/shift mode | | | **nightfox.nvim** | Theme | | | **nvim-web-devicons** | filetype glyphs (icons) for plugins | | | **which-key.nvim** | Shows contextual key bindings | | ## 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 ` 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+` 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