This repository is my personal fork of kickstart.nvim, an amazing starting point to write a custom Neovim configuration. It contains my entire configuration for Neovim, which has become my main text and code editor. Given some efforts to configure it and get the hang of it, Neovim comes with all the features of modern IDEs (e.g. language server, debugger, AI integration, etc.), while being very powerful, light-weight, almost infinitly customizable, super community-driven with a huge plugin eco-system, and living in the terminal, meaning it can be installed and used directly on remote machines. All these aspects make coding with Neovim really much more enjoyable for me, compared to my previous experiences with IDEs.
Besides quite standard (but admittedly numerous) plugins and options I tried to set in a very sensible/not-exotic way, this configuration essentially implements two major features:
-
A modular configuration, which makes possible to disable some features globally, per-project or even per-command. For instance, I can start Neovim in "light mode", which doesn't require a GitHub Copilot subscription or any of the external tool managed with mason.nvim, thus requiring less additional setup. This is convenient when working on a new machine on which I don't want to install all the tools my configuration support, but I still want to be able to benefit from the simpler features of my configuration.
-
Terminal-wide themes, with various color schemes I can change at once through a simple shell command (
ct
, for "change theme") for the main terminal softwares I use: a terminal emulator (WezTerm), a terminal multiplexer (tmux), and a text and code editor (Neovim). This makes possible to change the terminal theme and color scheme for instance to adapt to various lightning environments, or just to suit my taste of the day.
-
Neovim, obviously
-
git, to clone this repository
-
(optional but highly recommended) fd and ripgrep to search files, directories, or within files
-
(optional) npm and Python, especially to install external tools managed with mason.nvim, like language servers, formatters, debuggers, etc.
-
(optional) a valid GitHub Copilot subscription, for AI-assisted auto-completion and chat
-
(optional) some additional features require external tools (e.g. database interative terminal tools for the database explorer plugin), I'm not listing them here but they are mentionned in the source code directly as
NOTE
comments
First of all, install Neovim.
MacOS
# to install the latest stable version:
brew install neovim
# or, to install the nightly version (with the latest features but less stable):
# brew install --HEAD neovim
Ubuntu
# to install the nightly version (with the latest features but less stable):
apt install software-properties-common
add-apt-repository ppa:neovim-ppa/unstable
apt update
apt install neovim
Then, if you already have used Neovim previously with a custom configuration, you will want to back-up this existing configuration and delete Neovim's temporary files, with the following commands for instance:
mv ~/.config/nvim ~/.config/nvim-old
rm -rf ~/.local/share/nvim
After having managed any existing Neovim configuration, clone this repository in the Neovim configuration repository, with:
git clone --depth=1 https://github.com/cjumel/kickstart.nvim ~/.config/nvim
Finally, open Neovim with the nvim
command, and the Neovim plugin manager I use,
lazy.nvim, will automatically install all the required Neovim
plugins.
Once the Neovim plugins are installed, enter the TSInstallInfo
command (type :
to enter
command-line mode, then the command, and finally, press Enter
). This will make the
nvim-treesitter plugin install language
parsers for Treesitter (an essential tool providing a
variety of language-specific features, like synthax highlighting, folding, etc.)
With my configuration, Neovim uses a few language-specific external tools, like language servers,
formatters, or debuggers, so we need to install them as well. To do so, enter the MasonInstallAll
command. This will run the installation of many tools in the background, and you can check their
progress using the Mason
command.
Finally, you can then enter the Copilot setup
command to setup GitHub Copilot credentials.
Alternatively, you can disable the features requiring extra dependencies by using the "light mode" I
implemented with the NVIM_LIGHT_MODE
environment variable passed as 1
or true
(e.g. with the
shell command NVIM_LIGHT_MODE=1 nvim
to start Neovim).
Then, just enter the q
(or quit
) command to quit Neovim, and, afterwards, Neovim will be ready
to be used with this custom configuration with a simple nvim
shell command!