annotate vim/vimfiles/bundle/ctrlp.vim/doc/ctrlp.txt @ 18:2cc96559ecac

Ignore .pyc files.
author Brian Neal <bgneal@gmail.com>
date Sun, 19 Jan 2014 11:32:42 -0600
parents 86e0ac713642
children
rev   line source
bgneal@7 1 *ctrlp.txt* Fuzzy file, buffer, mru and tag finder. v1.7.6
bgneal@7 2 *CtrlP* *ControlP* *'ctrlp'* *'ctrl-p'*
bgneal@7 3 ===============================================================================
bgneal@7 4 # #
bgneal@7 5 # :::::::: ::::::::::: ::::::::: ::: ::::::::: #
bgneal@7 6 # :+: :+: :+: :+: :+: :+: :+: :+: #
bgneal@7 7 # +:+ +:+ +:+ +:+ +:+ +:+ +:+ #
bgneal@7 8 # +#+ +#+ +#++:++#: +#+ +#++:++#+ #
bgneal@7 9 # +#+ +#+ +#+ +#+ +#+ +#+ #
bgneal@7 10 # #+# #+# #+# #+# #+# #+# #+# #
bgneal@7 11 # ######## ### ### ### ########## ### #
bgneal@7 12 # #
bgneal@7 13 ===============================================================================
bgneal@7 14 CONTENTS *ctrlp-contents*
bgneal@7 15
bgneal@7 16 1. Intro........................................|ctrlp-intro|
bgneal@7 17 2. Options......................................|ctrlp-options|
bgneal@7 18 3. Commands.....................................|ctrlp-commands|
bgneal@7 19 4. Mappings.....................................|ctrlp-mappings|
bgneal@7 20 5. Input Formats................................|ctrlp-input-formats|
bgneal@7 21 6. Extensions...................................|ctrlp-extensions|
bgneal@7 22
bgneal@7 23 ===============================================================================
bgneal@7 24 INTRO *ctrlp-intro*
bgneal@7 25
bgneal@7 26 Full path fuzzy file, buffer, mru and tag finder with an intuitive interface.
bgneal@7 27 Written in pure Vimscript for MacVim and Vim version 7.0+. Has full support for
bgneal@7 28 Vim’s |regexp| as search pattern, built-in MRU files monitoring, project’s root
bgneal@7 29 finder, and more.
bgneal@7 30
bgneal@7 31 To enable optional extensions (tag, dir, rtscript...), see |ctrlp-extensions|.
bgneal@7 32
bgneal@7 33 ===============================================================================
bgneal@7 34 OPTIONS *ctrlp-options*
bgneal@7 35
bgneal@7 36 Overview:~
bgneal@7 37
bgneal@7 38 |loaded_ctrlp| Disable the plugin.
bgneal@7 39 |ctrlp_map| Default mapping.
bgneal@7 40 |ctrlp_cmd| Default command used for the default mapping.
bgneal@7 41 |ctrlp_by_filename| Default to filename mode or not.
bgneal@7 42 |ctrlp_regexp| Default to regexp mode or not.
bgneal@7 43 |ctrlp_match_window_bottom| Where to show the match window.
bgneal@7 44 |ctrlp_match_window_reversed| Sort order in the match window.
bgneal@7 45 |ctrlp_max_height| Max height of the match window.
bgneal@7 46 |ctrlp_switch_buffer| Jump to an open buffer if already opened.
bgneal@7 47 |ctrlp_reuse_window| Reuse special windows (help, quickfix, etc).
bgneal@7 48 |ctrlp_working_path_mode| How to set CtrlP’s local working directory.
bgneal@7 49 |ctrlp_root_markers| Additional, high priority root markers.
bgneal@7 50 |ctrlp_use_caching| Use per-session caching or not.
bgneal@7 51 |ctrlp_clear_cache_on_exit| Keep cache after exiting Vim or not.
bgneal@7 52 |ctrlp_cache_dir| Location of the cache directory.
bgneal@7 53 |ctrlp_dotfiles| Ignore dotfiles and dotdirs or not.
bgneal@7 54 |ctrlp_custom_ignore| Hide stuff when using |globpath()|.
bgneal@7 55 |ctrlp_max_files| Number of files to scan initially.
bgneal@7 56 |ctrlp_max_depth| Directory depth to recurse into when scanning.
bgneal@7 57 |ctrlp_user_command| Use an external scanner.
bgneal@7 58 |ctrlp_max_history| Number of entries saved in the prompt history.
bgneal@7 59 |ctrlp_open_new_file| How to open a file created by <c-y>.
bgneal@7 60 |ctrlp_open_multiple_files| How to open files selected by <c-z>.
bgneal@7 61 |ctrlp_arg_map| Intercept <c-y> and <c-o> or not.
bgneal@7 62 |ctrlp_follow_symlinks| Follow symbolic links or not.
bgneal@7 63 |ctrlp_lazy_update| Only update when typing has stopped.
bgneal@7 64 |ctrlp_default_input| Seed the prompt with an initial string.
bgneal@7 65 |ctrlp_use_migemo| Use Migemo patterns for Japanese filenames.
bgneal@7 66 |ctrlp_prompt_mappings| Change the mappings in the prompt.
bgneal@7 67
bgneal@7 68 MRU mode:
bgneal@7 69 |ctrlp_mruf_max| Max MRU entries to remember.
bgneal@7 70 |ctrlp_mruf_exclude| Files that shouldn’t be remembered.
bgneal@7 71 |ctrlp_mruf_include| Files to be remembered.
bgneal@7 72 |ctrlp_mruf_relative| Show only MRU files in the working directory.
bgneal@7 73 |ctrlp_mruf_default_order| Disable sorting.
bgneal@7 74 |ctrlp_mruf_case_sensitive| MRU files are case sensitive or not.
bgneal@7 75
bgneal@7 76 Advanced options:
bgneal@7 77 |ctrlp_status_func| Change CtrlP’s two statuslines.
bgneal@7 78 |ctrlp_buffer_func| Call custom functions in the CtrlP buffer.
bgneal@7 79 |ctrlp_match_func| Replace the built-in matching algorithm.
bgneal@7 80
bgneal@7 81 -------------------------------------------------------------------------------
bgneal@7 82 Detailed descriptions and default values:~
bgneal@7 83
bgneal@7 84 *'g:ctrlp_map'*
bgneal@7 85 Use this option to change the mapping to invoke CtrlP in |Normal| mode: >
bgneal@7 86 let g:ctrlp_map = '<c-p>'
bgneal@7 87 <
bgneal@7 88
bgneal@7 89 *'g:ctrlp_cmd'*
bgneal@7 90 Set the default opening command to use when pressing the above mapping: >
bgneal@7 91 let g:ctrlp_cmd = 'CtrlP'
bgneal@7 92 <
bgneal@7 93
bgneal@7 94 *'g:loaded_ctrlp'*
bgneal@7 95 Use this to disable the plugin completely: >
bgneal@7 96 let g:loaded_ctrlp = 1
bgneal@7 97 <
bgneal@7 98
bgneal@7 99 *'g:ctrlp_by_filename'*
bgneal@7 100 Set this to 1 to set searching by filename (as opposed to full path) as the
bgneal@7 101 default: >
bgneal@7 102 let g:ctrlp_by_filename = 0
bgneal@7 103 <
bgneal@7 104 Can be toggled on/off by pressing <c-d> inside the prompt.
bgneal@7 105
bgneal@7 106 *'g:ctrlp_regexp'*
bgneal@7 107 Set this to 1 to set regexp search as the default: >
bgneal@7 108 let g:ctrlp_regexp = 0
bgneal@7 109 <
bgneal@7 110 Can be toggled on/off by pressing <c-r> inside the prompt.
bgneal@7 111
bgneal@7 112 *'g:ctrlp_match_window_bottom'*
bgneal@7 113 Set this to 0 to show the match window at the top of the screen: >
bgneal@7 114 let g:ctrlp_match_window_bottom = 1
bgneal@7 115 <
bgneal@7 116
bgneal@7 117 *'g:ctrlp_match_window_reversed'*
bgneal@7 118 Change the listing order of the files in the match window. The default setting
bgneal@7 119 (1) is from bottom to top: >
bgneal@7 120 let g:ctrlp_match_window_reversed = 1
bgneal@7 121 <
bgneal@7 122
bgneal@7 123 *'g:ctrlp_max_height'*
bgneal@7 124 Set the maximum height of the match window: >
bgneal@7 125 let g:ctrlp_max_height = 10
bgneal@7 126 <
bgneal@7 127
bgneal@7 128 *'g:ctrlp_switch_buffer'*
bgneal@7 129 When opening a file with <cr> or <c-t>, if the file’s already opened somewhere
bgneal@7 130 CtrlP will try to jump to it instead of opening a new instance: >
bgneal@7 131 let g:ctrlp_switch_buffer = 2
bgneal@7 132 <
bgneal@7 133 1 - only jump to the buffer if it’s opened in the current tab.
bgneal@7 134 2 - jump tab as well if the buffer’s opened in another tab.
bgneal@7 135 0 - disable this feature.
bgneal@7 136
bgneal@7 137 *'g:ctrlp_reuse_window'*
bgneal@7 138 When opening a file with <cr>, CtrlP avoids opening it in windows created by
bgneal@7 139 plugins, help and quickfix. Use this to setup some exceptions: >
bgneal@7 140 let g:ctrlp_reuse_window = 'netrw'
bgneal@7 141 <
bgneal@7 142 Acceptable values are partial name, filetype or buftype of the special buffers.
bgneal@7 143 Use regexp to specify the pattern.
bgneal@7 144 Example: >
bgneal@7 145 let g:ctrlp_reuse_window = 'netrw\|help\|quickfix'
bgneal@7 146 <
bgneal@7 147
bgneal@7 148 *'g:ctrlp_working_path_mode'*
bgneal@7 149 When starting up, CtrlP sets its local working directory according to this
bgneal@7 150 variable: >
bgneal@7 151 let g:ctrlp_working_path_mode = 2
bgneal@7 152 <
bgneal@7 153 1 - the parent directory of the current file.
bgneal@7 154 2 - the nearest ancestor that contains one of these directories or files:
bgneal@7 155 .git/ .hg/ .svn/ .bzr/ _darcs/
bgneal@7 156 0 - don’t manage working directory.
bgneal@7 157 Note: you can use b:ctrlp_working_path_mode (a |b:var|) to set this option on a
bgneal@7 158 per buffer basis.
bgneal@7 159
bgneal@7 160 *'g:ctrlp_root_markers'*
bgneal@7 161 Use this to set your own root markers in addition to the default ones (.git/,
bgneal@7 162 .hg/, .svn/, .bzr/, and _darcs/). Your markers will take precedence: >
bgneal@7 163 let g:ctrlp_root_markers = ['']
bgneal@7 164 <
bgneal@7 165
bgneal@7 166 *'g:ctrlp_use_caching'*
bgneal@7 167 Set this to 0 to disable per-session caching. When disabled, caching will still
bgneal@7 168 be enabled for directories that have more than 4000 files: >
bgneal@7 169 let g:ctrlp_use_caching = 1
bgneal@7 170 <
bgneal@7 171 Note: you can quickly purge the cache by pressing <F5> while inside CtrlP.
bgneal@7 172
bgneal@7 173 *'g:ctrlp_clear_cache_on_exit'*
bgneal@7 174 Set this to 0 to enable cross-session caching by not deleting the cache files
bgneal@7 175 upon exiting Vim: >
bgneal@7 176 let g:ctrlp_clear_cache_on_exit = 1
bgneal@7 177 <
bgneal@7 178
bgneal@7 179 *'g:ctrlp_cache_dir'*
bgneal@7 180 Set the directory to store the cache files: >
bgneal@7 181 let g:ctrlp_cache_dir = $HOME.'/.cache/ctrlp'
bgneal@7 182 <
bgneal@7 183
bgneal@7 184 *'g:ctrlp_dotfiles'*
bgneal@7 185 Set this to 0 if you don’t want CtrlP to scan for dotfiles and dotdirs: >
bgneal@7 186 let g:ctrlp_dotfiles = 1
bgneal@7 187 <
bgneal@7 188 You can use |'wildignore'| to exclude anything from the search.
bgneal@7 189 Examples: >
bgneal@7 190 " Excluding version control directories
bgneal@7 191 set wildignore+=*/.git/*,*/.hg/*,*/.svn/* " Linux/MacOSX
bgneal@7 192 set wildignore+=.git\*,.hg\*,.svn\* " Windows
bgneal@7 193 <
bgneal@7 194 Note #1: the `*/` in front of each directory glob is required.
bgneal@7 195
bgneal@7 196 Note #2: |wildignore| influences the result of |expand()|, |globpath()| and
bgneal@7 197 |glob()| which many plugins use to find stuff on the system (e.g. VCS related
bgneal@7 198 plugins look for .git/, .hg/,... some other plugins look for external *.exe
bgneal@7 199 tools on Windows). So be a little mindful of what you put in your |wildignore|.
bgneal@7 200
bgneal@7 201 *'g:ctrlp_custom_ignore'*
bgneal@7 202 In addition to |'wildignore'|, use this for files and directories you want only
bgneal@7 203 CtrlP to not show. Use regexp to specify the patterns: >
bgneal@7 204 let g:ctrlp_custom_ignore = ''
bgneal@7 205 <
bgneal@7 206 Examples: >
bgneal@7 207 let g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$'
bgneal@7 208 let g:ctrlp_custom_ignore = {
bgneal@7 209 \ 'dir': '\.git$\|\.hg$\|\.svn$',
bgneal@7 210 \ 'file': '\.exe$\|\.so$\|\.dll$',
bgneal@7 211 \ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
bgneal@7 212 \ }
bgneal@7 213 <
bgneal@7 214 Note: ignoring only works when |globpath()| is used to scan for files.
bgneal@7 215
bgneal@7 216 *'g:ctrlp_max_files'*
bgneal@7 217 The maximum number of files to scan, set to 0 for no limit: >
bgneal@7 218 let g:ctrlp_max_files = 10000
bgneal@7 219 <
bgneal@7 220
bgneal@7 221 *'g:ctrlp_max_depth'*
bgneal@7 222 The maximum depth of a directory tree to recurse into: >
bgneal@7 223 let g:ctrlp_max_depth = 40
bgneal@7 224 <
bgneal@7 225 Note: the larger these values, the more memory Vim uses.
bgneal@7 226
bgneal@7 227 *'g:ctrlp_user_command'*
bgneal@7 228 Specify an external tool to use for listing files instead of using Vim’s
bgneal@7 229 |globpath()|. Use %s in place of the target directory: >
bgneal@7 230 let g:ctrlp_user_command = ''
bgneal@7 231 <
bgneal@7 232 Examples: >
bgneal@7 233 let g:ctrlp_user_command = 'find %s -type f' " MacOSX/Linux
bgneal@7 234 let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d' " Windows
bgneal@7 235 <
bgneal@7 236 You can also use 'grep', 'findstr' or something else to filter the results.
bgneal@7 237 Examples: >
bgneal@7 238 let g:ctrlp_user_command = 'find %s -type f | grep (?!tmp/.*)'
bgneal@7 239 let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d | findstr .*\.py$'
bgneal@7 240 <
bgneal@7 241 Use a version control listing command when inside a repository, this is faster
bgneal@7 242 when scanning large projects: >
bgneal@7 243 let g:ctrlp_user_command = [root_marker, listing_command, fallback_command]
bgneal@7 244 let g:ctrlp_user_command = {
bgneal@7 245 \ 'types': {
bgneal@7 246 \ 1: [root_marker_1, listing_command_1],
bgneal@7 247 \ n: [root_marker_n, listing_command_n],
bgneal@7 248 \ },
bgneal@7 249 \ 'fallback': fallback_command
bgneal@7 250 \ }
bgneal@7 251 <
bgneal@7 252 Examples: >
bgneal@7 253 let g:ctrlp_user_command = ['.git/', 'cd %s && git ls-files']
bgneal@7 254 let g:ctrlp_user_command = ['.hg/', 'hg --cwd %s locate -I .']
bgneal@7 255 let g:ctrlp_user_command = {
bgneal@7 256 \ 'types': {
bgneal@7 257 \ 1: ['.git/', 'cd %s && git ls-files'],
bgneal@7 258 \ 2: ['.hg/', 'hg --cwd %s locate -I .'],
bgneal@7 259 \ },
bgneal@7 260 \ 'fallback': 'find %s -type f'
bgneal@7 261 \ }
bgneal@7 262 <
bgneal@7 263 If the fallback_command is empty or not defined, |globpath()| will then be used
bgneal@7 264 when searching outside a repo.
bgneal@7 265
bgneal@7 266 *'g:ctrlp_max_history'*
bgneal@7 267 The maximum number of input strings you want CtrlP to remember. The default
bgneal@7 268 value mirrors Vim’s global |'history'| option: >
bgneal@7 269 let g:ctrlp_max_history = &history
bgneal@7 270 <
bgneal@7 271 Set to 0 to disable prompt’s history. Browse the history with <c-n> and <c-p>.
bgneal@7 272
bgneal@7 273 *'g:ctrlp_open_new_file'*
bgneal@7 274 Use this option to specify how the newly created file is to be opened when
bgneal@7 275 pressing <c-y>:
bgneal@7 276 t - in a new tab
bgneal@7 277 h - in a new horizontal split
bgneal@7 278 v - in a new vertical split
bgneal@7 279 r - in the current window
bgneal@7 280 >
bgneal@7 281 let g:ctrlp_open_new_file = 'v'
bgneal@7 282 <
bgneal@7 283
bgneal@7 284 *'g:ctrlp_open_multiple_files'*
bgneal@7 285 If non-zero, this will enable opening multiple files with <c-z> and <c-o>: >
bgneal@7 286 let g:ctrlp_open_multiple_files = 'v'
bgneal@7 287 <
bgneal@7 288 Example: >
bgneal@7 289 let g:ctrlp_open_multiple_files = '2vr'
bgneal@7 290 <
bgneal@7 291 For the number:
bgneal@7 292 - If given, it’ll be used as the maximum number of windows or tabs to create
bgneal@7 293 when opening the files (the rest will be opened as hidden buffers).
bgneal@7 294 - If not given, <c-o> will open all files, each in a new window or new tab.
bgneal@7 295 For the letters:
bgneal@7 296 t - each file in a new tab.
bgneal@7 297 h - each file in a new horizontal split.
bgneal@7 298 v - each file in a new vertical split.
bgneal@7 299 Reuse the current window:
bgneal@7 300 tr,
bgneal@7 301 hr,
bgneal@7 302 vr - open the first file in the current window, then the remaining files in
bgneal@7 303 new splits or new tabs just like with t, h, v.
bgneal@7 304
bgneal@7 305 *'g:ctrlp_arg_map'*
bgneal@7 306 When this is set to 1, the <c-o> and <c-y> mappings will accept one extra key
bgneal@7 307 as an argument to override their default behavior: >
bgneal@7 308 let g:ctrlp_arg_map = 0
bgneal@7 309 <
bgneal@7 310 Pressing <c-o> or <c-y> will then prompt for a keypress. The key can be:
bgneal@7 311 t - open in tab(s)
bgneal@7 312 h - open in horizontal split(s)
bgneal@7 313 v - open in vertical split(s)
bgneal@7 314 r - open in current window (for <c-y> only)
bgneal@7 315 <esc>, <c-c>, <c-g> - cancel and go back to the prompt.
bgneal@7 316 <cr> - use the default behavior specified with |g:ctrlp_open_new_file| and
bgneal@7 317 |g:ctrlp_open_multiple_files|.
bgneal@7 318
bgneal@7 319 *'g:ctrlp_follow_symlinks'*
bgneal@7 320 Set this to 1 to follow symbolic links when listing files: >
bgneal@7 321 let g:ctrlp_follow_symlinks = 0
bgneal@7 322 <
bgneal@7 323 When enabled, looped internal symlinks will be ignored to avoid duplicates.
bgneal@7 324
bgneal@7 325 *'g:ctrlp_lazy_update'*
bgneal@7 326 Set this to 1 to enable the lazy-update feature: only update the match window
bgneal@7 327 after typing’s been stopped for a certain amount of time: >
bgneal@7 328 let g:ctrlp_lazy_update = 0
bgneal@7 329 <
bgneal@7 330 If is 1, update after 250ms. If bigger than 1, the number will be used as the
bgneal@7 331 delay time in milliseconds.
bgneal@7 332
bgneal@7 333 *'g:ctrlp_default_input'*
bgneal@7 334 Set this to 1 to enable seeding the prompt with the current file’s relative
bgneal@7 335 path: >
bgneal@7 336 let g:ctrlp_default_input = 0
bgneal@7 337 <
bgneal@7 338
bgneal@7 339 *'g:ctrlp_use_migemo'*
bgneal@7 340 Set this to 1 to use Migemo Pattern for Japanese filenames. Migemo Search only
bgneal@7 341 works in regexp mode. To split the pattern, separate words with space: >
bgneal@7 342 let g:ctrlp_use_migemo = 0
bgneal@7 343 <
bgneal@7 344
bgneal@7 345 *'g:ctrlp_prompt_mappings'*
bgneal@7 346 Use this to customize the mappings inside CtrlP’s prompt to your liking. You
bgneal@7 347 only need to keep the lines that you’ve changed the values (inside []): >
bgneal@7 348 let g:ctrlp_prompt_mappings = {
bgneal@7 349 \ 'PrtBS()': ['<bs>', '<c-]>'],
bgneal@7 350 \ 'PrtDelete()': ['<del>'],
bgneal@7 351 \ 'PrtDeleteWord()': ['<c-w>'],
bgneal@7 352 \ 'PrtClear()': ['<c-u>'],
bgneal@7 353 \ 'PrtSelectMove("j")': ['<c-j>', '<down>'],
bgneal@7 354 \ 'PrtSelectMove("k")': ['<c-k>', '<up>'],
bgneal@7 355 \ 'PrtSelectMove("t")': ['<Home>', '<kHome>'],
bgneal@7 356 \ 'PrtSelectMove("b")': ['<End>', '<kEnd>'],
bgneal@7 357 \ 'PrtSelectMove("u")': ['<PageUp>', '<kPageUp>'],
bgneal@7 358 \ 'PrtSelectMove("d")': ['<PageDown>', '<kPageDown>'],
bgneal@7 359 \ 'PrtHistory(-1)': ['<c-n>'],
bgneal@7 360 \ 'PrtHistory(1)': ['<c-p>'],
bgneal@7 361 \ 'AcceptSelection("e")': ['<cr>', '<2-LeftMouse>'],
bgneal@7 362 \ 'AcceptSelection("h")': ['<c-x>', '<c-cr>', '<c-s>'],
bgneal@7 363 \ 'AcceptSelection("t")': ['<c-t>'],
bgneal@7 364 \ 'AcceptSelection("v")': ['<c-v>', '<RightMouse>'],
bgneal@7 365 \ 'ToggleFocus()': ['<s-tab>'],
bgneal@7 366 \ 'ToggleRegex()': ['<c-r>'],
bgneal@7 367 \ 'ToggleByFname()': ['<c-d>'],
bgneal@7 368 \ 'ToggleType(1)': ['<c-f>', '<c-up>'],
bgneal@7 369 \ 'ToggleType(-1)': ['<c-b>', '<c-down>'],
bgneal@7 370 \ 'PrtExpandDir()': ['<tab>'],
bgneal@7 371 \ 'PrtInsert("c")': ['<MiddleMouse>', '<insert>'],
bgneal@7 372 \ 'PrtInsert()': ['<c-\>'],
bgneal@7 373 \ 'PrtCurStart()': ['<c-a>'],
bgneal@7 374 \ 'PrtCurEnd()': ['<c-e>'],
bgneal@7 375 \ 'PrtCurLeft()': ['<c-h>', '<left>', '<c-^>'],
bgneal@7 376 \ 'PrtCurRight()': ['<c-l>', '<right>'],
bgneal@7 377 \ 'PrtClearCache()': ['<F5>'],
bgneal@7 378 \ 'PrtDeleteEnt()': ['<F7>'],
bgneal@7 379 \ 'CreateNewFile()': ['<c-y>'],
bgneal@7 380 \ 'MarkToOpen()': ['<c-z>'],
bgneal@7 381 \ 'OpenMulti()': ['<c-o>'],
bgneal@7 382 \ 'PrtExit()': ['<esc>', '<c-c>', '<c-g>'],
bgneal@7 383 \ }
bgneal@7 384 <
bgneal@7 385 Note: In some terminals, it’s not possible to remap <c-h> without also changing
bgneal@7 386 <bs> (|keycodes|). So if pressing <bs> moves the cursor to the left instead of
bgneal@7 387 deleting a char for you, add this to your |.vimrc| to disable the plugin’s
bgneal@7 388 default <c-h> mapping: >
bgneal@7 389 let g:ctrlp_prompt_mappings = { 'PrtCurLeft()': ['<left>', '<c-^>'] }
bgneal@7 390 <
bgneal@7 391
bgneal@7 392 ----------------------------------------
bgneal@7 393 MRU mode options:~
bgneal@7 394
bgneal@7 395 *'g:ctrlp_mruf_max'*
bgneal@7 396 Specify the number of recently opened files you want CtrlP to remember: >
bgneal@7 397 let g:ctrlp_mruf_max = 250
bgneal@7 398 <
bgneal@7 399
bgneal@7 400 *'g:ctrlp_mruf_exclude'*
bgneal@7 401 Files you don’t want CtrlP to remember. Use regexp to specify the patterns: >
bgneal@7 402 let g:ctrlp_mruf_exclude = ''
bgneal@7 403 <
bgneal@7 404 Examples: >
bgneal@7 405 let g:ctrlp_mruf_exclude = '/tmp/.*\|/temp/.*' " MacOSX/Linux
bgneal@7 406 let g:ctrlp_mruf_exclude = '^C:\\dev\\tmp\\.*' " Windows
bgneal@7 407 <
bgneal@7 408
bgneal@7 409 *'g:ctrlp_mruf_include'*
bgneal@7 410 And if you want CtrlP to only remember some files, specify them here: >
bgneal@7 411 let g:ctrlp_mruf_include = ''
bgneal@7 412 <
bgneal@7 413 Example: >
bgneal@7 414 let g:ctrlp_mruf_include = '\.py$\|\.rb$'
bgneal@7 415 <
bgneal@7 416
bgneal@7 417 *'g:ctrlp_mruf_relative'*
bgneal@7 418 Set this to 1 to show only MRU files in the current working directory: >
bgneal@7 419 let g:ctrlp_mruf_relative = 0
bgneal@7 420 <
bgneal@7 421
bgneal@7 422 *'g:ctrlp_mruf_default_order'*
bgneal@7 423 Set this to 1 to disable sorting when searching in MRU mode: >
bgneal@7 424 let g:ctrlp_mruf_default_order = 0
bgneal@7 425 <
bgneal@7 426
bgneal@7 427 *'g:ctrlp_mruf_case_sensitive'*
bgneal@7 428 Match this with your file system case-sensitivity setting to avoid duplicate
bgneal@7 429 MRU entries: >
bgneal@7 430 let g:ctrlp_mruf_case_sensitive = 1
bgneal@7 431 <
bgneal@7 432
bgneal@7 433 ----------------------------------------
bgneal@7 434 Advanced options:~
bgneal@7 435
bgneal@7 436 *'g:ctrlp_status_func'*
bgneal@7 437 Use this to customize the statuslines for the CtrlP window: >
bgneal@7 438 let g:ctrlp_status_func = {}
bgneal@7 439 <
bgneal@7 440 Example: >
bgneal@7 441 let g:ctrlp_status_func = {
bgneal@7 442 \ 'main': 'Function_Name_1',
bgneal@7 443 \ 'prog': 'Function_Name_2',
bgneal@7 444 \ }
bgneal@7 445 <
bgneal@7 446 Structure of the functions: >
bgneal@7 447 " Main statusline
bgneal@7 448 function! Function_Name_1(focus, byfname, regex, prev, item, next, marked)
bgneal@7 449 " Arguments:
bgneal@7 450 " |
bgneal@7 451 " +- a:focus : The focus of the prompt: "prt" or "win".
bgneal@7 452 " |
bgneal@7 453 " +- a:byfname : In filename mode or in full path mode: "file" or "path".
bgneal@7 454 " |
bgneal@7 455 " +- a:regex : In regex mode: 1 or 0.
bgneal@7 456 " |
bgneal@7 457 " +- a:prev : The previous search mode.
bgneal@7 458 " |
bgneal@7 459 " +- a:item : The current search mode.
bgneal@7 460 " |
bgneal@7 461 " +- a:next : The next search mode.
bgneal@7 462 " |
bgneal@7 463 " +- a:marked : The number of marked files, or a comma separated list of
bgneal@7 464 " the filenames.
bgneal@7 465
bgneal@7 466 return full_statusline
bgneal@7 467 endfunction
bgneal@7 468
bgneal@7 469 " Progress statusline
bgneal@7 470 function! Function_Name_2(str)
bgneal@7 471 " a:str : Either the number of files scanned so far, or a string indicating
bgneal@7 472 " the current directory is being scanned with a user_command.
bgneal@7 473
bgneal@7 474 return full_statusline
bgneal@7 475 endfunction
bgneal@7 476 <
bgneal@7 477 See https://gist.github.com/1610859 for a working example.
bgneal@7 478
bgneal@7 479 *'g:ctrlp_buffer_func'*
bgneal@7 480 Specify the functions that will be called after entering and before exiting the
bgneal@7 481 CtrlP buffer: >
bgneal@7 482 let g:ctrlp_buffer_func = {}
bgneal@7 483 <
bgneal@7 484 Example: >
bgneal@7 485 let g:ctrlp_buffer_func = {
bgneal@7 486 \ 'enter': 'Function_Name_1',
bgneal@7 487 \ 'exit': 'Function_Name_2',
bgneal@7 488 \ }
bgneal@7 489 <
bgneal@7 490
bgneal@7 491 *'g:ctrlp_match_func'*
bgneal@7 492 Set an external fuzzy matching function for CtrlP to use: >
bgneal@7 493 let g:ctrlp_match_func = {}
bgneal@7 494 <
bgneal@7 495 Example: >
bgneal@7 496 let g:ctrlp_match_func = { 'match': 'Function_Name' }
bgneal@7 497 <
bgneal@7 498 Structure of the function: >
bgneal@7 499 function! Function_Name(items, str, limit, mmode, ispath, crfile, regex)
bgneal@7 500 " Arguments:
bgneal@7 501 " |
bgneal@7 502 " +- a:items : The full list of items to search in.
bgneal@7 503 " |
bgneal@7 504 " +- a:str : The string entered by the user.
bgneal@7 505 " |
bgneal@7 506 " +- a:limit : The max height of the match window. Can be used to limit
bgneal@7 507 " | the number of items to return.
bgneal@7 508 " |
bgneal@7 509 " +- a:mmode : The match mode. Can be one of these strings:
bgneal@7 510 " | + "full-line": match the entire line.
bgneal@7 511 " | + "filename-only": match only the filename.
bgneal@7 512 " | + "first-non-tab": match until the first tab char.
bgneal@7 513 " | + "until-last-tab": match until the last tab char.
bgneal@7 514 " |
bgneal@7 515 " +- a:ispath : Is 1 when searching in file, buffer, mru, dir, and rtscript
bgneal@7 516 " | modes. Is 0 otherwise.
bgneal@7 517 " |
bgneal@7 518 " +- a:crfile : The file in the current window. Should be excluded from the
bgneal@7 519 " | results when a:ispath == 1.
bgneal@7 520 " |
bgneal@7 521 " +- a:regex : In regex mode: 1 or 0.
bgneal@7 522
bgneal@7 523 return list_of_matched_items
bgneal@7 524 endfunction
bgneal@7 525 <
bgneal@7 526
bgneal@7 527 ===============================================================================
bgneal@7 528 COMMANDS *ctrlp-commands*
bgneal@7 529
bgneal@7 530 *:CtrlP*
bgneal@7 531 :CtrlP [starting-directory]
bgneal@7 532 Open CtrlP in find file mode.
bgneal@7 533
bgneal@7 534 If no argument is given, the value of |g:ctrlp_working_path_mode| will be
bgneal@7 535 used to determine the starting directory.
bgneal@7 536 You can use <tab> to auto-complete the [starting-directory] when typing it.
bgneal@7 537
bgneal@7 538 *:CtrlPBuffer*
bgneal@7 539 :CtrlPBuffer
bgneal@7 540 Open CtrlP in find buffer mode.
bgneal@7 541
bgneal@7 542 *:CtrlPMRU*
bgneal@7 543 :CtrlPMRU
bgneal@7 544 Open CtrlP in find Most-Recently-Used file mode.
bgneal@7 545
bgneal@7 546 *:CtrlPLastMode*
bgneal@7 547 :CtrlPLastMode
bgneal@7 548 Open CtrlP in the last mode used.
bgneal@7 549
bgneal@7 550 *:CtrlPRoot*
bgneal@7 551 :CtrlPRoot
bgneal@7 552 This acts like |:CtrlP| with |g:ctrlp_working_path_mode| = 2 (ignores its
bgneal@7 553 current value).
bgneal@7 554
bgneal@7 555 *:CtrlPClearCache*
bgneal@7 556 :CtrlPClearCache
bgneal@7 557 Flush the cache for the current working directory. The same as pressing <F5>
bgneal@7 558 inside CtrlP.
bgneal@7 559 To enable or disable caching, use the |g:ctrlp_use_caching| option.
bgneal@7 560
bgneal@7 561 *:CtrlPClearAllCaches*
bgneal@7 562 :CtrlPClearAllCaches
bgneal@7 563 Delete all the cache files saved in |g:ctrlp_cache_dir|.
bgneal@7 564
bgneal@7 565 -------------------------------------------------------------------------------
bgneal@7 566 For commands provided by bundled extensions, see |ctrlp-extensions|.
bgneal@7 567
bgneal@7 568 ===============================================================================
bgneal@7 569 MAPPINGS *ctrlp-mappings*
bgneal@7 570
bgneal@7 571 *'ctrlp-<c-p>'*
bgneal@7 572 <c-p>
bgneal@7 573 Default |Normal| mode mapping to open the CtrlP prompt in find file mode.
bgneal@7 574
bgneal@7 575 Once inside the prompt:~
bgneal@7 576
bgneal@7 577 <c-d>
bgneal@7 578 Toggle between full-path search and filename only search.
bgneal@7 579 Note: in filename mode, the prompt’s base is '>d>' instead of '>>>'
bgneal@7 580
bgneal@7 581 <c-r> *'ctrlp-fullregexp'*
bgneal@7 582 Toggle between the string mode and full regexp mode.
bgneal@7 583 Note: in full regexp mode, the prompt’s base is 'r>>' instead of '>>>'
bgneal@7 584
bgneal@7 585 See also |input-formats| (guide) and |g:ctrlp_regexp_search| (option).
bgneal@7 586
bgneal@7 587 <c-f>, 'forward'
bgneal@7 588 <c-up>
bgneal@7 589 Scroll to the 'next' search mode in the sequence.
bgneal@7 590
bgneal@7 591 <c-b>, 'backward'
bgneal@7 592 <c-down>
bgneal@7 593 Scroll to the 'previous' search mode in the sequence.
bgneal@7 594
bgneal@7 595 <tab>
bgneal@7 596 Auto-complete directory names under the current working directory inside
bgneal@7 597 the prompt.
bgneal@7 598
bgneal@7 599 <s-tab>
bgneal@7 600 Toggle the focus between the match window and the prompt.
bgneal@7 601
bgneal@7 602 <c-j>,
bgneal@7 603 <down>
bgneal@7 604 Move selection down.
bgneal@7 605
bgneal@7 606 <c-k>,
bgneal@7 607 <up>
bgneal@7 608 Move selection up.
bgneal@7 609
bgneal@7 610 <c-a>
bgneal@7 611 Move the cursor to the 'start' of the prompt.
bgneal@7 612
bgneal@7 613 <c-e>
bgneal@7 614 Move the cursor to the 'end' of the prompt.
bgneal@7 615
bgneal@7 616 <c-h>,
bgneal@7 617 <left>,
bgneal@7 618 <c-^>
bgneal@7 619 Move the cursor one character to the 'left'.
bgneal@7 620
bgneal@7 621 <c-l>,
bgneal@7 622 <right>
bgneal@7 623 Move the cursor one character to the 'right'.
bgneal@7 624
bgneal@7 625 <c-]>,
bgneal@7 626 <bs>
bgneal@7 627 Delete the preceding character.
bgneal@7 628
bgneal@7 629 <del>
bgneal@7 630 Delete the current character.
bgneal@7 631
bgneal@7 632 <c-w>
bgneal@7 633 Delete a preceding inner word.
bgneal@7 634
bgneal@7 635 <c-u>
bgneal@7 636 Clear the input field.
bgneal@7 637
bgneal@7 638 <cr>
bgneal@7 639 Open selected file in the active window if possible.
bgneal@7 640
bgneal@7 641 <c-t>
bgneal@7 642 Open selected file in a new 'tab' after the last tabpage.
bgneal@7 643
bgneal@7 644 <c-v>
bgneal@7 645 Open selected file in a 'vertical' split.
bgneal@7 646
bgneal@7 647 <c-x>,
bgneal@7 648 <c-cr>,
bgneal@7 649 <c-s>
bgneal@7 650 Open selected file in a 'horizontal' split.
bgneal@7 651
bgneal@7 652 <c-y>
bgneal@7 653 Create a new file and its parent directories.
bgneal@7 654
bgneal@7 655 <c-n>
bgneal@7 656 Next string in the prompt’s history.
bgneal@7 657
bgneal@7 658 <c-p>
bgneal@7 659 Previous string in the prompt’s history.
bgneal@7 660
bgneal@7 661 <c-z>
bgneal@7 662 - Mark/unmark a file to be opened with <c-o>.
bgneal@7 663 - Or mark/unmark a file to create a new file in its directory using <c-y>.
bgneal@7 664
bgneal@7 665 <c-o>
bgneal@7 666 Open files marked by <c-z>.
bgneal@7 667
bgneal@7 668 <F5>
bgneal@7 669 - Refresh the match window and purge the cache for the current directory.
bgneal@7 670 - Or remove deleted files from the MRU list.
bgneal@7 671
bgneal@7 672 <F7>
bgneal@7 673 - Wipe the MRU list.
bgneal@7 674 - Or delete MRU entries marked by <c-z>.
bgneal@7 675
bgneal@7 676 <insert>
bgneal@7 677 Insert the word under the cursor (in the current buffer) into the prompt.
bgneal@7 678
bgneal@7 679 <esc>,
bgneal@7 680 <c-c>,
bgneal@7 681 <c-g>
bgneal@7 682 Exit CtrlP.
bgneal@7 683 Note: <c-c> can also be used to stop the scan if it’s taking too long.
bgneal@7 684
bgneal@7 685 Choose your own mappings with |g:ctrlp_prompt_mappings|.
bgneal@7 686
bgneal@7 687 When inside the match window (press <s-tab> to switch):~
bgneal@7 688
bgneal@7 689 a-z
bgneal@7 690 0-9
bgneal@7 691 ~^-=;`',.+!@#$%&_(){}[]
bgneal@7 692 Cycle through the lines with the first letter (of paths or filenames) that
bgneal@7 693 matches that key.
bgneal@7 694
bgneal@7 695 ===============================================================================
bgneal@7 696 INPUT FORMATS *ctrlp-input-formats*
bgneal@7 697
bgneal@7 698 Formats for inputting in the prompt:~
bgneal@7 699
bgneal@7 700 a) Simple string.
bgneal@7 701
bgneal@7 702 E.g. 'abc' is understood internally as 'a[^a]\{-}b[^b]\{-}c'
bgneal@7 703
bgneal@7 704 b) When in regexp mode, the input string’s treated as a Vim’s regexp |pattern|
bgneal@7 705 without any modification.
bgneal@7 706
bgneal@7 707 E.g. 'abc\d*efg' will be read as 'abc\d*efg'.
bgneal@7 708
bgneal@7 709 See |ctrlp-fullregexp| (keymap) and |g:ctrlp_regexp_search| (option) for
bgneal@7 710 how to enable regexp mode.
bgneal@7 711
bgneal@7 712 c) End the string with a colon ':' followed by a Vim command to execute that
bgneal@7 713 command after opening the file. If you need to use ':' literally, escape it
bgneal@7 714 with a backslash: '\:'. When opening multiple files, the command will be
bgneal@7 715 executed on each opening file.
bgneal@7 716
bgneal@7 717 E.g. 'abc:45' will open the selected file and jump to line 45.
bgneal@7 718
bgneal@7 719 'abc:/any\:string' will open the selected file and jump to the first
bgneal@7 720 instance of 'any:string'.
bgneal@7 721
bgneal@7 722 'abc:+setf\ myfiletype|50' will open the selected file and set its
bgneal@7 723 filetype to 'myfiletype', then jump to line 50.
bgneal@7 724
bgneal@7 725 'abc:diffthis' will open the selected files and run |:diffthis| on the
bgneal@7 726 first 4 files (if marked).
bgneal@7 727
bgneal@7 728 See also Vim’s |++opt| and |+cmd|.
bgneal@7 729
bgneal@7 730 d) Type exactly two dots '..' at the start of the prompt and press enter to go
bgneal@7 731 backward in the directory tree by 1 level. If the parent directory is
bgneal@7 732 large, this might be slow.
bgneal@7 733
bgneal@7 734 e) Similarly, submit '/' or '\' to find and go to the project’s root. If the
bgneal@7 735 project is large, using a VCS listing command to look for files might help
bgneal@7 736 speeding up the intial scan (see |g:ctrlp_user_command| for more details).
bgneal@7 737
bgneal@7 738 Note: e) and d) only work in find file mode and directory mode.
bgneal@7 739
bgneal@7 740 f) Type the name of a non-existent file and press <c-y> to create it. Mark a
bgneal@7 741 file with <c-z> to create the new file in the same directory as the marked
bgneal@7 742 file.
bgneal@7 743
bgneal@7 744 E.g. 'parentdir/newfile.txt' will create a directory named 'parentdir' as
bgneal@7 745 well as 'newfile.txt'.
bgneal@7 746
bgneal@7 747 If 'some/old/dirs/oldfile.txt' is marked with <c-z>, then 'parentdir'
bgneal@7 748 and 'newfile.txt' will be created in 'some/old/dirs'. The final path
bgneal@7 749 will then be 'some/old/dirs/parentdir/newfile.txt'.
bgneal@7 750
bgneal@7 751 Use '\' in place of '/' on Windows (if |'ssl'| is not set).
bgneal@7 752
bgneal@7 753 g) Submit ? to open this help file.
bgneal@7 754
bgneal@7 755 ===============================================================================
bgneal@7 756 EXTENSIONS *ctrlp-extensions*
bgneal@7 757
bgneal@7 758 Extensions are optional. To enable an extension, add its name to the variable
bgneal@7 759 g:ctrlp_extensions: >
bgneal@7 760 let g:ctrlp_extensions = ['tag', 'buffertag', 'quickfix', 'dir', 'rtscript',
bgneal@7 761 \ 'undo', 'line', 'changes', 'mixed', 'bookmarkdir']
bgneal@7 762 <
bgneal@7 763 The order of the items will be the order they appear on the statusline and when
bgneal@7 764 using <c-f>, <c-b>.
bgneal@7 765
bgneal@7 766 Available extensions:~
bgneal@7 767
bgneal@7 768 *:CtrlPTag*
bgneal@7 769 * Tag mode:~
bgneal@7 770 - Name: 'tag'
bgneal@7 771 - Command: ':CtrlPTag'
bgneal@7 772 - Search for a tag within a generated central tags file, and jump to the
bgneal@7 773 definition. Use the Vim’s option |'tags'| to specify the names and the
bgneal@7 774 locations of the tags file(s).
bgneal@7 775 E.g. set tags+=doc/tags
bgneal@7 776
bgneal@7 777 *:CtrlPBufTag*
bgneal@7 778 *:CtrlPBufTagAll*
bgneal@7 779 * Buffer Tag mode:~
bgneal@7 780 - Name: 'buffertag'
bgneal@7 781 - Commands: ':CtrlPBufTag [buffer]',
bgneal@7 782 ':CtrlPBufTagAll'.
bgneal@7 783 - Search for a tag within the current buffer or all listed buffers and jump
bgneal@7 784 to the definition. Requires |exuberant_ctags| or compatible programs.
bgneal@7 785
bgneal@7 786 *:CtrlPQuickfix*
bgneal@7 787 * Quickfix mode:~
bgneal@7 788 - Name: 'quickfix'
bgneal@7 789 - Command: ':CtrlPQuickfix'
bgneal@7 790 - Search for an entry in the current quickfix errors and jump to it.
bgneal@7 791
bgneal@7 792 *:CtrlPDir*
bgneal@7 793 * Directory mode:~
bgneal@7 794 - Name: 'dir'
bgneal@7 795 - Command: ':CtrlPDir [starting-directory]'
bgneal@7 796 - Search for a directory and change the working directory to it.
bgneal@7 797 - Mappings:
bgneal@7 798 + <cr> change the local working directory for CtrlP and keep it open.
bgneal@7 799 + <c-t> change the global working directory (exit).
bgneal@7 800 + <c-v> change the local working directory for the current window (exit).
bgneal@7 801 + <c-x> change the global working directory to CtrlP’s current local
bgneal@7 802 working directory (exit).
bgneal@7 803
bgneal@7 804 *:CtrlPRTS*
bgneal@7 805 * Runtime script mode:~
bgneal@7 806 - Name: 'rtscript'
bgneal@7 807 - Command: ':CtrlPRTS'
bgneal@7 808 - Search for files (vimscripts, docs, snippets...) in runtimepath.
bgneal@7 809
bgneal@7 810 *:CtrlPUndo*
bgneal@7 811 * Undo mode:~
bgneal@7 812 - Name: 'undo'
bgneal@7 813 - Command: ':CtrlPUndo'
bgneal@7 814 - Browse undo history.
bgneal@7 815
bgneal@7 816 *:CtrlPLine*
bgneal@7 817 * Line mode:~
bgneal@7 818 - Name: 'line'
bgneal@7 819 - Command: ':CtrlPLine'
bgneal@7 820 - Search for a line in all listed buffers.
bgneal@7 821
bgneal@7 822 *:CtrlPChange*
bgneal@7 823 *:CtrlPChangeAll*
bgneal@7 824 * Change list mode:~
bgneal@7 825 - Name: 'changes'
bgneal@7 826 - Commands: ':CtrlPChange [buffer]',
bgneal@7 827 ':CtrlPChangeAll'.
bgneal@7 828 - Search for and jump to a recent change in the current buffer or in all
bgneal@7 829 listed buffers.
bgneal@7 830
bgneal@7 831 *:CtrlPMixed*
bgneal@7 832 * Mixed mode:~
bgneal@7 833 - Name: 'mixed'
bgneal@7 834 - Command: ':CtrlPMixed'
bgneal@7 835 - Search in files, buffers and MRU files at the same time.
bgneal@7 836
bgneal@7 837 *:CtrlPBookmarkDir*
bgneal@7 838 *:CtrlPBookmarkDirAdd*
bgneal@7 839 * BookmarkDir mode:~
bgneal@7 840 - Name: 'bookmarkdir'
bgneal@7 841 - Commands: ':CtrlPBookmarkDir',
bgneal@7 842 ':CtrlPBookmarkDirAdd [directory]'.
bgneal@7 843 - Search for a bookmarked directory and change the working directory to it.
bgneal@7 844 - Mappings:
bgneal@7 845 + <cr> change the local working directory for CtrlP, keep it open and
bgneal@7 846 switch to find file mode.
bgneal@7 847 + <c-x> change the global working directory (exit).
bgneal@7 848 + <c-v> change the local working directory for the current window (exit).
bgneal@7 849 + <F7>
bgneal@7 850 - Wipe bookmark list.
bgneal@7 851 - Or delete entries marked by <c-z>.
bgneal@7 852
bgneal@7 853 ----------------------------------------
bgneal@7 854 Buffer Tag mode options:~
bgneal@7 855
bgneal@7 856 *'g:ctrlp_buftag_ctags_bin'*
bgneal@7 857 If ctags isn’t in your $PATH, use this to set its location: >
bgneal@7 858 let g:ctrlp_buftag_ctags_bin = ''
bgneal@7 859 <
bgneal@7 860
bgneal@7 861 *'g:ctrlp_buftag_systemenc'*
bgneal@7 862 Match this with your OS’s encoding (not Vim’s). The default value mirrors Vim’s
bgneal@7 863 global |'encoding'| option: >
bgneal@7 864 let g:ctrlp_buftag_systemenc = &encoding
bgneal@7 865 <
bgneal@7 866
bgneal@7 867 *'g:ctrlp_buftag_types'*
bgneal@7 868 Use this to set the arguments for ctags, jsctags... for a given filetype: >
bgneal@7 869 let g:ctrlp_buftag_types = ''
bgneal@7 870 <
bgneal@7 871 Examples: >
bgneal@7 872 let g:ctrlp_buftag_types = {
bgneal@7 873 \ 'erlang' : '--language-force=erlang --erlang-types=drmf',
bgneal@7 874 \ 'javascript' : {
bgneal@7 875 \ 'bin': 'jsctags',
bgneal@7 876 \ 'args': '-f -',
bgneal@7 877 \ },
bgneal@7 878 \ }
bgneal@7 879 <
bgneal@7 880
bgneal@7 881 ===============================================================================
bgneal@7 882 CUSTOMIZATION *ctrlp-customization*
bgneal@7 883
bgneal@7 884 Highlighting:~
bgneal@7 885 * For the CtrlP buffer:
bgneal@7 886 CtrlPNoEntries : the message when no match is found (Error)
bgneal@7 887 CtrlPMatch : the matched pattern (Identifier)
bgneal@7 888 CtrlPLinePre : the line prefix '>' in the match window
bgneal@7 889 CtrlPPrtBase : the prompt’s base (Comment)
bgneal@7 890 CtrlPPrtText : the prompt’s text (|hl-Normal|)
bgneal@7 891 CtrlPPrtCursor : the prompt’s cursor when moving over the text (Constant)
bgneal@7 892
bgneal@7 893 * In extensions:
bgneal@7 894 CtrlPTabExtra : the part of each line that’s not matched against (Comment)
bgneal@7 895 CtrlPBufName : the buffer name an entry belongs to (|hl-Directory|)
bgneal@7 896 CtrlPTagKind : the kind of the tag in buffer-tag mode (|hl-Title|)
bgneal@7 897 CtrlPqfLineCol : the line and column numbers in quickfix mode (Comment)
bgneal@7 898 CtrlPUndoT : the elapsed time in undo mode (|hl-Directory|)
bgneal@7 899 CtrlPUndoBr : the square brackets [] in undo mode (Comment)
bgneal@7 900 CtrlPUndoNr : the undo number inside [] in undo mode (String)
bgneal@7 901 CtrlPUndoSv : the point where the file was saved (Comment)
bgneal@7 902 CtrlPUndoPo : the current position in the undo tree (|hl-Title|)
bgneal@7 903 CtrlPBookmark : the name of the bookmark (Identifier)
bgneal@7 904
bgneal@7 905 Statuslines:~
bgneal@7 906 * Highlight groups:
bgneal@7 907 CtrlPMode1 : 'prt' or 'win', also for 'regex' (Character)
bgneal@7 908 CtrlPMode2 : 'file' or 'path', also for the local working dir (|hl-LineNr|)
bgneal@7 909 CtrlPStats : the scanning status (Function)
bgneal@7 910
bgneal@7 911 For rebuilding the statuslines, see |g:ctrlp_status_func|.
bgneal@7 912
bgneal@7 913 ===============================================================================
bgneal@7 914 MISCELLANEOUS CONFIGS *ctrlp-miscellaneous-configs*
bgneal@7 915
bgneal@7 916 * Use |wildignore| for |g:ctrlp_user_command|:
bgneal@7 917 >
bgneal@7 918 function! s:wig2cmd()
bgneal@7 919 " Change wildignore into space or | separated groups
bgneal@7 920 " e.g. .aux .out .toc .jpg .bmp .gif
bgneal@7 921 " or .aux$\|.out$\|.toc$\|.jpg$\|.bmp$\|.gif$
bgneal@7 922 let pats = ['[*\/]*\([?_.0-9A-Za-z]\+\)\([*\/]*\)\(\\\@<!,\|$\)','\\\@<!,']
bgneal@7 923 let subs = has('win32') || has('win64') ? ['\1\3', ' '] : ['\1\2\3', '\\|']
bgneal@7 924 let expr = substitute(&wig, pats[0], subs[0], 'g')
bgneal@7 925 let expr = substitute(expr, pats[1], subs[1], 'g')
bgneal@7 926 let expr = substitute(expr, '\\,', ',', 'g')
bgneal@7 927
bgneal@7 928 " Set the user_command option
bgneal@7 929 let g:ctrlp_user_command = has('win32') || has('win64')
bgneal@7 930 \ ? 'dir %s /-n /b /s /a-d | findstr /V /l "'.expr.'"'
bgneal@7 931 \ : 'find %s -type f | grep -v "'.expr .'"'
bgneal@7 932 endfunction
bgneal@7 933
bgneal@7 934 call s:wig2cmd()
bgneal@7 935 <
bgneal@7 936 (submitted by Rich Alesi <github.com/ralesi>)
bgneal@7 937
bgneal@7 938 * A standalone function to set the working directory to the project’s root, or
bgneal@7 939 to the parent directory of the current file if a root can’t be found:
bgneal@7 940 >
bgneal@7 941 function! s:setcwd()
bgneal@7 942 let cph = expand('%:p:h', 1)
bgneal@7 943 if match(cph, '\v^<.+>://') >= 0 | retu | en
bgneal@7 944 for mkr in ['.git/', '.hg/', '.svn/', '.bzr/', '_darcs/', '.vimprojects']
bgneal@7 945 let wd = call('find'.(mkr =~ '/$' ? 'dir' : 'file'), [mkr, cph.';'])
bgneal@7 946 if wd != '' | let &acd = 0 | brea | en
bgneal@7 947 endfo
bgneal@7 948 exe 'lc!' fnameescape(wd == '' ? cph : substitute(wd, mkr.'$', '.', ''))
bgneal@7 949 endfunction
bgneal@7 950
bgneal@7 951 autocmd BufEnter * call s:setcwd()
bgneal@7 952 <
bgneal@7 953 (requires Vim 7.1.299+)
bgneal@7 954
bgneal@7 955 ===============================================================================
bgneal@7 956 CREDITS *ctrlp-credits*
bgneal@7 957
bgneal@7 958 Developed by Kien Nguyen <github.com/kien>.
bgneal@7 959
bgneal@7 960 Project’s homepage: http://kien.github.com/ctrlp.vim
bgneal@7 961 Git repository: https://github.com/kien/ctrlp.vim
bgneal@7 962 Mercurial repository: https://bitbucket.org/kien/ctrlp.vim
bgneal@7 963
bgneal@7 964 -------------------------------------------------------------------------------
bgneal@7 965 Thanks to everyone that has submitted ideas, bug reports or helped debugging on
bgneal@7 966 gibhub, bitbucket, and through email.
bgneal@7 967
bgneal@7 968 Special thanks:~
bgneal@7 969
bgneal@7 970 * Woojong Koh <github.com/wjkoh>
bgneal@7 971 * Simon Ruderich
bgneal@7 972 * Yasuhiro Matsumoto <github.com/mattn>
bgneal@7 973 * Ken Earley <github.com/kenearley>
bgneal@7 974 * Kyo Nagashima <github.com/hail2u>
bgneal@7 975 * Zak Johnson <github.com/zakj>
bgneal@7 976 * Diego Viola <github.com/diegoviola>
bgneal@7 977 * Piet Delport <github.com/pjdelport>
bgneal@7 978 * Thibault Duplessis <github.com/ornicar>
bgneal@7 979 * Kent Sibilev <github.com/datanoise>
bgneal@7 980 * Tacahiroy <github.com/tacahiroy>
bgneal@7 981 * Luca Pette <github.com/lucapette>
bgneal@7 982
bgneal@7 983 ===============================================================================
bgneal@7 984 CHANGELOG *ctrlp-changelog*
bgneal@7 985
bgneal@7 986 + New option: |g:ctrlp_mruf_default_order|
bgneal@7 987 + New feature: Bookmarked directories extension.
bgneal@7 988 + New commands: |:CtrlPBookmarkDir|
bgneal@7 989 |:CtrlPBookmarkDirAdd|
bgneal@7 990
bgneal@7 991 Before 2012/04/15~
bgneal@7 992
bgneal@7 993 + New option: |g:ctrlp_buffer_func|, callback functions for CtrlP buffer.
bgneal@7 994 + Remove: g:ctrlp_mruf_last_entered, make it a default for MRU mode.
bgneal@7 995 + New commands: |:CtrlPLastMode|, open CtrlP in the last mode used.
bgneal@7 996 |:CtrlPMixed|, search in files, buffers and MRU files.
bgneal@7 997
bgneal@7 998 Before 2012/03/31~
bgneal@7 999
bgneal@7 1000 + New options: |g:ctrlp_default_input|, default input when entering CtrlP.
bgneal@7 1001 |g:ctrlp_match_func|, allow using a custom fuzzy matcher.
bgneal@7 1002 + Rename:
bgneal@7 1003 *ClearCtrlPCache* -> |CtrlPClearCache|
bgneal@7 1004 *ClearAllCtrlPCaches* -> |CtrlPClearAllCaches|
bgneal@7 1005 *ResetCtrlP* -> |CtrlPReload|
bgneal@7 1006
bgneal@7 1007 Before 2012/03/02~
bgneal@7 1008
bgneal@7 1009 + Rename:
bgneal@7 1010 *g:ctrlp_regexp_search* -> |g:ctrlp_regexp|,
bgneal@7 1011 *g:ctrlp_dont_split* -> |g:ctrlp_reuse_window|,
bgneal@7 1012 *g:ctrlp_jump_to_buffer* -> |g:ctrlp_switch_buffer|.
bgneal@7 1013 + Rename and tweak:
bgneal@7 1014 *g:ctrlp_open_multi* -> |g:ctrlp_open_multiple_files|.
bgneal@7 1015 + Deprecate *g:ctrlp_highlight_match*
bgneal@7 1016 + Extend |g:ctrlp_user_command| to support multiple commands.
bgneal@7 1017 + New option: |g:ctrlp_mruf_last_entered| change MRU to Recently-Entered.
bgneal@7 1018
bgneal@7 1019 Before 2012/01/15~
bgneal@7 1020
bgneal@7 1021 + New mapping: Switch <tab> and <s-tab>. <tab> is now used for completion
bgneal@7 1022 of directory names under the current working directory.
bgneal@7 1023 + New options: |g:ctrlp_arg_map| for <c-y>, <c-o> to accept an argument.
bgneal@7 1024 |g:ctrlp_status_func| custom statusline.
bgneal@7 1025 |g:ctrlp_mruf_relative| show only MRU files inside cwd.
bgneal@7 1026 + Extend g:ctrlp_open_multi with new optional values: tr, hr, vr.
bgneal@7 1027 + Extend |g:ctrlp_custom_ignore| to specifically filter dir, file and link.
bgneal@7 1028
bgneal@7 1029 Before 2012/01/05~
bgneal@7 1030
bgneal@7 1031 + New feature: Buffer Tag extension.
bgneal@7 1032 + New commands: |:CtrlPBufTag|, |:CtrlPBufTagAll|.
bgneal@7 1033 + New options: |g:ctrlp_cmd|,
bgneal@7 1034 |g:ctrlp_custom_ignore|
bgneal@7 1035
bgneal@7 1036 Before 2011/11/30~
bgneal@7 1037
bgneal@7 1038 + New features: Tag, Quickfix and Directory extensions.
bgneal@7 1039 + New commands: |:CtrlPTag|, |:CtrlPQuickfix|, |:CtrlPDir|.
bgneal@7 1040 + New options: |g:ctrlp_use_migemo|,
bgneal@7 1041 |g:ctrlp_lazy_update|,
bgneal@7 1042 |g:ctrlp_follow_symlinks|
bgneal@7 1043
bgneal@7 1044 Before 2011/11/13~
bgneal@7 1045
bgneal@7 1046 + New special input: '/' and '\' find root (|ctrlp-input-formats| (e))
bgneal@7 1047 + Remove ctrlp#SetWorkingPath().
bgneal@7 1048 + Remove *g:ctrlp_mru_files* and make MRU mode permanent.
bgneal@7 1049 + Extend g:ctrlp_open_multi, add new ways to open files.
bgneal@7 1050 + New option: g:ctrlp_dont_split,
bgneal@7 1051 |g:ctrlp_mruf_case_sensitive|
bgneal@7 1052
bgneal@7 1053 Before 2011/10/30~
bgneal@7 1054
bgneal@7 1055 + New feature: Support for custom extensions.
bgneal@7 1056 <F5> also removes non-existent files from MRU list.
bgneal@7 1057 + New option: g:ctrlp_jump_to_buffer
bgneal@7 1058
bgneal@7 1059 Before 2011/10/12~
bgneal@7 1060
bgneal@7 1061 + New features: Open multiple files.
bgneal@7 1062 Pass Vim’s |++opt| and |+cmd| to the opening file
bgneal@7 1063 (|ctrlp-input-formats| (c))
bgneal@7 1064 Auto-complete each dir for |:CtrlP| [starting-directory]
bgneal@7 1065 + New mappings: <c-z> mark/unmark a file to be opened with <c-o>.
bgneal@7 1066 <c-o> open all marked files.
bgneal@7 1067 + New option: g:ctrlp_open_multi
bgneal@7 1068 + Remove *g:ctrlp_persistent_input* *g:ctrlp_live_update* and <c-^>.
bgneal@7 1069
bgneal@7 1070 Before 2011/09/29~
bgneal@7 1071
bgneal@7 1072 + New mappings: <c-n>, <c-p> next/prev string in the input history.
bgneal@7 1073 <c-y> create a new file and its parent dirs.
bgneal@7 1074 + New options: |g:ctrlp_open_new_file|,
bgneal@7 1075 |g:ctrlp_max_history|
bgneal@7 1076 + Added a new open-in-horizontal-split mapping: <c-x>
bgneal@7 1077
bgneal@7 1078 Before 2011/09/19~
bgneal@7 1079
bgneal@7 1080 + New command: ResetCtrlP
bgneal@7 1081 + New options: |g:ctrlp_max_files|,
bgneal@7 1082 |g:ctrlp_max_depth|,
bgneal@7 1083 g:ctrlp_live_update
bgneal@7 1084 + New mapping: <c-^>
bgneal@7 1085
bgneal@7 1086 Before 2011/09/12~
bgneal@7 1087
bgneal@7 1088 + Ability to cycle through matched lines in the match window.
bgneal@7 1089 + Extend the behavior of g:ctrlp_persistent_input
bgneal@7 1090 + Extend the behavior of |:CtrlP|
bgneal@7 1091 + New options: |g:ctrlp_dotfiles|,
bgneal@7 1092 |g:ctrlp_clear_cache_on_exit|,
bgneal@7 1093 g:ctrlp_highlight_match,
bgneal@7 1094 |g:ctrlp_user_command|
bgneal@7 1095 + New special input: '..' (|ctrlp-input-formats| (d))
bgneal@7 1096 + New mapping: <F5>.
bgneal@7 1097 + New commands: |:CtrlPCurWD|,
bgneal@7 1098 |:CtrlPCurFile|,
bgneal@7 1099 |:CtrlPRoot|
bgneal@7 1100
bgneal@7 1101 + New feature: Search in most recently used (MRU) files
bgneal@7 1102 + New mapping: <c-b>.
bgneal@7 1103 + Extended the behavior of <c-f>.
bgneal@7 1104 + New options: g:ctrlp_mru_files,
bgneal@7 1105 |g:ctrlp_mruf_max|,
bgneal@7 1106 |g:ctrlp_mruf_exclude|,
bgneal@7 1107 |g:ctrlp_mruf_include|
bgneal@7 1108 + New command: |:CtrlPMRU|
bgneal@7 1109
bgneal@7 1110 First public release: 2011/09/06~
bgneal@7 1111
bgneal@7 1112 ===============================================================================
bgneal@7 1113 vim:ft=help:et:ts=2:sw=2:sts=2:norl