Lowe Thiderman 1f9e7e196d Fix root detection for new-style git submodules
In very recent versions of git, the submodule structure has changed. The .git
directory has been moved into the .git of super repo, and the .git in the
submodule is just a file with a relative path to the actual .git directory in
the supermodule.

Since this change, ctrlp will only find the super repo when running s:SetWD().
ctrlp will try to cache and search in all of your submodules, which quickly
becomes a problem if your project has many submodules.

This fix removes the trailing slash from the '.git/' entry in the markers list
in s:SetWD(), which makes ctrlp find the new-style submodule file before the
super repo.
2012-06-05 15:16:34 +07:00
2012-04-13 14:30:36 +07:00
2011-12-16 12:48:08 +07:00
2012-05-12 18:38:58 +07:00

ctrlp.vim

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

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

ctrlp

Basic Usage

  • Press <c-p> or run :CtrlP [dir] to invoke CtrlP in find file mode.
  • Run :CtrlPBuffer or :CtrlPMRU to invoke CtrlP in buffer or MRU mode.
  • Run :CtrlPMixed to search in a mix of files, buffers and MRU files.

Once CtrlP is open:

  • 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.
  • Press <F5> to purge the cache for the current directory and get new files.
  • End the input string with a colon : followed by a command to execute it after opening the file:
    Use :45 to jump to line 45.
    Use :/any\:string to jump to the first instance of any:string.
    Use :difft when opening multiple files to run :difft on the first 4 files.
  • Submit two or more dots . as the input string to go backward the directory tree by one or multiple levels.
  • Use <c-y> to create a new file and its parent dirs.
  • Use <c-z> to mark/unmark multiple files and <c-o> to open them.

Basic Options

  • Change the mapping to invoke CtrlP:

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

    let g:ctrlp_working_path_mode = 2
    

    0 - dont manage working directory.
    1 - the directory of the current file.
    2 - the nearest ancestor that contains one of these directories or files: .git/ .hg/ .svn/ .bzr/ _darcs/

  • To exclude files or directories from the search, use the Vims option wildignore and/or the option g:ctrlp_custom_ignore:

    set wildignore+=*/tmp/*,*.so,*.swp,*.zip  " MacOSX/Linux
    set wildignore+=tmp\*,*.swp,*.zip,*.exe   " Windows
    
    let g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$'
    let g:ctrlp_custom_ignore = {
      \ 'dir':  '\.git$\|\.hg$\|\.svn$',
      \ 'file': '\.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
    
  • Define an external matcher:

    let g:ctrlp_match_func = {}
    

Check the docs for more mappings, commands and options.

Description
No description provided
Readme 722 KiB
Languages
Vim script 100%