Files
Server-scripts/os_and_install/install_nvim.sh
T
2026-10-24 10:51:21 +02:00

94 lines
1.9 KiB
Bash

#!/usr/bin/env bash
set -e
echo "Installing packages..."
sudo apt update
sudo apt install -y \
git \
curl \
unzip \
build-essential \
ripgrep \
fd-find \
pipx \
wl-clipboard \
xclip \
tmux
if [[ "$(which npm)" == "" ]]; then
sudo apt install npm
fi
echo "Installing latest Neovim..."
sudo snap install nvim --classic || true
echo "Refreshing shell..."
hash -r
echo "Installing language servers..."
sudo npm install -g \
pyright \
typescript \
typescript-language-server \
bash-language-server \
prettier \
eslint_d
echo "Installing Python tools..."
pipx install black || true
pipx install isort || true
pipx install debugpy || true
echo "Installing LazyVim..."
mv ~/.config/nvim ~/.config/nvim.bak.$(date +%s) 2>/dev/null || true
mv ~/.local/share/nvim ~/.local/share/nvim.bak.$(date +%s) 2>/dev/null || true
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
mkdir -p ~/.config/nvim/lua/config
cat >~/.config/nvim/lua/config/options.lua <<'EOF'
vim.opt.clipboard = "unnamedplus"
-- SSH + terminal copy compatibility
vim.opt.mouse = ""
-- tabstop
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.softtabstop = 4
vim.opt.expandtab = true
-- optional
vim.opt.relativenumber = true
vim.opt.number = true
EOF
mkdir -p ~/.config/nvim/lua/plugins
cat >~/.config/nvim/lua/plugins/extras.lua <<'EOF'
return {
{ import = "lazyvim.plugins.extras.dap.core" },
{ import = "lazyvim.plugins.extras.lang.python" },
}
EOF
nvim --headless '+lua require("lazy").load({plugins={"nvim-dap"}})' +qa
echo "Enable dap.core and lang.python in :LazyInstall"
echo
echo "Done."
echo
echo "Start Neovim:"
echo " nvim"
echo
echo "Then run:"
echo " :Lazy sync"
echo " :Mason"
echo
echo "Useful shortcuts:"
echo " Space Space Find files"
echo " Space / Search text"
echo " Space c f Format file"
echo " Space d b Toggle breakpoint"
echo " Space d c Start debugger"