Vim Tips Wiki
Advertisement

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
Add_your_note_files_to_Vim_help
  • Set filetype=help and use an external program to generate the tags
VimTip482

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.

Advertisement