0

I have not kept up with vim in the last decade. I have had my setup and it worked well enough that I have not bothered touching my configuration in forever.

BUT. I have the need to get back into some programming and want to see if what I need to update. The first thing is package management. I currently use pathogen it now has a git page!. This project looks like it has not been updated in 5 years and even the home page suggest I use built-in package management.

Any suggestions of package management specifically for C++ programmer (and how to convert from pathogen). :-)

2 Answers 2

1

Pathogen has always been a very stable piece of software. It still works and will probably keep doing so for a long time, so there is no real hard need to look for an alternative, IMO.

Anyway, the wording in Pathogen's README is unfortunate because, just like Pathogen itself, :help packages is not a proper "package management" solution. It would need the ability to download packages, handle dependency management, trigger builds, etc. for that, which it doesn't. It is just a new way to organize plugins that is more convenient than the old way. Just like Pathogen used to be.

And in many ways, the new system is a formalization of how Pathogen worked: you put your plugins in dedicated directories under a common root and you let Vim add those directories to :help 'runtimepath'`. Therefore, migrating your setup from Pathogen to "packages" is very easy.

All you need to do is…

  1. Remove any Pathogen-related lines from your vimrc:

    $ vim
    :e $MYVIMRC
    :g/pathogen/d
    :x
    
  2. Remove pathogen.vim from ~/.vim/autoload:

    $ rm ~/.vim/autoload/pathogen.vim
    
  3. Create the necessary directory structure:

    $ mkdir -p ~/.vim/pack/bundle/start
    
  4. And move the content of your bundle directory to its new home:

    $ mv ~/.vim/bundle ~/.vim/pack/bundle/start
    

NOTE:

  • You can name the bundle directory however you want. I kept bundle, here, to make things more familiar.
  • Read :help packages carefully, specifically the part about optional packages.
  • In this context, bundle is a "package"—a number of plugins packaged together—, and you can have several of them, which is good for organization. For example, I still have a bundle package (I switched from Pathogen, too) for my QOL plugins, but I also have a lang package for all my programming language-related plugins, and a lab package for my own experimental stuff.

If you actually want proper package management, the most popular plugin manager is currently vim-plug.

1
  • Thanks for the extended info. Sep 23, 2023 at 17:33
1
  1. Vim "plugin" is simply a collection of scripts lying under one of &runtimepath nodes.

  2. Therefore it is possible to merge any "plugin" under your ~/.vim/ directory tree and it will work right away.

  3. However, your ~/.vim/ will then become a total mess.

  4. Instead of this, you can add whole "plugin" tree as a node into &runtimepath

  5. People are too lazy to populate list of directories manually, so "pathogen" was invented. Basically, you call a single function and &runtimepath gets flooded by many nodes at once.

  6. But this thought to be too hard, so now "pathogen" is a builtin called :help packages. That is, you copy (or symlink) all your plugins under ~/.vim/pack/*/start/ (or any other node under &packpath) and they all magically get to &runtimepath on startup.

  7. This is still too hard for some of us, as we still need to type $ git pull etc. by hand. So there are also multiple "plugin managers" that can execute git many times and show the output in a nice fashion. Personally, I use minpac but they all more or less similar. All you need is to $ git clone one of them and follow the instructions.

1
  • Thanks you. Very helpful. Sep 23, 2023 at 17:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.