94 lines
1.9 KiB
Bash
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"
|