Skip to content

This is my current Neovim configuration, specifically tailored for Python and Rust coding

License

Notifications You must be signed in to change notification settings

seapagan/nvim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An Opinionated neovim Configuration

This is an opinionated neovim configuration. It is also a work in progress and will be updated as I learn more about neovim and how to configure it.

Installation

Generally, you can clone this repository into your Neovim configuration folder. On Linux/Mac this is usually ~/.config/nvim. Check the Neovim documentation for your specific system if you are unsure.

git clone https://github.com/seapagan/nvim-config.git ~/.config/nvim

Warning

Be aware this will overwrite any existing configuration you have in ~/.config/nvim! You may want to back it up first.

Setup

It is recommended to run :checkhealth in neovim to see if there are any issues that need to be resolved. Most likely there will, unless you have been using neovim for a while and have already resolved them.

Common issues

There are a few common issues that you may encounter when running :checkhealth, depending on your system and how you have installed neovim.

For several of these, you can disable the warning. It will be noted below if we are using a plugin that actually requires the feature.

ripgrep not found

You will need to install ripgrep on your system. You can find it here

No Clipboard tool found

This is a common issue on Linux systems. You will need to install a clipboard tool. On most systems, xclip is available. You can install it with your package manager. For more help, type :help clipboard in neovim.

Missing 'neovim' Node package

This package is required for some plugins to work. The warning message explains how to install it globally.

Missing Perl support

This is optional since none of the plugins I use require Perl support. If you want to enable it you can install the Neovim::Ext module from CPAN. Otherwise, disable this warning.

Missing Python package

This one is useful if you are developing Python code. You can install the pynvim package with pip. If you don't need it, you can disable this warning.

Note that it tells you to install 'neovim' package, but it is actually pynvim to install, which has replaced this. The neovim package will actually install the pynvimpackage anyway (it's a transition package).

Language Support

I intend to add several language support plugins to this configuration.

Note

While the basic debugging support exists, it has not been set up for any languages yet.

At the moment there is support for:

Python

Python LSPs are setup using pyright for the main LSP and ruff for linting and formatting. Mypy is also used for type checking. I still have a bit to tweak on this, for example formatting on save, but it is mostly working.

Rust

Rust support comes from rust-analyzer as the main LSP which gives linting and formatting. I have also added autocompletion etc including for the cargo.toml file.

Lua

Lua support is pretty solid out of the box with Neovim. I have added an LSP and formatting. It's pretty good for Lua development.

JavaScript/TypeScript

There is some LSP support for JavaScript and TypeScript. I am using tsserver as the main LSP, and prettierd is installed for formatting. When I get back to some web development I will be adding more support for this.

Included Plugins

Note

This section is a work in progress.

Planned Plugins / Functionality

See TODO.md for a list of planned plugins.

About

This is my current Neovim configuration, specifically tailored for Python and Rust coding

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages