I have been using pathogen as a plugin manager for my neovim.
It is a very simple tool that requires no special commands to install a plugin.
Just clone the plugin repository to a specified folder (bundle by default) and pathogen will add the plugin to the runtime-path(*) on next restart.
It works fine but, the thing is, what if you end up migrating your system or for some reason, you had to recover your vim config. There is no way to keep a record of the plugins you had installed previously.
Zum Beispiel:
-
vim-plug stores the plugins installed in the
vimrcbetweencall plug#begin()andcall plug#end().
I wanted something quick and similar to vim-plug's solution.
So, I wrote a mini bash script.
It is just a combination of a PLUGINS[] meant to hold the url(s) for all the plugins used and a for-loop that clones them to the bundle directory.
Here is the code
#!/bin/bash
# I STORE THE plugins LIST IN A SEPARATE shell file
export plugins=(
"https://github.com/flazz/vim-colorschemes.git colorschemes"
# ...OtherPlugins
)
#!/bin/bash
# THE FILE THAT CONTAINS THE plugins LIST
source plugins.sh
cd ./bundle
for plugin in "${plugins[@]}"; do
git clone -q $plugin
done
Sure, there may be some more sophisticated tools for the same out-there but, till now, this script works for me.
Caveats
Yes, there are some caveats like:
- There is no check if a plugin already exists and this may be a problem for people who install new plugins frequently.
(NB: I may update the script to address these caveats)
Custom Cloned Directory Name?
Yes, you can still specify a custom-directory name for the plugin so that it is registered under the runtime-path appropriately. And all you need to do is add the directory name after the git url.
"https://SOME_GIT_URL.git CUSTOM_DIRECTORY_NAME"
For example in the above image, I have specified colorschemes as the custom-directory-name and hence, git will clone the vim-colorschemes plugin to colorschemes directory and not vim-colorschemes directory.
Using it
(I have presumed that you are using the same file/variable names as my dotfiles)
- Add the new plugin's git repository url to
pluginslist specified inplugins.sh - Run the
plug_install.sh - Start your
viminstance and run:CheckHealthto see if the installed plugin is setup correctly
You can see this setup in action in my dotfiles repository.
NB: Let me know if you have any questions. :)

Top comments (0)