My personal Vim setup: .vimrc + plugins via native pack/, all managed by one script.
.vim/init-script/install.sh link # symlink repo to $HOME (backup existing)
.vim/init-script/install.sh install # plugins + system deps (default: full profile)Then open vim. Do the manual steps printed at the end (Tabby setup, LSP servers).
install.sh <command> [--profile full|minimal] [--dry-run] [--yes]
link symlink repo to $HOME (backup existing)
unlink remove symlinks, restore .bak
install install plugins for the profile + system deps
update git pull all installed plugins
clean remove plugins not in the manifest
uninstall [name] remove managed plugins (deps kept)
list show plugins and install status
doctor check required/optional binaries
No argument: welcome screen (list + usage).
full: everything (LSP, Tabby, ALE, fzf, git...)minimal: fzf, nerdtree, rooter, fugitive and the small edit plugins (surround, commentary, repeat, unimpaired). For SSH / servers.
install auto-installs system deps (brew on macOS, apt on Ubuntu).
The rest is only reported, not installed:
- node: Tabby agent + typescript LSP
- Tabby (optional, FOSS AI completion): lazy plugin in
pack/completion/opt/, pinned to 1.4.0. To use it:- install the server. macOS:
brew install tabbyml/tabby/tabby. Linux: see https://tabby.tabbyml.com/docs/installation/ - add a shell alias, for example in
~/.zshrc:alias tabby-on='tabby serve --model Qwen2.5-Coder-1.5B --device metal'(metalon macOS,cpuorcudaelsewhere) - run
tabby-onin a terminal, then:TabbyOnin vim (trigger<C-\>, accept<C-l>). Ctrl+C stops the server.
- install the server. macOS:
- LSP servers: installed from Vim with
:LspInstallServer(rust: rustup + rust-analyzer) - linters/runners: ALE fixers (prettier, eslint) and test runners are per project
Run install.sh doctor to see what is present or missing.
- Plugins clone into
.vim/pack/(gitignored, regenerated byinstall). linksymlinks both.vimrcand.vimto the repo, and moves any existing ones to*.bak. Always runinstallright afterlink: plugins are gitignored, so they must be (re)cloned into the now-symlinked.vim/pack/. If plugins look missing afterlink, you forgotinstall. Your old setup is safe in~/.vim.bak.- bash 3.2 compatible (macOS
/bin/bash). - Config uses
exrc+secure: per-directory.vimrcallowed, unsafe commands blocked.