Vim Tips Wiki


1,614pages on
this wiki

Use this page to discuss script 3681 functiontracker: easy navigation between functions in a long file

  • Add constructive comments, bug reports, or discuss improvements (see the guideline).
  • Do not document the script here (the author should do that on
  • This page may be out of date: check the script's page above, and its release notes.


Great script. I extended your regex to support perl scripts as well by changing line 188:

" from:
let l:matched = matchlist(l:line,'\s*function\s\+[*&]*\([a-zA-Z0-9_]*\)\s*(')
" to:
let l:matched = matchlist(l:line,'\s*\%(function\|sub\)\s\+[*&]*\([a-zA-Z0-9_]*\)\s*[({]')

tx for your original work

Spectacular script. Seems to kill my 'o' functionality in vim 7.3. It messed up the autoindent. Looked like it was something in oninsertchange. Worked around by returning immediately from oninsertchange.

Another line 188 for C files

" to:
let l:matched = matchlist(l:line,'\s*\w\+\s\+\(\w\+\)\s*[*]\?\s*([a-zA-Z0-9_, *]*)\s*{')

Last version from 2012-01-07 has a bug, that detects function named 's' in this line: functions(). Please change line 304

" from:
let l:matched = matchlist(l:line,'\s*function\s*[*&]*\([a-zA-Z0-9_]*\)\s*(')
" to:
let l:matched = matchlist(l:line,'\s*function\s\+[*&]*\([a-zA-Z0-9_]*\)\s*(')

--April 1, 2015

Around Wikia's network

Random Wiki