Github url


by kien

kien /ctrlp.vim

Fuzzy file, buffer, mru, tag, etc finder.

6.8K Stars 630 Forks Last release: Not found 450 Commits 21 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

This project is unmaintained

You should use this fork instead.


Full path fuzzy file, buffer, mru, tag, ... finder for Vim.

  • Written in pure Vimscript for MacVim, gVim and Vim 7.0+.
  • Full support for Vim's regexp as search patterns.
  • Built-in Most Recently Used (MRU) files monitoring.
  • Built-in project's root finder.
  • Open multiple files at once.
  • Create new files and directories.
  • Extensible.


Basic Usage

  • Run
    :CtrlP [starting-directory]
    to invoke CtrlP in find file mode.
  • Run
    to invoke CtrlP in find buffer or find MRU file mode.
  • Run
    to search in Files, Buffers and MRU files at the same time.


:help ctrlp-commands


:help ctrlp-extensions

for other commands.

Once CtrlP is open:
  • Press
    to purge the cache for the current directory to get new files, remove deleted files and apply new ignore options.
  • Press
    to cycle between modes.
  • Press
    to switch to filename only search instead of full path.
  • Press
    to switch to regexp mode.
  • Use
    or the arrow keys to navigate the result list.
  • Use
    to open the selected entry in a new tab or in a new split.
  • Use
    to select the next/previous string in the prompt's history.
  • Use
    to create a new file and its parent directories.
  • Use
    to mark/unmark multiple files and
    to open them.


:help ctrlp-mappings

or submit


in CtrlP for more mapping help.

  • Submit two or more dots
    to go up the directory tree by one or multiple levels.
  • End the input string with a colon
    followed by a command to execute it on the opening file(s):
    to jump to line 25.
    when opening multiple files to run
    on the first 4 files.

Basic Options

  • Change the default mapping and the default command to invoke CtrlP:

let g:ctrlp\_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
  • When invoked, unless a starting directory is specified, CtrlP will set its local working directory according to this variable:

let g:ctrlp\_working\_path\_mode = 'ra'
  • the directory of the current file.
  • the nearest ancestor that contains one of these directories or files:
  • like c, but only if the current working directory outside of CtrlP is not a direct ancestor of the directory of the current file.



(empty string) - disable this feature.

Define additional root markers with the



Exclude files and directories using Vim's


and CtrlP's own



set wildignore+=\*/tmp/\*,\*.so,\*.swp,\*.zip " MacOSX/Linux set wildignore+=\*\\tmp\\*,\*.swp,\*.zip,\*.exe " Windows let g:ctrlp\_custom\_ignore = '\v[\/]\.(git|hg|svn)$' let g:ctrlp\_custom\_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn)$', \ 'file': '\v\.(exe|so|dll)$', \ 'link': 'some\_bad\_symbolic\_links', \ }
  • Use a custom file listing command:

let g:ctrlp\_user\_command = 'find %s -type f' " MacOSX/Linux let g:ctrlp\_user\_command = 'dir %s /-n /b /s /a-d' " Windows


:help ctrlp-options

for other options.


Use your favorite method or check the homepage for a quick installation guide.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.