ctrlp.vim

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

5 years after

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 <F5> to purge the cache for the current directory to get new files, remove deleted files and apply new ignore options.
  • Press <c-f> and <c-b> to cycle between modes.
  • Press <c-d> to switch to filename only search instead of full path.
  • Press <c-r> to switch to regexp mode.
  • Use <c-j>, <c-k> or the arrow keys to navigate the result list.
  • Use <c-t> or <c-v>, <c-x> to open the selected entry in a new tab or in a new split.
  • Use <c-n>, <c-p> to select the next/previous string in the prompt's history.
  • Use <c-y> to create a new file and its parent directories.
  • Use <c-z> to mark/unmark multiple files and <c-o> 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 = '<c-p>'
    let g:ctrlp_cmd = 'CtrlP'
  • When invoked without an explicit starting directory, CtrlP will set its local working directory according to this variable:

    let g:ctrlp_working_path_mode = 'ra'

    'c' - use the parent directory of the current file. 'a' - use the parent directory of the current file if it is not a descendant of the current working directory outside of CtrlP. 'r' - use the nearest ancestor of the current file that contains one of these markers: .git .hg .svn .bzr _darcs 0 or '' (empty string) - use the current working directory outside of CtrlP.

    If none of the default markers (.git .hg .svn .bzr _darcs) are present in a project, you can define additional ones with g:ctrlp_root_markers:

    let g:ctrlp_root_markers = ['pom.xml', '.p4ignore']

    If more than one mode is specified, they will be tried in order until a directory is located.

  • 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.

Related Repositories

vim-devicons

vim-devicons

:symbols: Adds file type glyphs/icons to popular Vim plugins: NERDTree, vim-airl ...

ctrlp-funky

ctrlp-funky

A simple function navigator for ctrlp.vim ...

ctrlp_bdelete.vim

ctrlp_bdelete.vim

An extension to ctrlp.vim for deleting open buffers ...

ctrlp-extensions.vim

ctrlp-extensions.vim

Plugins for ctrlp.vim ...

ctrlp-ssh

ctrlp-ssh

a ctrlp.vim extension - open a new SSH connection via ctrlp.vim interface ...


Top Contributors

kien mattn d11wtq codepiano nfvs tacahiroy trisk amadeus icetan Chronial diegoviola grimpy thiderman pjdelport roryokane rgrinberg ornicar zah zakj lucapette ludovicchabant

Releases

-   1.79 zip tar
-   1.78 zip tar
-   1.7.7 zip tar
-   1.7.6 zip tar
-   1.7.5 zip tar
-   1.7.4 zip tar
-   1.6.5 zip tar
-   1.6.4 zip tar
-   1.6.3 zip tar
-   1.6.2 zip tar
-   1.6.1 zip tar
-   1.6.0 zip tar
-   1.5.9 zip tar
-   1.5.8 zip tar
-   1.5.7 zip tar
-   1.5.6 zip tar
-   1.5.5 zip tar
-   1.5.4 zip tar
-   1.5.3 zip tar
-   1.5.1 zip tar
-   1.5 zip tar