Skip to content

tomtom/ttoc_vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 
#1863).

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} > 
[wbg]:ttoc_rx.

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
  :TToC
  " 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 >

  :g/TToC



-----------------------------------------------------------------------

Status:  Works for me (there may be some minor quirks)
Dependencies:
  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.