Create and push an initial working version of this repo before I change things on this machine Signed-off-by: Robert Morrison <robert@closedless.xyz>
98 lines
3.5 KiB
Markdown
98 lines
3.5 KiB
Markdown
# 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.
|
|
<!-- TODO: add screenshot of bar -->
|
|
I also have my own bar module configured that shows if you have `spell`
|
|
enabled or not.
|
|
<!-- TODO: add screenshot for this -->
|
|
|
|
### 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
|
|
<dl>
|
|
<dt><b>Incremental selection:</b></dt>
|
|
<dd>Selecting portions of a file based on their scope</dd>
|
|
<dt><b>Indentation:</b></dt>
|
|
<dd>Indentation based purely on semantics, not on what came before.</dd>
|
|
<dt><b>Rainbow brackets</b></dt>
|
|
<dd>Brackets that are colour matched based purely on code scope</dd>
|
|
<dt><b>Folding</b></dt>
|
|
<dd>Code folding that requires no language server, markers, or regular
|
|
expressions and cares not for indentation</dd>
|
|
<dt><b></b></dt>
|
|
</dl>
|
|
|
|
### 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
|