The fourth entry in a lineage of configurations. Fully separated due to a complete restructure of how it all works.
Go to file
Robert Morrison fb537df11b chore(init): Initial working version
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>
2023-09-10 22:22:30 +01:00
ftplugin chore(init): Initial working version 2023-09-10 22:22:30 +01:00
lua chore(init): Initial working version 2023-09-10 22:22:30 +01:00
luasnip chore(init): Initial working version 2023-09-10 22:22:30 +01:00
spell chore(init): Initial working version 2023-09-10 22:22:30 +01:00
.gitignore chore(init): Initial working version 2023-09-10 22:22:30 +01:00
.pre-commit-config.yaml chore(init): Initial working version 2023-09-10 22:22:30 +01:00
init.lua chore(init): Initial working version 2023-09-10 22:22:30 +01:00
lazy-lock.json chore(init): Initial working version 2023-09-10 22:22:30 +01:00
Readme.md chore(init): Initial working version 2023-09-10 22:22:30 +01:00
stylua.toml chore(init): Initial working version 2023-09-10 22:22:30 +01:00

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

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 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.

mail

  • spell enabled
  • textwidth 75

markdown

  • spell enabled
  • textwidth 75

vimwiki

  • spell enabled
  • textwidth 75