An open API service indexing awesome lists of open source software.

https://github.com/tomtom/ttoc_vim

A regexp-based table of contents of the current buffer for vim
https://github.com/tomtom/ttoc_vim

outline vim vim-plugin vim-script

Last synced: 8 months ago
JSON representation

A regexp-based table of contents of the current buffer for vim

Awesome Lists containing this project

README

          

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 (),
jump there (<), close the list and jump there ().

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! \

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.