sponsor Vim development Vim logo Vim Book Ad

ctrlp-funky : A super simple function navigator for ctrlp.vim

 script karma  Rating 97/29, Downloaded by 5736  Comments, bugs, improvements  Vim wiki

created by
Takahiro Yoshihara
script type
A super simple function navigator for ctrlp.vim.  
For lazy people who cannot wait until ctags finishes.

This is a ctrlp.vim extension. It simply navigates and jumps to function definitions from the current file without ctags. It just searches function definitions or equivalent lines using regular expressions, therefore some languages' abstraction aren't accurate because of hard to parse.

One of advantages of this plugin is that no configurations required in most of cases, so install, then it starts working and no ctags required.
*If you want to have more accurate list of function defs, you should use other ctags based tools.*

Screenshot: http://i.imgur.com/yO4PWAF.png

### Supported filetypes:
See help doc: https://github.com/tacahiroy/ctrlp-funky/blob/master/doc/ctrlp-funky.txt#L22

First of all, I believe you're a user of a great Vim plugin called [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim).
Otherwise, you need to install ctrlp.vim before start using this plugin.

It should be useful to define key mappings like this:
nnoremap <Leader>fu :CtrlPFunky<Cr>
" narrow the list down with a word under cursor
nnoremap <Leader>fU :execute 'CtrlPFunky ' . expand('<cword>')<Cr>

If you want to have this highlight feature, you may configure like this:
let g:ctrlp_funky_matchtype = 'path'
See `:h g:ctrlp_funky_matchtype` for more details and notes.

I'd like to introduce one of ctrlp-funky options.
Do you want to make ctrlp-funky funkier? Okay - you can do it with just 1 line config.
let g:ctrlp_funky_syntax_highlight = 1

Note that this feature doesn't work perfectly, because ctrlp-funky just sets
filetype to the funky buffer and the buffer contains '>' in the first column.
In some filetypes, this sign has special meaning such as HTML tag, so it breaks
syntax highlighting.

