85 lines
1.7 KiB
Bash
85 lines
1.7 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 \
|
|
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"
|