A regexp-based table of contents of the current buffer for vim
Vim script
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This plugin tries to duplicate the functionality of Marc Weber's 
outline.vim (vimscript #1947) on the basis of its description and of 
vim's own |:g|. Other than outline.vim, it relies on tlib (vimscript 

The TToC command can be used to get a quick table of contents of the 
buffer based on a given regular expression. The regexp can be defined on 
the command line, in window (w:ttoc_rx), buffer-local (b:ttoc_rx) 
variables or in global filetype-specific (g:ttoc_rx_{&filetype}) 
variables. The order actually is: [wbg]:ttoc_rx_{&filetype} > 

The TToC command can also evaluate an expression to get the line 
numbers. The expression is evalutated if TToC is invoked without a regex 
argument and the expression is defined for that filetype 
([wbg]:ttoc_expr_{&filetype}). The expression needs to return either a 
sorted and unique list of line numbers either as a vim list or as a 
newline-separated string.

In the list view, you can select a line and either preview it (<c-p>), 
jump there (<), close the list and jump there (<cr>).

Example: >

  " Use the default settings for the current file-type
  " Show all words beginning at column 1
  :TToC ^\w
  " Show 'if' statements (but not the concluding 'then' statement)
  :TToC ^\s*if\>.\{-}\ze\s\+then
  " Show 'if' statements and 3 extra lines
  :3TToC! \<if\>

The TToC with a bang works somewhat like |:g| only that you can 
browse/filter the list and select an item after reviewing the results. 
Try it out and compare (with the help file as current buffer): >

  :TToC! TToC

with >



Status:  Works for me (there may be some minor quirks)
  tlib :: http://github.com/tomtom/tlib_vim
      > git clone git://github.com/tomtom/tlib_vim.git
Install: See http://github.com/tomtom/vimtlib/blob/master/INSTALL.TXT
See http://github.com/tomtom for related plugins.