Use dein instead of vim-plug #500
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
IStartup time improved:
Above benchmark is using 'Vim' not neovim, and using:
The gap difference in startup time between dein and vim-plug will be larger with more plugins, in favor of dein.
In addition to startup time, runtime responsiveness will be faster due to merging the runtimepath.
Other advantages of dein:
Disadvantage of dein:
:messagelog can be read after it is all done. A couple plugins improve on that:dein#update()first. I plan on putting this plugin in a 'ddu' layer I'm working on, to allow subsequent updates with dein to look nice. The interface is an improvement over vim-plug's, which allow navigation of changes in the plugins.Other effects of PR:
init.spacevim."\<Space>"ininit.spacevim.info.vimmanifest and.spacevimlayer problems.spacevim#util#.:call dein#update()is used instead of:PlugUpdate. space-vim detection of missing plugins and press of 'y' on 'y/N' prompt calls dein#update() now.packages.vimandconfig.vimto support differences with dein.packages.vimare no longer parsed on launch as the list of plugins is cached by dein, any configuration inpackages.vimhad to be moved toconfig.vim.if executable('node') && IsSufficient('node --version')to determine if systemwide install of Node.js should be used or if Node.js as plugin should be used. This info is either cached by dein or cached in~/.local/state/vim, to minimize startuptime.WIP problems to resolve before PR is ready for review:
Refactor symbolic links ing:spacevim_plug_hometo index into dein'srepos/github.com/<author>/<pluginname>. This is to be user-friendly with backwards compatibility with former vim-plug structure, the symbolic links replicate that structure. At present the links are only made duringvim-plug->deinplugin migration, plugins added later are don't have links.Add avim-plug->deinmigration procedure to renameautoload/plug.vimwith different extension so it isn't autoloaded anymore.~/.local/state/vimappears to be re-written when it should just be read. EDIT: maybe fixed long time ago, need to find notes.In.spacevim,PluginUserInit()does gety/Nprompt to update plugins, and dein is invoked, but doesn't appear to retrieve plugin. Might be issue inspacevim#vim#plug#Plug(), not sure why dein elects not to download it.