Tagging Jekyll posts with Vim
I’ve moved all of my work notes to a local jekyll instance to make them more maintainable and
searchable. One of the things I needed (wanted) to do, was to tag
each article with the codebase, this would’ve taken a while manually, but with
some vim-fu it becomes very simple.
The filenames look like this (titles truncated):
2018-08-01-dar-133-...
2018-08-01-en-4140-...
2018-08-01-en-4196-...
2018-08-01-en-4291-...
2018-08-01-en-4308-...
2018-08-01-en-4308-...
2018-08-01-en-4356-...
2018-08-01-en-4382-...
2018-08-01-en-4522-...
2018-08-01-en-4610-...
2018-08-01-en-4612-...
2018-08-01-hyp-1108-...
2018-08-01-hyp-1268-...
2018-08-01-hyp-1269-...
2018-08-01-hyp-1465-...
2018-08-01-hyp-1486-...
2018-08-01-hyp-1488-...
2018-08-01-kep-4530-...
2018-08-01-kep-4573-...
2018-08-01-kep-4673-...
2018-08-01-kep-4701-...
2018-08-01-kep-4702-...
conveniently the prefix of the codebase (en, hyp, dar etc…) is already
in the filename which makes it even simpler.
In the end I can tag a codebase by opening all files with that prefix in it:
vim *-en-*
Then using the argdo
command coupled with normal
I can work my magic.
:argdo normal ggotags: enterprise
What this does is:
argdo
executes a command on everything in the arglist (in our case that is
every file with -en-
in the filename).
normal ggotags: enterprise
tells us to go to the top of the file, insert a
line beneath the cursor and literally type out “tags: enterprise”.
Once that is done, save all of the changes and bask in your tagged posts.
:wall