I'm using ctags
to create a tags file for use in Vim, so that I can jump to definitions of labels and citations. However, I have two problems:
\ref
in the tags file, so when I hit jump on a \ref
label, I don't necessarily jump to the definition of the label, but might end up on another reference to that label.\cite
command, but ctags
doesn't generate entries for that (I'm using ctags *.tex *.bib
).I wanted to redefine ctags
's definition for tex files, so that I could remove \ref
entries, but that didn't work.
My ~/.ctags file:
--langdef=tex2
--langmap=tex2:.tex
--regex-tex2=/\\label[ \t]*\*?\{[ \t]*([^}]*)\}/\1/l,label/
I realized that I didn't use exuberant ctags, but another ctags program, so the content in ~/.ctags
was never used.
I also managed to add another entry in ~/.ctags
for bib entries:
--langdef=tex2
--langmap=tex2:.tex
--regex-tex2=/\\label[ \t]*\*?\{[ \t]*([^}]*)\}/\1/l,label/
--langdef=bib
--langmap=bib:.bib
--regex-bib=/^@[A-Za-z]+\{([^,]*)/\1/b,bib/
ctags *.tex *.bib
works now as I want it.
You can put a regex into an online regex explainer to understand what it is doing, like https://regexr.com/.