It might be a nice idea to use helptags in non-help files:
### myapp.c ### // Important code! See |somewhere_else| ... // *somewhere_else* ...
Ctrl-] should follow the |tag_reference| to the *tag_location* like it does when browsing Vim's help.
The Problem
Unfortunately :helptags
only runs on .txt
files. Two workarounds are:
- Create symlinks to txt files
~/.vim/docs
- Set
filetype=help
and use an external program to generate the tags
Solution with Ctags
But if you are already using exuberant-ctags or taglist.vim, we can just create a new tag type "htag".
This must be done once for each file-type we want it to work on. Here is what I did for .java
files:
Add to ~/.ctags:
--regex-java=/\*([A-Za-z0-9_\-]*)\*/\1/h,htag/
After regenerating the tags, Ctrl-] should now work within that project.
If you use the taglist plugin and you want to see these tags listed, add to ~/.vimrc
" Defaults from taglist.vim /_java_ with our h:htag type added. let tlist_java_settings = 'java;p:package;c:class;i:interface;' . \ 'f:field;m:method;h:htag'
Drawbacks
The simple pattern given above will be too general in many languages, for example it would find tags in: x = y*4*foo*bar
. We could ask it to look for a whitespace either before or after it.
The words you use for your new htags should be unique, or will overlap with existing tags for functions, etc. I suggest using a different naming convention. E.g. in Java use non-camelcase with '_
's.
Tags will not jump directly into Vim help, unless you include help files in your ctags regeneration.