Go to file
2023-07-17 21:43:29 +02:00
ftplugin Improve python configuration 2023-07-17 10:19:15 +02:00
lua Moved to lazy plugin manager 2023-07-17 21:43:29 +02:00
init.lua Only use spaces instead of tabs for python files 2023-02-11 14:22:58 +01:00
README.md Add clangd support 2023-02-11 16:08:50 +01:00

Fully featured neo-vim configuration

This repository contains my personnal neovim setup, intended to replace my old vim setup.

Next are a few usefull informations that I mainly wrote for me to remember but that should allow you to use the same setup as me if you want to.

Installation

Clone the repository

This will create a new nvim folder in your .config folder, containing all the configuration stuff

git clone https://github.com/Steins7/nvim ~/.config/nvim

And that's it for the configuration part. Once nvim is started, the necessary plugins will be automatically fetched and stored ~/.local/nvim. At this point, you are ready to install the external depencies needed for all those plugins to work properly.

External depencies

Here is a list of all external depencies you'll need:

  • universal ctags, ctags won't work (note that arch's universal ctags package is named ctags...), for tagbar
  • tree-sitter, for syntax coloration
  • rust-analyzer and clangd as LSP servers

On arch, you can just use the following command :

pacman -Syu ctags tree-sitter rust-analyzer clangd

Once the dependencies are installed, type :checkhealth to verify that everything is properly detected. You should, at most, see a warning about node and another about the clipboard. For clangd to work properly, create a compile_flags.txt file at the root of the project and fill it with the flags used for compilation (one per line). Cpu-specific flags may cause the analysis to fail and should be ignored (e.g. mcpu, mthumb, ...)

Syntax coloration

By default, this config only supports C/C++, Lua and Rust. You can add more default languages in lua/plugins.lua or add them on the fly by typing :TSInstall <language name>

Tinkering

The configuration is quite small and straight-forward :

  • init.lua contains all the configuration and key bindings, see more information here
  • lua/plugins.lua contains the list of plugins, see more information here