Need help with ctrlp.vim?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

kien
6.9K Stars 639 Forks 450 Commits 195 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

No Data

This project is unmaintained

You should use this fork instead.

ctrlp.vim

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.

ctrlp

Basic Usage

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

Check

:help ctrlp-commands
and
: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
     and 
     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
     or 
    , 
     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.

Run

: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):
    Use
    :25
    to jump to line 25.
    Use
    :diffthis
    when opening multiple files to run
    :diffthis
    on the first 4 files.

Basic Options

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

    let g:ctrlp_map = ''
    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'
    

    'c'
    - the directory of the current file.
    'r'
    - the nearest ancestor that contains one of these directories or files:
    .git
    .hg
    .svn
    .bzr
    _darcs

    'a'
    - like c, but only if the current working directory outside of CtrlP is not a direct ancestor of the directory of the current file.
    0
    or
    ''
    (empty string) - disable this feature.

    Define additional root markers with the

    g:ctrlp_root_markers
    option.
  • Exclude files and directories using Vim's

    wildignore
    and CtrlP's own
    g:ctrlp_custom_ignore
    :
    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
    

Check

:help ctrlp-options
for other options.

Installation

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.