sponsor Vim development Vim logo Vim Book Ad

tagmenu.vim : Tags menu for various programming language source files

 script karma  Rating 456/153, Downloaded by 10717  Comments, bugs, improvements  Vim wiki

created by
Yegappan Lakshmanan
script type
The taglist plugin supersedes the tags menu plugin. The taglist plugin
integrates the functionality of the tagsmenu plugin.

The taglist plugin displays the list of tags defined in the current file in the
"Tags" menu (in GUI Vim). The taglist plugin provides much more
functionality than the tagsmenu plugin. You can download it from:


You can get more information about the taglist plugin from the
following page:


The tags menu plugin is no longer maintained.


The "Tags Menu" plugin provides the following features:

1. Creates a "Tags" menu containing all the tags (variables, functions,
   classes, methods, macros, etc) defined in the current file.
2. Creates a popup menu with the contents of the "Tags" menu. This popup
   menu can be accessed  by right clicking the mouse.
3. Groups the tags by their type and displays them in separate submenus.
4. The "Tags" menu can be sorted either by name or by line number.
5. When a tag name is selected from the "Tags" menu, positions the cursor
   at the definition of the tag.
6. Automatically updates the "Tags" menu as you switch between
7. If the number of tags in a particular type exceeds a configurable limit,
   splits the menu for that tag type into one or more submenus.
8. Supports the following language files: Assembly, ASP, Awk, C, C++,
   Cobol, Eiffel, Fortran, Java, Lisp, Make, Pascal, Perl, PHP, Python,
   Rexx, Ruby, Scheme, Shell, Slang, TCL, Verilog, Vim and Yacc.
9. Runs in all the platforms where the exuberant ctags utility and Vim are
   supported (this includes MS-Windows and Unix based systems).
10. Will run only in the GUI version of Vim.
11. The ctags output for a file is cached to speed up updating the "Tags"

This script relies on the exuberant ctags utility to get the tags defined in
a file. You can download the exuberant ctags utility from
http://ctags.sourceforge.net. The exuberant ctags utility must be installed
in your system to use this plugin. You should use exuberant ctags version
5.3 and above.  There is no need for you to create a tags file to use this


By changing the following variables you can configure the behavior of this
script. Set the following variables in your .vimrc file using the 'let'

The script uses the Tmenu_ctags_cmd variable to locate the ctags utility.
By default, this is set to ctags. Set this variable to point to the
location of the ctags utility in your system:

          let Tmenu_ctags_cmd = 'd:\tools\ctags.exe'

If a file contains too many tags of a particular type (function, variable,
etc), greater than a configurable limit, then the tags menu for that tag
type will be split into sub-menus.  The default limit is 25.  This can be
changed by setting the Tmenu_max_submenu_items variable:

          let Tmenu_max_submenu_items = 20

If the number of tags of a particular tag type is more than that specified
by Tmenu_max_submenu_items setting, then the tags menu for that tag type
will be split into sub-menus. The name of the submenu is formed using the
names of the first and the last tag entries in that submenu. Only the first
Tmenu_max_tag_length characters from these names will be used to form the
submenu name. Change the Tmenu_max_tag_length setting if you want to include
more or less characters:

          let Tmenu_max_tag_length = 10

By default, the tag names will be added to the menu in the order in which
they are defined in the file. You can alphabetically sort the tag names
in the menu by selecting the "Sort menu by->Name" menu item. You can also
change the default order by setting the variable Tmenu_sort_type to
"name" or "order":

          let Tmenu_sort_type = "name"

This script will not work in 'compatible' mode.  Make sure the 'compatible'
option is not set. This script depends on the file type detected by Vim.
Make sure the Vim file type detection (:filetype on) is turned on.
install details
1. Copy the tagmenu.vim script to the .vim/plugin directory.  Refer to
    'help add-plugin', 'help add-global-plugin' and 'help runtimepath' for
    more details.
2. Set the Tmenu_ctags_cmd variable to point to the exuberant ctags
    utility path.
3. If you have previously used the funcmenu.vim plugin script, remove it
    from your ~/.vim/plugin directory.
4. Restart GVim.

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
tagmenu.vim 1.31 2002-11-11 6.0 Yegappan Lakshmanan Fixed a problem with processing tags with "|" in the search pattern.
tagmenu.vim 1.3 2002-09-25 6.0 Yegappan Lakshmanan Added support for popup menus (Thomas Kimpton), verilog language and updated comments.
tagmenu.vim 1.2 2002-06-28 6.0 Yegappan Lakshmanan Handle multiple tags with same name. Center the selected tag line. Rename the menu names to be consistent with other menus.
funcmenu.vim 1.4 2002-04-11 6.0 Yegappan Lakshmanan Fix for handling long filenames.
Pass the Vim filetype to ctags.
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
Vim at Github