Vim built‑in package loading versus external plugin manager: interoperability for reproducible plugin sets
0 reputation · 20 Jan 2024, 15:57 UTC
Goal: establish a repeatable Vim development environment where the exact plugin set and versions can be reproduced on any machine using only Vim’s startup mechanisms.
Uncertainty: Vim’s native package loading via runtimepath and pack/*/start loads plugins automatically but offers no dependency resolution or version pinning, requiring manual vendoring or submodules. External plugin managers (e.g., vim‑plug, dein.vim, minpac) provide declarative pinning through the vimrc but add their own runtimepath entries and may interact with defaults.vim and the presence or absence of a user vimrc. It is unclear how these two mechanisms coexist when both are present, and which strategy yields a more reliable, cross‑machine reproducible setup.
Specific questions:
- When both built‑in packages and an external plugin manager are present, how does Vim resolve duplicate plugin entries in
runtimepath, and what effect does this have on startup time and plugin precedence? - Does relying solely on Vim’s native
pack/*/startlayout with vendored copies, or delegating version control to an external plugin manager, provide a more dependable, reproducible environment given the interaction withdefaults.vimand the optional uservimrc?