My Neovim configuration
- Lua 87.6%
- TeX 11.9%
- Shell 0.5%
| lua/weeheavy | ||
| init.lua | ||
| lazy-lock.json | ||
| README.md | ||
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 its configuration/customization, package managers, LSP etc. and have "my own" config that only includes things I really need.
Installation
- Install Neovim 0.9.x
- Install OS dependencies documented in
init.lua - Clone this Git repository to
~/.config/nvim
Finishing touches
- Install Treesitter comment parser (to highlight
FIXME:/NOTE:/TODO:/XXX:) with:TSInstall comment - Create a
$HOME/.ignorefile and add big, useless directories to it, so Telescope/ripgrep/fd can ignore those. Details inlua/weeheavy/plugins/telescope-fzf-native.lua
Speed
Output from lazy.nvim profiling (:Lazy, then P):
Startuptime: 33.68ms
Based on the actual CPU time of the Neovim process till UIEnter.
This is more accurate than `nvim --startuptime`.
LazyStart 10.87ms
LazyDone 31.22ms (+20.35ms)
UIEnter 33.68ms (+2.45ms)
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
Spaceis the leader key and shows key combinations thanks towhich-key.nvim
Plugin fiddling/changes
:soSource file:checkhealth <pluginname>check for problems with plugin. Use:checkhealthto check base and all plugins
Navigation
Ctrl+tto open a file in e.g. a Telescope finder in a new buffergtorgTto navigate open buffersCtrl+wqclose windowCtrl+wssplit window horizontallyCtrl+wvsplit window verticallyCtrl+<h/j/k/l>switch between split windows
Lazy
:Lazyto show the package manager UI
Telescope
Telescope file search
Ctrl+nscroll down (next) file listCtrl+pscroll up (previous) file listCtrl+dscroll down in previewCtrl+uscroll up in preview
Treesitter
:TSUpdateupdate all parsers:TSModuleInfoshow installed parsers
Open issues/TODOs
- Git handling in general
- Directory browsing with Telescope
- Solution to show short Git logs (potentially without fugitive)
- Hinting for trailing spaces (EOL) and blank space on line