This repo contains my evergrowing Neovim configuration. It is still a little messy, but I am working on it ;) While you are welcome to clone and use the whole repo as your config, I wouldn't recommend this though. I believe that your config should be personal and grow together with your knowledge of the editor. I encourage you to create your config from scratch (or almost from scratch), then look at other configs and take whatever snippets you like from them. I, myself, was inspired by LazyVim and LunarVim, so check them out as well!
- Designed with reloadability in mind. A lot of scripts can be reloaded without restarting Neovim, but I generally cannot make all the plugins reloadable, so it never will be complete.
- Prefer
lua
overvimscript
. I believe that a new user should never learnvimscript
, and I only knowlua
myself. - All key mappings in a single file. Even the plugin key mappings settings are converted to the single compact format and stored in
config/keymaps.lua
file. That is easier for me to manage, than storing keymaps in separate files for each plugin. - All plugin installations in a single file. It is for clear separation of plugin management (
installed_plugins.lua
) and plugin configuration (plugins
dir).
- Plugin management (lazy)
- Autocompletion (nvim-cmp, LuaSnip)
- Language server protocol (nvim-lspconfig)
- Tree explorer (files, classes and more: neo-tree.nvim)
- Fuzzy finder (Telescope)
- Fast navigation (Flash)
- Git integration (GitSigns)
- Smart undo (UndoTree)
- Session management (
core/session.lua
) - Project specific settings
- Debugger integration