Skip to content
Fuzzy file, buffer, mru and tag finder
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Full path fuzzy file, buffer and MRU file finder for Vim.

  • Written in pure Vimscript for MacVim and Vim 7.0+.
  • Has full support for Vim’s regexp as search pattern, and more.
  • Can also find file in most recently used files.


Basic Usage

  • Press <c-p> or run :CtrlP to invoke CtrlP.
  • Press <c-f> and <c-b> while CtrlP is open to switch between find file, find buffer, and find MRU file modes.
  • Ever remember only a file’s name but not where it is? Press <c-d> while CtrlP is open to switch to filename only search.
  • Use * ? ^ + or | in the prompt to submit the string as a Vim’s regexp pattern.
  • Or press <c-r> while CtrlP is open to switch to full regexp search mode.
  • End the input string with a colon : followed with a number to jump to that line in the selected file.
    e.g. abc:45 to open the file matched the pattern and jump to line 45.

Screenshot: filename only mode with the match window focused.
ctrlp filename mode, match window focused

Basic Options

  • Change the mapping to invoke CtrlP:

    let g:ctrlp_map = '<c-p>'
  • When CtrlP is invoked, it automatically sets the working directory according to this variable:

    let g:ctrlp_working_path_mode = 1

    0 - don’t manage working directory.
    1 - the parent directory of the current file.
    2 - the nearest ancestor that contains one of these directories or files:

  • You can also use the set-working-directory functionality above outside of CtrlP by adding the following line to your vimrc.
    The parameter is the same (0, 1 or 2):

    au BufEnter * cal ctrlp#SetWorkingPath(2)
  • Enable/Disable Most Recently Used files monitoring and its functionalities:

    let g:ctrlp_mru_files = 1

Check the docs for more mappings, commands and options.

Something went wrong with that request. Please try again.