template for getting started with AstroNvim
- Nerd Fonts (Optional with manual intervention: See Documentation on customizing icons) [1]
- Neovim 0.10+ (Not including nightly)
- Tree-sitter CLI (Note: This is only necessary if you want to use
auto_installfeature with Treesitter) - A clipboard tool is necessary for the integration with the system clipboard (see
:help clipboard-toolfor supported solutions) - Terminal with true color support (for the default theme, otherwise it is dependent on the theme you are using) [2]
- Optional Requirements:
- ripgrep - live grep picker search (
<leader>fw) - lazygit - git ui toggle terminal (
<leader>tlor<leader>gg) - go DiskUsage() - disk usage toggle terminal (
<leader>tu) - bottom - process viewer toggle terminal (
<leader>tt) - Python - python repl toggle terminal (
<leader>tp) - Node - node repl toggle terminal (
<leader>tn)
- ripgrep - live grep picker search (
I recommend installing tree-sitter-cli through cargo and installing rust through rustup if you intend to use rust again later, this is simply done by
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install tree-sitter-cliand then the other apt dependencies,
sudo apt install ripgrep fzf npm python3-pip python3.14-venv python3-full gdu imagemagick ghostscript fd-find wl-clipboard -yIf you installed nvim through apt it is likely an old version, therefore we want to delete it first.
sudo apt remove neovim -y # if installed via aptcurl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
sudo mv /opt/nvim-linux-x86_64 /opt/nvim
echo 'export PATH="$PATH:/opt/nvim/bin"' >> ~/.bashrc
source ~/.bashrc
nvim --versionHere i show how to install JetBrainsMono but you can pick any you like:
mkdir -p ~/.local/share/fonts && cd ~/.local/share/fonts
curl -fLO https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
unzip -o JetBrainsMono.zip -d JetBrainsMono && rm JetBrainsMono.zip && fc-cache -f:MasonInstall clangd clang-format basedpyright black ruff lua-language-server stylua shfmt jq yamlfmt rust-analyzerI recommend using kitty as the terminal emulator and have added a folder called nvim_kitty_config, which one can easily simlink to the correct position in .config/kitty. https://sw.kovidgoyal.net/kitty/
First backup your own kitty files
mv ~/.config/kitty/kitty.conf ~/.config/kitty/kitty.conf.bak 2>/dev/null
mv ~/.config/kitty/theme.conf ~/.config/kitty/theme.conf.bak 2>/dev/nullln -s ~/.config/nvim/kitty_nvim_conf/kitty.conf ~/.config/kitty/kitty.conf
ln -s ~/.config/nvim/kitty_nvim_conf/theme.conf ~/.config/kitty/theme.confin ~/.bashrc or ~/.zshrc or ~/.bashaliases
code() { nvim "$@"; }# Bash completions
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
[ -f ~/.local/share/bash-completion/completions/rustup ]# fzf (Ctrl+R fuzzy history search)
[ -f /usr/share/doc/fzf/examples/key-bindings.bash ] && source /usr/share/doc/fzf/examples/key-bindings.bash
export FZF_DEFAULT_COMMAND='rg --files --hidden --follow --glob "!.git/*"'For git
git config --global core.editor "nvim"For systemwide
sudo update-alternatives --install /usr/bin/editor editor $(which nvim) 100
sudo update-alternatives --config editornvim