sponsor Vim development Vim logo Vim Book Ad

Manuals : An extensible help system

 script karma  Rating 4/1, Downloaded by 1083  Comments, bugs, improvements  Vim wiki

created by
Marko Mahnič
script type
Provides context sensitive word lookup. The manuals in vimhelp format that are not
related to Vim can be kept in separate locations with separate tagfiles.

The context sensitive lookup is implemented by the plugin vxlib/context.vim. When a
manual lookup is required (mapped to K), the plugin checks the context the cursor is
in - the current filetype and the current syntax element. Then it finds all the help
providers that were registered for the detected context. The highest scored provider
is executed an the results are displayed. It is also possible to display a list of
providers applicable in the current context and select one (\km); if vimuiex is
installed, a popup list will be displayed, otherwise the choices are echoed to the
screen and the uesr enters a choice.

Example: when you're editing Python kode and press K on a keyword, an entry from the
Python documentation will be displayed (the output from pydoc). When the cursor is in
a Python comment or a string, dict will be used instead. Similarly, when editing
HTML, help for CSS can be displayed when the cursor is in the <style> section.

There are three possible types of results a provider can produce:
   t - show help text for keyword
   k - list similar keywords (and find help for the selected one)
   g - grep the manuals to find occurences of the word

The library comes with the following providers (supported types are in parentheses):
   vimhelp (tkg) - internal vim help
   extvimhelp (tkg) - external help in vimhelp format, stored in a separate location
   man (t) - unix man
   pydoc (tg) - python documentation, requires pydoc program
   pydiction (k) - uses the dictionary produced by vimscript#850
   cmakeref (tkg) - vimscript#3045, uses extvimhelp
   cssref (tkg) - vimscript#918, uses extvimhelp
   crefvim (tkg) - vimscript#614, vimscript#2353, uses extvimhelp
   luarefvim (tkg) - vimscript#1291, uses extvimhelp
   dict (t) - find a dictionary entry using the dict program

The providers that use extvimhelp expect the manuals to be installed in the location
set in g:vxlib_manuals_directory. Initially this location is set to ~/.vim/manuals
(actually the script takes the first item from &rtp and appends /manuals to it). Each
manual is stored in a subdirectory of this location, the name of the subdirectory is
the same as the name of the provider, eg.

After you install each manual, don't forget to run :helptags %:p:h on a file from
the manual.
install details
Requires VxLib (vimscript#3061)
Unpack the files into the vim runtime directory (eg. ~/.vim).

If you wish, you can run :VxRegen to re-generate the initialization code.
(see also vimscript#3061 installation for the availability of :VxRegen)

The plugin will set the following keys: K, \kk, \km, \kg in normal and visual mode.  
If you would like different mappings, use :VxConfig to edit the configuration file
(:VxRegen must be run at least once). Set 'generate=0' in section [manuals#maps]. An
alternative is to edit ~/.vimrc and add
   let g:vxenable_manuals_maps=0

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
manuals.zip 0.1a 2010-04-18 7.0 Marko Mahnič * added missing function
manuals.zip 0.1 2010-04-18 7.0 Marko Mahnič * tested without vimuiex, fixed
* vxlib can load the plugin without running :VxRegen
manuals.zip 0.01 2010-04-16 7.0 Marko Mahnič Initial upload
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.