* [ctrlpvim/ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim)
* [vim.org/ctrlp-funky](http://www.vim.org/scripts/script.php?script_id=4592)

Copyright (C) 2012-2019 Takahiro Yoshihara. Distributed under the MIT License.
install details
### Vundle (https://github.com/VundleVim/Vundle.Vim)
1. Run `:PluginInstall tacahiroy/ctrlp-funky`
2. Add `Plugin 'tacahiroy/ctrlp-funky'` to _.vimrc_

### vim-plug (https://github.com/junegunn/vim-plug)
1. Add `Plug 'tacahiroy/ctrlp-funky'` to _.vimrc_
2. Run `:PlugInstall`

### pathogen.vim (https://github.com/tpope/vim-pathogen)
1. `cd ~/.vim/bundle`
2. `git clone https://github.com/tacahiroy/ctrlp-funky.git`

### Manually
If you don't use either plugin management systems, copy _autoload_ and _plugin_ directories to _.vim_ directory.
On Windows, basically, _vimfiles_ directory is used instead of _.vim_ directory.

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
ctrlp-funky-0.12.0.zip 0.12.0 2019-10-07 7.0 Takahiro Yoshihara + Add support for rmarkdown (rmd) (#123)
+ Add support for ColdFusion (cf) (#121)
+ Add support for objc lightweight generic (#118)
+ Add support for Vue.js (vue) (#117)
+ Add support for GraphQL (#114)
+ Add basic Groovy support
+ Add super basic support for R
+ Add support for ExUnit test for Elixir (#99)
+ Add support for anonymous functions for Javascript (#98)
+ Add private method and macro patterns for Elixir (#96)
+ Add elm support (#90)
+ Add haskell support (#91)
+ Add plsql support (#86)
+ Add proto (Protocol Buffers) support (#82)
ctrlp-funky-0.11.0.zip 0.11.0 2016-01-21 7.0 Takahiro Yoshihara + Add basic C# (cs) support (#66)
+ Add basic clojure support (#79)
+ Add scss support (#69)
+ Add very basic css support (#69)
+ Add generator function support for javascript (#68)
+ Add support for Perl Moose and Method::Signatures (#73)
+ Add support for rspec definitions (#71)
+ Add function name only (nudist) mode (#78)
+ Fix invalid bufnr for cached buffers
+ Remove custom highlight option
ctrlp-funky-0.10.1.zip 0.10.1 2015-04-15 7.0 Takahiro Yoshihara + Fix E688 problem with non English locales (#38)
+ Add basic LaTeX support
+ Add basic Dart support
+ Improve TypeScript support (#64)
+ Add MoonScript (moon) support (#62)
+ Fix function name for typescript (#60)
ctrlp-funky-0.10.0.zip 0.10.0 2015-02-08 7.0 Takahiro Yoshihara + Add multiple buffer support (minimum impl)

+ Fix error on accept() if sort_by_mru is enabled (#59)
+ Fix duplicate tag in the doc (#58)
+ Fix doc entry for cache dir (#57)
+ Add type declarations support for go (#53)
+ Add clear cache functionality
ctrlp-funky-0.9.1.zip 0.9.1 2014-10-13 7.0 Takahiro Yoshihara * Add very basic Scala support
* Add basic Elixir support
* Add TRACE32 (cmm) and Makefile (make) support (#44)
* Add basic TypeScript support (#52)
* Improve Java support (#48)

* Add clear cache functionality
* Add 'g:ctrlp_funky_matchtype' (#13, #50)

* Fix error when selecting a function in split window (#49)
* Fix regexp for C++ to support scope resolution operator (#51)
* Fix multi-lined function support for C and Java (#47)
ctrlp-funky-0.9.0.zip 0.9.0 2014-06-29 7.0 Takahiro Yoshihara * Add cache feature (#27).
  ideas from dusans
* php - Add support for extra keywords, final, static etc. (#35)
  by axehead
* Fix error a markdown file contains YAML Front matter (#36)
  reported by dictav
* markdown: Add h4 to h6 support
ctrlp-funky-0.8.4.zip 0.8.4 2014-04-21 7.0 Takahiro Yoshihara * Add support for returning by reference function for PHP (#31)
    by dingmingxin
* Fix performance issue for python (#30)
    by dusans
* Add Jinja template support. (#29)
    by vitalk
ctrlp-funky-0.8.2.zip 0.8.2 2014-02-22 7.0 Takahiro Yoshihara * Add html/xhtml support by Marc Mazer
ctrlp-funky-0.8.1.zip 0.8.1 2014-01-30 7.0 Takahiro Yoshihara * Add syntax highlighting feature for the funky buffer
ctrlp-funky-0.8.0.zip 0.8.0 2014-01-21 7.0 Takahiro Yoshihara + 0.8.0: Add ability to custom highlight
+ 0.7.1: Remove the old API
+ 0.7.0: Add coffee-script support (#23) by kirstein
+ Add post_extract_hook support
+ Fix java: remove 'else if' from the list
ctrlp-funky-0.6.4.zip 0.6.4 2013-10-26 7.0 Takahiro Yoshihara * Improve javascript functions search
* Improve java functions search
ctrlp-funky-0.6.2.zip 0.6.2 2013-10-07 7.0 Takahiro Yoshihara * Improve internal interface
* Add support for Perl
* Add support for Go
* Add anonymous function support for zsh
* Improve regexp for C/C++
ctrlp-funky-0.5.0.zip 0.5.0 2013-09-06 7.0 Takahiro Yoshihara + Add MRU feature
+ Add YAML support  by dusans (#20)
+ Add javascript object function support by mephux (#17)
+ Fix "Pattern not found" line appears in the list
ctrlp-funky-v0.4.4.zip 0.4.4 2013-08-15 7.0 Takahiro Yoshihara * Add Lua support
* Add new option: g:ctrlp_funky_sh_type to treat 'sh' as dash, bash, zsh etc.
ctrlp-funky-0.4.2.zip 0.4.2 2013-06-18 7.0 Takahiro Yoshihara - Add C support
- Improve C++ pattern
ctrlp-funky-0.4.1.zip 0.4.1 2013-05-24 7.0 Takahiro Yoshihara Fix regex pattern for sh. No parentheses case can be detected.
ctrlp-funky-703b7f.zip 0.4.0 2013-05-21 7.0 Takahiro Yoshihara Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.