36 ms·
Vim Plug – A minimalist Vim plugin manager
- GhotiFish 12y agoI just tested this, the parallel updates and installs are fantastic, however, I have "YouCompleteMe" as a plugin, and it consistently fails to install, and when it tries it seriously lags out. Vim will freeze for 4 or so minutes, and it fails with an error "fatal: destination path '~/.vim/plugged/YouCompleteMe' already exists and is not an empty directory" Something strange there. Trying to resolve it, I don't doubt that there is maybe something I neglected to do, but that's not a black mark on me, vundle has no trouble with this, and doesn't complicate it either. So cool project, young project, if I can resolve the issue I'll definitely be using it. edit: Wait a minute, miiiight just be YouCompleteMe. Doing more testing! edit2: noooope, vim-plug installed YouCompleteMe in such a way as to mess up the repository. Manual installations work fine.
- junegunn 12y agoAs I answered in the issue [1] the problem is likely caused by the task timeout. Maybe vim-plug should delete the repo directory if timeout occurs during the installation. A workaround at the moment is to increase `g:plug_timeout` so that it never times out. [1]: https://github.com/junegunn/vim-plug/issues/75#issuecomment-55513671 https://github.com/junegunn/vim-plug/issues/75#issuecomment-...
- pyed 12y agoI'm a fan of this plugin, I've been using it for a month now. The parallel downloading is very beneficial for someone with slow internet.
- coherentpony 12y agopyed, you are hellbanned.
- joemi 12y agoIsn't telling people that they're hellbanned against the whole point of hellbanning?
- GhotiFish 12y agoHN uses the tool indiscriminately without any form of communication, on the assumption that everyone who would dare violate a HN conduct rule simply can not be reasoned with. There are some people who really can't be reasoned with, but it's not everyone.
- icebraining 12y agoNot if that particular instance of hellbanning was unjustified. That said, coherentpony may just be against hellbanning as a whole. I find it a tasteless tool myself.
- hernan604 12y agolooking good
- coherentpony 12y agoSee also pathogen [1] and vundle [2]. [1] https://github.com/tpope/vim-pathogen https://github.com/tpope/vim-pathogen [2] https://github.com/gmarik/Vundle.vim https://github.com/gmarik/Vundle.vim
- fndrplayer13 12y agoYeah - why should a user switch over from Pathogen or Vundle? I'm not trying to be a jerk -- just suggesting that that explanation is probably worth giving.
- phlyingpenguin 12y agoThe biggest reason over Pathogen is automatic installation of your dependent plugins. Biggest reasons over Vundle is parallel downloading, dynamic plugin loading, and static plugins. (all of the reasons for me, YMMV) I've found even that I can install vim-plug with only a few lines of vimscript so that I don't even need to store a .vim directory in my dotfiles repository. Everything can just be installed and run the first time I start vim on a machine, and I can easly :PlugUpdate to get updates to any of my installed plugins.
- saidajigumi 12y agoFWIW, this is also quite possible with Vundle. I keep my plugin management in a separate file which also contains the Vundle bootstrap logic for new systems. This stanza sets up Vundle if it isn't already installed...: https://github.com/jwhitley/vimrc/blob/master/.vim/bootstrap/bundles.vim#L7 https://github.com/jwhitley/vimrc/blob/master/.vim/bootstrap... ... and this one after the plugin definitions installs the remaining bundles: https://github.com/jwhitley/vimrc/blob/master/.vim/bootstrap/bundles.vim#L96 https://github.com/jwhitley/vimrc/blob/master/.vim/bootstrap... (I haven't updated this to the new "Plugin" Vundle syntax yet; the change is local but not pushed.) That said, features like vim-plug's postupdate hooks are sweet.
- junegunn 12y agoThe most obvious benefit I believe is its ability to update plugins in parallel. A GIF [1] shows that it managed to update 40 plugins in mere 4 seconds. The other notable point is that it allows you to load plugins on demand, which helps reducing the startup time greatly [2] if you happened to use many number of plugins. It also provides some other nice features that pathogen or vundle do not have while still being easy to use. [1]: https://raw.githubusercontent.com/junegunn/i/master/vim-plug/40-in-4.gif https://raw.githubusercontent.com/junegunn/i/master/vim-plug... [2]: http://junegunn.kr/images/vim-startup-time.png http://junegunn.kr/images/vim-startup-time.png
- vicaya 12y agoThis is anything but minimalist. Why do I need a slower plugin manager that requires editing .vimrc to enable/disable plugins, when a couple of simple shell commands is faster and less error prone? vimenable() { mv $VIM_DISABLED/$1 $VIM_BUNDLE } vimdisable() { mv $VIM_BUNDLE/$1 $VIM_DISABLED } vimupdate() { for p in $VIM_BUNDLE/*; do (cd $p; git pull); done } The dependent plugin support is interesting but until all the plugins include a standard dependency spec, I have to do it manually anyway.
- tetha 12y agoIn case someone argues about parallel updates, you could do something along the lines of "parallel git pull < ls $VIM_BUNDLE". I'm nowhere near convinced to switch, especially because I keep my vim plugin space small.
- nsmartt 12y agoIt's a single file. It works with or without the ruby-dependent parallel plugin installations and upgrades. It allows for plugins to be loaded only when they're needed (e.g. only for JS files). That's minimalist.
- eligundry 12y agoThis is exactly what I've been looking for in a Vim plugin manager. 1. Loading plugins as needed! I've been doing this manually in my Vim config, but this makes it way easier. 2. Custom dir names for plugins! I think I opened up an issue on Vundle a few years ago asking for this (I think) but this has it out of the box. 3. Install hooks! I can't even describe how happy this makes me. I'll probably install this next time I'm at my Linux box.
- nsmartt 12y agoI switched to vim-plug from Vundle a couple of weeks ago, and I'm in love. Lazy initialization and, if your vim is built with ruby, threaded plugin installations and upgrades. As a bonus, it's beautiful.
- TheDong 12y agoWhy not NeoBundle? It's easy to use, has lazy-plugin-loading, and everything you could ever want that Pathogen/vundle doesn't have. https://github.com/Shougo/neobundle.vim https://github.com/Shougo/neobundle.vim You might say it's not sufficiently minimalistic, but the parent really isn't either and I'd say the lazy-loading implementation has to be a point in the favour of minimalism for NeoBundle
- junegunn 12y agoFYI, vim-plug also supports lazy-loading and the interface is pretty simple and concise [1]. NeoBundle obviously has more features, most notably supporting VCS' other than git, while vim-plug tries to be simpler and easier to setup and use (being a single file, no boilerplate code [2]). So they have different perspectives and I wouldn't argue that one is better than the other. It really depends on personal tastes. [1]: https://github.com/junegunn/vim-plug#on-demand-loading-of-plugins https://github.com/junegunn/vim-plug#on-demand-loading-of-pl... [2]: https://github.com/junegunn/vim-plug#example-a-small-sensible-vim-configuration https://github.com/junegunn/vim-plug#example-a-small-sensibl...
- adregan 12y agoI'm always curious about vim but hardly use it beyond git commit messages and modifying files on a server. I'd be interested in getting better, but have an easier time setting up Sublime (and don't really have the time during the week to experiment). I checked out vim plug and it seems really great, but is there a vim package manager that works similar to the package manager you can get in sublime? One that searches through available packages and allows you to install them that way?
- justinmk 12y ago> similar to the package manager you can get in sublime? One that searches through available packages VAM[1] tries to. That is the only one I am aware of. But the list is managed manually, which in my opinion is always a bad idea. I think the best hope for a MELPA-like vim plugin source is to use the vimawesome[2] API, but I'm not aware of any plugin manager that does so yet. vimawesome scrapes various sources and looks at publicly-available .vimrc files. This is a technical solution rather than a "human vigilance" solution. People want to post their vimrcs, so take advantage of that rather than trying to curate a massive list. Passive/organic is usually better than active/centralized[3]. [1] https://github.com/MarcWeber/vim-addon-manager https://github.com/MarcWeber/vim-addon-manager [2] http://vimawesome.com http://vimawesome.com [3] I know some people still have a soft spot for Yahoo directory, but whatever.
- oinksoft 12y agoWhat is the use case for a Vim script manager? I've never understood what this offers over including a full .vim in your version-controlled dotfiles. With a script manager, you have to worry about repositories disappearing, Github being down, and also breaking changes (unless you want to track a SHA on each one). With a simple .vim, your Vim configuration is a living, breathing thing, and you can easily modify any script you're using the moment you find a bug in it that interrupts your work: You own your vimfiles. When you manually upgrade a script, it's trivial to roll back to the last version that worked. I guess dotfiles are the last place I want to introduce needless indirection: They should represent my work environment at a point in time, precisely. I can only see two benefits: The ability to try out new plugins quickly, and the ability to upgrade all of your plugins at once quickly. Are these worth sacrificing control over your editor config? This has puzzled me since the day tpope released Pathogen to much fanfare.
- wging 12y agoYou'd want to version-control your entire .vim/ directory, not just .vimrc. (Presumably .vim is where this stores plugins.)
- meunier 12y agoWhy have any package manager then?
- oinksoft 12y agoVim scripts are barely even packages! Package managers for operating systems and build dependencies? Certainly. Does everything need package management? Only a small subset of all vim scripts have any dependencies. Tim Pope was the first person I remember introducing a script dependency (tlib) and I thought it was a ridiculous decoration at the time. A good vim plugin should be self-contained, in my opinion. I recognize that this is really a misgiving I have with the direction Vim is going, towards complexity (plugin managers, multithreaded implementations). NeoVim looks like the final push that makes Vim configuration and operation truly byzantine. Then everybody gets to pick between Emacs and VEmacs.
- ravishi 12y agoHow does all these plugin managers deal with plugins which require manual tasks to be performed during installation, like CommanT's and YCM's compillation? Also, is there any way to create different sets of plugins for different install types and environments? I would like to have a "light" install, with only necessary stuff, and a "full" install with that plus everything else.