| ftplugin | ||
| lua | ||
| luasnip | ||
| spell | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| init.lua | ||
| lazy-lock.json | ||
| Readme.md | ||
| stylua.toml | ||
NⅣM
The fourth in a lineage of configurations for neovim.
Important information
I strongly recommend against just copying my entire configuration, what works for me might not work so well for you. It would also deprive you of learning what you can do yourself.
To use this configuration you MUST have a Nerd Font installed and configured as your default terminal font (I personally use Blex mono).
⚠️ This configuration is currently only tested against nightly versions of neovim and may use features that are not available in the current stable version.
Current features
- Lazy plugin loading
- lualine
- treesitter support
- Filetype specific options (see ftplugin)
Features to come (A.K.A TODO:)
- Full help written in proper help format.
- Crazy useful autocommands.
- Figure out why the keybind for knap doesn't appear immediately after the
autocmdis triggered.
In-depth feature details
In this section you can expect to find semi-detailed descriptions of each feature, this should be enough info for you to understand what does what.
lazy
As part of this configuration I switched from using Packer.nvim to
Lazy.nvim which allows me to easily
make plugins load lazily.
This, in theory, will greatly decrease load times and the overall resource
footprint since I only need to load the plugins that are actually used.
While I haven't (nor do I plan to waste time making) any data to base this on I certainly feel that using Lazy has made neovim feel faster and more responsive.
lualine
Lualine is a slick fast status line for neovim written in lua.
As I prefer to have as much screen as possible dedicated to each open file I have configured lualine to use a global line, this means it only displays once at the bottom of the window.
I also have my own bar module configured that shows if you have spell
enabled or not.
Treesitter
Treesitter is natively supported in neovim and is a much better way of highlighting files than the earlier regular expression based highlighting.
Treesitter also fully parses the file into a syntax tree, allowing for more features including
- Incremental selection:
- Selecting portions of a file based on their scope
- Indentation:
- Indentation based purely on semantics, not on what came before.
- Rainbow brackets
- Brackets that are colour matched based purely on code scope
- Folding
- Code folding that requires no language server, markers, or regular expressions and cares not for indentation
ftplugin
Neovim is an advanced editor with many useful features. In some cases I
would like some of these features to be set certain ways when editing
specific file-types. This is configured using the ftplugin directory.
Each file is named after the file-type I would like the options set for. If you feel you want to make a specific file-type have specific options then this is where you can make that happen.
The headings below let you know what options are set for currently configured file-types.
- spell enabled
- textwidth 75
markdown
- spell enabled
- textwidth 75
vimwiki
- spell enabled
- textwidth 75