Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isbadawi/vpm
Script to manage vim plugins for pathogen
https://github.com/isbadawi/vpm
Last synced: 22 days ago
JSON representation
Script to manage vim plugins for pathogen
- Host: GitHub
- URL: https://github.com/isbadawi/vpm
- Owner: isbadawi
- License: mit
- Created: 2014-06-02T19:17:57.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-03-01T22:03:00.000Z (over 9 years ago)
- Last Synced: 2024-04-18T04:11:25.631Z (7 months ago)
- Language: Shell
- Homepage:
- Size: 211 KB
- Stars: 8
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vpm
This is a tiny script I use to manage vim plugins installed from GitHub to be
managed by [pathogen][].You can use it like this:
* `vpm ls` prints a list of installed plugins.
* `vpm install url` installs one or more plugins from the given urls. You can
also a pass GitHub user/repos as a shorthand
(e.g. `vpm install tpope/vim-fugitive`).
* `vpm update plugin` downloads any updates to the specified plugins, without
applying them, and outputs the names of any outdated plugins. The incoming
changes can then be inspected with `vpm incoming plugin`, or applied with
`vpm upgrade plugin`. If no plugin is specified, all installed plugins are
updated.
* `vpm incoming plugin` provides a summary of any incoming (downloaded but
unapplied) changes to the specified plugins. In particular, if the plugin
originates from a GitHub repo, a link to the relevant compare view is
provided. If no plugin is specified, incoming changes for all outdated
plugins are summarized.
* `vpm upgrade plugin` applies any incoming changes to the specified plugins.
If no plugin is specified, all outdated plugins are upgraded.
* `vpm uninstall plugin` uninstalls one or more plugins.
* `vpm export` writes a shell script to stdout with vpm commands to install the
currently installed plugins.Some example sessions:
```
$ vpm install tpope/vim-fugitive
Installing vim-fugitive...
``````
$ vpm update
vim-fugitive
$ vpm incoming
Can upgrade vim-fugitive from 5d1c219 to 90ee6fb:
5aaa657 Browse handler API
24d4098 Change arity of browse API
7423d72 Ensure clipboard support before using * register
04fe4bf Set nobuflisted in blame buffers
90ee6fb Pass line1 and line2 as 0 for :Gbrowse without range
View changes on GitHub: https://github.com/tpope/vim-fugitive/compare/5d1c219...90ee6fb
$ vpm upgrade
Upgraded vim-fugitive to 90ee6fb.
```### Installation
The `vpm` script is relatively standalone (the only dependency is git), so just
stick it somewhere on your `$PATH`. You can download it [from this URL][raw],
or clone this repo and create a symlink.### Why use this as opposed to [Vundle][]?
Vundle has more features, is integrated with vim, has been around longer, is
actively maintained, etc. By contrast, this is a small shell script I largely
threw together in an afternoon, and I am the only user so far (let me know when
this isn't true anymore!).My initial motivation for writing this was that I didn't want to have to
declare anything in my `.vimrc` like Vundle makes you do. I don't really have a
good argument against this practice though. I just don't like the aesthetic.### Dealing with non-git plugins
This script assumes all the plugins under `$HOME/.vim/bundle` are git repos.
For plugins that aren't, I use a separate bundle directory that I manage
manually. pathogen supports multiple bundle directories; my `.vimrc` starts
with:```
execute pathogen#infect('bundle/{}', 'bundle-manual/{}')
```### License
MIT[raw]: https://raw.githubusercontent.com/isbadawi/vpm/master/vpm
[pathogen]: https://github.com/tpope/vim-pathogen
[Vundle]: https://github.com/gmarik/Vundle.vim