tags:

views:

244

answers:

1

Hello.

If :h is used in VIM, it will automaticall follow |links| via CTRL-], opening new help topics and maintaining tag jumps list (CTRL-T will go back in jumps history). How to implement such behavior in my own file format? For example, i want CTRL-] on text inside {} to open a file named something.txt and CTRL-T to go back. How to implement this?

+5  A: 

It's all done with tags. Essentially the vim files are simple text files, but they're supported by a file in the same directory named 'tags'. All this file contains is entries that look like:

'bg'      options.txt     /*'bg'*
'bh'      options.txt     /*'bh'*
'bin'     options.txt     /*'bin'*
'binary'  options.txt     /*'binary'*
'biosk'   options.txt     /*'biosk'*
'bioskey' options.txt     /*'bioskey'*

Each line is a tag entry, split over three fields: the tag identifier, the file the tag lives in, and the ex command to find that tag: any ex command works; as can be seen in the example above though, the vim help files just use the search command: '/'.

You can either write a tags file manually, or use a program such as Exuberent ctags to create the file automatically. The tags file is generally read from the same directory the file you're editing lives in, but you can change this in Vim by adjusting the value of the 'tags' option.

More details in vim if you type ":help tags"

Chris J