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

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.