# 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](https://www.nerdfonts.com) 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](#lazy) - [lualine](#lualine) - [treesitter support](#treesitter) - Filetype specific options (see [ftplugin](#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 `autocmd` is 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`](https://github.com/folke/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](https://github.com/nvim-lualine/lualine.nvim) 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. #### mail - spell enabled - textwidth 75 #### markdown - spell enabled - textwidth 75 #### vimwiki - spell enabled - textwidth 75