Neovim config based on lazy.nvim package manager. Can be run on both Linux (default) and macOS. Additionally, Linux environment can be containerized using Distrobox in order to correctly run this in a containerized manner on an immutable Linux OS (e.g. Fedora Silverblue).
Contains the following nvim plugins:
- catppuccin + toggle between light and dark on
<leader>tc - airline
- coc + bindings:
"coc-clangd",
"coc-css",
"coc-diagnostic",
"coc-eslint",
"coc-html",
"coc-json",
"coc-lua",
"coc-prettier",
"coc-toml",
"coc-snippets",
"coc-tsserver",
"coc-yaml",
- commentary
- vim-css-color
- vim-multiple-cursors
- harpoon
- vim-surround
- tagbar
- telescope
- nvim-tree + dev icons
- Install prerequisites:
Fedora:
sudo dnf install -y neovim \ nodejs \ python3 \ python3-pip \ git \ lua \ luarocks \ ctags \ global-ctags sudo npm install --global yarn pip3 install --user --upgrade pynvim
macOS:
- After installing dependencies, set Nerd Font as your default in terminal application (e.g. iTerm2 it is Profiles -> Text -> Font)
- macOS config uses system-wide python located at
/usr/local/bin/python3, not the.pyenvorconda. Please adjust accordingly
brew install \ ctags \ universal-ctags \ node \ git \ lua \ luarocks \ neovim \ font-hack-nerd-font sudo npm install --global yarn /usr/local/bin/python3 -m pip install --user --upgrade pynvim
- Clone repo to
~/.config/nvim - Install neovim via your package manager
- Run
nvim - Everything is done automatically
This installation method provides fully isolated way of running neovim inside the Distrobox (podman) container. Configs are already installed and ready-to-go out of the box.
distrobox create --image ghcr.io/amidg/neovim:latest --name neovim --init-hooks "chmod 777 -R /app"- Install prerequisites as shown above.
- Clone repo
- Execute the following to build:
podman build -t neovim:latest . distrobox create --image localhost/neovim:latest --name neovim --init-hooks "chmod 777 -R /app"
In order to preserve entire neovim environment inside the container, default paths are changed. These variables are changed only inside the container and do not affect user's shell configuration. Default path as stated in documentation:
XDG_CONFIG_HOME=~/.config/nvim XDG_DATA_HOME=~/.local/share/nvim
New path:
XDG_CONFIG_HOME=/app/nvim XDG_DATA_HOME=/app/nvim/data
Add this to your shell, e.g. ~/.bashrc:
alias nvim="distrobox enter --additional-flags '--env XDG_CONFIG_HOME=/app/' --additional-flags '--env XDG_DATA_HOME=/app/data' neovim -- nvim"