kota.nz notes vids pics code about
vim8 now come with a built in package manager (or rather loader?)
which is faster and simpler than nearly all previous attempts. You can read
about it with
:help packages. It works similarly to how
pathogen worked in
the past, it does not handle updating, removing, installing, or searching for
packages. It simply loads them out of a folder and assumes you will manage them
git or another similar tool.
neovim, there are a few options for where you store the package directory.
.config/nvim/pack, which is right next to my
init.vim. The structure
pack directory is
pack/*/start/repo with repo referring to a cloned
repo for each of your packages. The star can be anything you’d like, but
typically you would make a few different folders such as “themes”, “plugins”, or
“syntax” to categorize your vim packages. The start folder is used to
“autoload” the packages inside it. You may instead put them in an opt folder
which will not automatically load them, but allows you to manually load them
A shortened version of my directory looks like this.
~/.config/nvim/pack tree . ├── plugins │ └── start │ └── ack │ ├── autoload │ │ └── ack.vim │ ├── doc │ │ ├── ack_quick_help.txt │ │ └── ack.txt │ ├── ftplugin │ │ └── qf.vim │ ├── LICENSE │ ├── plugin │ │ └── ack.vim │ └── README.md └── themes └── start └── black-pastel ├── colors │ └── black-pastel.vim ├── img.png ├── LICENSE.md └── README.md
I install and organize my packages using git submodules. First you’ll need to
vim config directory with
git, or you can do what I do and track
all your configs with git and install them with stow.
If you set things up like I have you can use the following commands.
To add a new package,
cd into your “dots” repo and run something like this:
git submodule add https://github.com/tpope/vim-surround neovim/.config/nvim/pack/plugins/start/vim-surround
You may then use all the submodule commands for updating and deletion.
NOTE: You need to run
git clone --recursive when you clone your dots onto a
git clone --recursive https://git.sr.ht/~kota/dots