#!/usr/bin/env bash set -e echo "Installing packages..." sudo apt update sudo apt install -y \ git \ curl \ unzip \ build-essential \ ripgrep \ fd-find \ npm \ pipx \ wl-clipboard \ xclip \ tmux 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 = "" -- optional vim.opt.relativenumber = true vim.opt.number = true EOF mkdir -p ~/.config/nvim/lua/plugins cat > ~/.config/nvim/lua/plugins/debug.lua <<'EOF' return { { import = "lazyvim.plugins.extras.dap.core" }, { import = "lazyvim.plugins.extras.lang.python" }, } EOF 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"