Skip to content

Instantly share code, notes, and snippets.

@thefekete
Created June 13, 2018 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thefekete/47fe7e37cf6c99e1ba78bee56940422f to your computer and use it in GitHub Desktop.
Save thefekete/47fe7e37cf6c99e1ba78bee56940422f to your computer and use it in GitHub Desktop.
Vim Packages

If you haven't done so already, run :help packages in vim and read the whole section to get an understanding of how the package system works in vim.

George Ornbo also has a very good write up that explains it well.

Preparation

First we need to create the directories that we will install the plugins too:

mkdir -vp $XDG_CONFIG_HOME/vim/pack/$USER/{start,opt}

If you haven't set up your vim installation to be XDG compliant, then replace $XDG_CONFIG_HOME with ~/.vim in the commands in this document.

Running the above command will create the following directory structure:

$XDG_CONFIG_HOME/vim/pack/
└── $USER
    ├── opt
    └── start

Easy Package Management

Now that we have the requisite folder structure, we can install a package. If you are using git to manage your vim config, then skip down to the next section on using git submodule.

Installing a package

Installing a package is just a matter of moving the package dir to the pack/start or pack/opt. Read :help packages for the difference between the two.

If you're cloning a git repository, the following command will do the trick.

( set -ex
	cd $XDG_CONFIG_HOME/vim/pack/$USER/start
	git clone <package_repo>
	vim +helptags\ ALL +quit )

If you just want to cp the package into place, that's fine too. Just put it under pack/start/<package-name> and don't forget to run :helptags ALL from vim to get the help tags updated.

Note that vim may complain with something like the following when running :helptags ALL:

E152: Cannot open /usr/share/vim/vim81/doc/tags for writing

This is just because you don't have permissions to write the tags file that would go in that directory. Don't worry though, since it's a system directory, there's probably already a tags file there and doesn't need to be updated anyway. If it bothers you, just run:silent! helptags ALL instead, but you wont see any other warnings that may come up..

Updating a package

When updating the package, you can just enter the package dir and run git pull if it's a git repository. Otherwise, just mv the updated files into place. Don't forget to run :helptags again in case something changed in the documentation!

( set -ex
	cd $XDG_CONFIG_HOME/vim/pack/$USER/start/<package>
	git pull
	vim +helptags\ ALL +quit )

Removing a package

Removing a package is as simple as deleting the package directory and running :helptags to update the docs.

rm -rf $XDG_CONFIG_HOME/vim/pack/$USER/start/<package> \
	&& vim +helptags\ ALL +quit

Package management with git submodule

TODO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment