]>
Commit | Line | Data |
---|---|---|
0d23b6e5 BB |
1 | *command-t.txt* Command-T plug-in for Vim *command-t* |
2 | ||
3 | CONTENTS *command-t-contents* | |
4 | ||
5 | 1. Introduction |command-t-intro| | |
6 | 2. Requirements |command-t-requirements| | |
7 | 3. Installation |command-t-installation| | |
8 | 3. Managing using Pathogen |command-t-pathogen| | |
9 | 4. Trouble-shooting |command-t-trouble-shooting| | |
10 | 5. Usage |command-t-usage| | |
11 | 6. Commands |command-t-commands| | |
12 | 7. Mappings |command-t-mappings| | |
13 | 8. Options |command-t-options| | |
14 | 9. Authors |command-t-authors| | |
15 | 10. Website |command-t-website| | |
16 | 11. Donations |command-t-donations| | |
17 | 12. License |command-t-license| | |
18 | 13. History |command-t-history| | |
19 | ||
20 | ||
21 | INTRODUCTION *command-t-intro* | |
22 | ||
23 | The Command-T plug-in provides an extremely fast, intuitive mechanism for | |
24 | opening files and buffers with a minimal number of keystrokes. It's named | |
25 | "Command-T" because it is inspired by the "Go to File" window bound to | |
26 | Command-T in TextMate. | |
27 | ||
28 | Files are selected by typing characters that appear in their paths, and are | |
29 | ordered by an algorithm which knows that characters that appear in certain | |
30 | locations (for example, immediately after a path separator) should be given | |
31 | more weight. | |
32 | ||
33 | To search efficiently, especially in large projects, you should adopt a | |
34 | "path-centric" rather than a "filename-centric" mentality. That is you should | |
35 | think more about where the desired file is found rather than what it is | |
36 | called. This means narrowing your search down by including some characters | |
37 | from the upper path components rather than just entering characters from the | |
38 | filename itself. | |
39 | ||
40 | Screencasts demonstrating the plug-in can be viewed at: | |
41 | ||
42 | https://wincent.com/products/command-t | |
43 | ||
44 | ||
45 | REQUIREMENTS *command-t-requirements* | |
46 | ||
47 | The plug-in requires Vim compiled with Ruby support, a compatible Ruby | |
48 | installation at the operating system level, and a C compiler to build | |
49 | the Ruby extension. | |
50 | ||
51 | ||
52 | 1. Vim compiled with Ruby support | |
53 | ||
54 | You can check for Ruby support by launching Vim with the --version switch: | |
55 | ||
56 | vim --version | |
57 | ||
58 | If "+ruby" appears in the version information then your version of Vim has | |
59 | Ruby support. | |
60 | ||
61 | Another way to check is to simply try using the :ruby command from within Vim | |
62 | itself: | |
63 | ||
64 | :ruby 1 | |
65 | ||
66 | If your Vim lacks support you'll see an error message like this: | |
67 | ||
68 | E319: Sorry, the command is not available in this version | |
69 | ||
70 | The version of Vim distributed with Mac OS X does not include Ruby support, | |
71 | while MacVim does; it is available from: | |
72 | ||
73 | http://github.com/b4winckler/macvim/downloads | |
74 | ||
75 | For Windows users, the Vim 7.2 executable available from www.vim.org does | |
76 | include Ruby support, and is recommended over version 7.3 (which links against | |
77 | Ruby 1.9, but apparently has some bugs that need to be resolved). | |
78 | ||
79 | ||
80 | 2. Ruby | |
81 | ||
82 | In addition to having Ruby support in Vim, your system itself must have a | |
83 | compatible Ruby install. "Compatible" means the same version as Vim itself | |
84 | links against. If you use a different version then Command-T is unlikely | |
85 | to work (see TROUBLE-SHOOTING below). | |
86 | ||
87 | On Mac OS X Snow Leopard, the system comes with Ruby 1.8.7 and all recent | |
88 | versions of MacVim (the 7.2 snapshots and 7.3) are linked against it. | |
89 | ||
90 | On Linux and similar platforms, the linked version of Ruby will depend on | |
91 | your distribution. You can usually find this out by examining the | |
92 | compilation and linking flags displayed by the |:version| command in Vim, and | |
93 | by looking at the output of: | |
94 | ||
95 | :ruby puts RUBY_VERSION | |
96 | ||
97 | A suitable Ruby environment for Windows can be installed using the Ruby | |
98 | 1.8.7-p299 RubyInstaller available at: | |
99 | ||
100 | http://rubyinstaller.org/downloads/archives | |
101 | ||
102 | If using RubyInstaller be sure to download the installer executable, not the | |
103 | 7-zip archive. When installing mark the checkbox "Add Ruby executables to your | |
104 | PATH" so that Vim can find them. | |
105 | ||
106 | ||
107 | 3. C compiler | |
108 | ||
109 | Part of Command-T is implemented in C as a Ruby extension for speed, allowing | |
110 | it to work responsively even on directory hierarchies containing enormous | |
111 | numbers of files. As such, a C compiler is required in order to build the | |
112 | extension and complete the installation. | |
113 | ||
114 | On Mac OS X, this can be obtained by installing the Xcode Tools that come on | |
115 | the Mac OS X install disc. | |
116 | ||
117 | On Windows, the RubyInstaller Development Kit can be used to conveniently | |
118 | install the necessary tool chain: | |
119 | ||
120 | http://rubyinstaller.org/downloads/archives | |
121 | ||
122 | At the time of writing, the appropriate development kit for use with Ruby | |
123 | 1.8.7 is DevKit-3.4.5r3-20091110. | |
124 | ||
125 | To use the Development Kit extract the archive contents to your C:\Ruby | |
126 | folder. | |
127 | ||
128 | ||
129 | INSTALLATION *command-t-installation* | |
130 | ||
131 | Command-T is distributed as a "vimball" which means that it can be installed | |
132 | by opening it in Vim and then sourcing it: | |
133 | ||
134 | :e command-t.vba | |
135 | :so % | |
136 | ||
137 | The files will be installed in your |'runtimepath'|. To check where this is | |
138 | you can issue: | |
139 | ||
140 | :echo &rtp | |
141 | ||
142 | The C extension must then be built, which can be done from the shell. If you | |
143 | use a typical |'runtimepath'| then the files were installed inside ~/.vim and | |
144 | you can build the extension with: | |
145 | ||
146 | cd ~/.vim/ruby/command-t | |
147 | ruby extconf.rb | |
148 | make | |
149 | ||
150 | Note: If you are an RVM user, you must perform the build using the same | |
151 | version of Ruby that Vim itself is linked against. This will often be the | |
152 | system Ruby, which can be selected before issuing the "make" command with: | |
153 | ||
154 | rvm use system | |
155 | ||
156 | ||
157 | MANAGING USING PATHOGEN *command-t-pathogen* | |
158 | ||
159 | Pathogen is a plugin that allows you to maintain plugin installations in | |
160 | separate, isolated subdirectories under the "bundle" directory in your | |
161 | |'runtimepath'|. The following examples assume that you already have | |
162 | Pathogen installed and configured, and that you are installing into | |
163 | ~/.vim/bundle. For more information about Pathogen, see: | |
164 | ||
165 | http://www.vim.org/scripts/script.php?script_id=2332 | |
166 | ||
167 | If you manage your entire ~/.vim folder using Git then you can add the | |
168 | Command-T repository as a submodule: | |
169 | ||
170 | cd ~/.vim | |
171 | git submodule add git://git.wincent.com/command-t.git bundle/command-t | |
172 | git submodule init | |
173 | ||
174 | Or if you just wish to do a simple clone instead of using submodules: | |
175 | ||
176 | cd ~/.vim | |
177 | git clone git://git.wincent.com/command-t.git bundle/command-t | |
178 | ||
179 | Once you have a local copy of the repository you can update it at any time | |
180 | with: | |
181 | ||
182 | cd ~/.vim/bundle/command-t | |
183 | git pull | |
184 | ||
185 | Or you can switch to a specific release with: | |
186 | ||
187 | cd ~/.vim/bundle/command-t | |
188 | git checkout 0.8b | |
189 | ||
190 | After installing or updating you must build the extension: | |
191 | ||
192 | cd ~/.vim/bundle/command-t | |
193 | rake make | |
194 | ||
195 | While the Vimball installation automatically generates the help tags, under | |
196 | Pathogen it is necessary to do so explicitly from inside Vim: | |
197 | ||
198 | :call pathogen#helptags() | |
199 | ||
200 | ||
201 | TROUBLE-SHOOTING *command-t-trouble-shooting* | |
202 | ||
203 | Most installation problems are caused by a mismatch between the version of | |
204 | Ruby on the host operating system, and the version of Ruby that Vim itself | |
205 | linked against at compile time. For example, if one is 32-bit and the other is | |
206 | 64-bit, or one is from the Ruby 1.9 series and the other is from the 1.8 | |
207 | series, then the plug-in is not likely to work. | |
208 | ||
209 | As such, on Mac OS X, I recommend using the standard Ruby that comes with the | |
210 | system (currently 1.8.7) along with the latest version of MacVim (currently | |
211 | version 7.3). If you wish to use custom builds of Ruby or of MacVim (not | |
212 | recommmended) then you will have to take extra care to ensure that the exact | |
213 | same Ruby environment is in effect when building Ruby, Vim and the Command-T | |
214 | extension. | |
215 | ||
216 | For Windows, the following combination is known to work: | |
217 | ||
218 | - Vim 7.2 from http://www.vim.org/download.php: | |
219 | ftp://ftp.vim.org/pub/vim/pc/gvim72.exe | |
220 | - Ruby 1.8.7-p299 from http://rubyinstaller.org/downloads/archives: | |
221 | http://rubyforge.org/frs/download.php/71492/rubyinstaller-1.8.7-p299.exe | |
222 | - DevKit 3.4.5r3-20091110 from http://rubyinstaller.org/downloads/archives: | |
223 | http://rubyforge.org/frs/download.php/66888/devkit-3.4.5r3-20091110.7z | |
224 | ||
225 | If a problem occurs the first thing you should do is inspect the output of: | |
226 | ||
227 | ruby extconf.rb | |
228 | make | |
229 | ||
230 | During the installation, and: | |
231 | ||
232 | vim --version | |
233 | ||
234 | And compare the compilation and linker flags that were passed to the | |
235 | extension and to Vim itself when they were built. If the Ruby-related | |
236 | flags or architecture flags are different then it is likely that something | |
237 | has changed in your Ruby environment and the extension may not work until | |
238 | you eliminate the discrepancy. | |
239 | ||
240 | ||
241 | USAGE *command-t-usage* | |
242 | ||
243 | Bring up the Command-T file window by typing: | |
244 | ||
245 | <Leader>t | |
246 | ||
247 | This mapping is set up automatically for you, provided you do not already have | |
248 | a mapping for <Leader>t or |:CommandT|. You can also bring up the file window | |
249 | by issuing the command: | |
250 | ||
251 | :CommandT | |
252 | ||
253 | A prompt will appear at the bottom of the screen along with a file window | |
254 | showing all of the files in the current directory (as returned by the | |
255 | |:pwd| command). | |
256 | ||
257 | For the most efficient file navigation within a project it's recommended that | |
258 | you |:cd| into the root directory of your project when starting to work on it. | |
259 | If you wish to open a file from outside of the project folder you can pass in | |
260 | an optional path argument (relative or absolute) to |:CommandT|: | |
261 | ||
262 | :CommandT ../path/to/other/files | |
263 | ||
264 | Type letters in the prompt to narrow down the selection, showing only the | |
265 | files whose paths contain those letters in the specified order. Letters do not | |
266 | need to appear consecutively in a path in order for it to be classified as a | |
267 | match. | |
268 | ||
269 | Once the desired file has been selected it can be opened by pressing <CR>. | |
270 | (By default files are opened in the current window, but there are other | |
271 | mappings that you can use to open in a vertical or horizontal split, or in | |
272 | a new tab.) Note that if you have |'nohidden'| set and there are unsaved | |
273 | changes in the current window when you press <CR> then opening in the current | |
274 | window would fail; in this case Command-T will open the file in a new split. | |
275 | ||
276 | The following mappings are active when the prompt has focus: | |
277 | ||
278 | <BS> delete the character to the left of the cursor | |
279 | <Del> delete the character at the cursor | |
280 | <Left> move the cursor one character to the left | |
281 | <C-h> move the cursor one character to the left | |
282 | <Right> move the cursor one character to the right | |
283 | <C-l> move the cursor one character to the right | |
284 | <C-a> move the cursor to the start (left) | |
285 | <C-e> move the cursor to the end (right) | |
286 | <C-u> clear the contents of the prompt | |
287 | <Tab> change focus to the file listing | |
288 | ||
289 | The following mappings are active when the file listing has focus: | |
290 | ||
291 | <Tab> change focus to the prompt | |
292 | ||
293 | The following mappings are active when either the prompt or the file listing | |
294 | has focus: | |
295 | ||
296 | <CR> open the selected file | |
297 | <C-CR> open the selected file in a new split window | |
298 | <C-s> open the selected file in a new split window | |
299 | <C-v> open the selected file in a new vertical split window | |
300 | <C-t> open the selected file in a new tab | |
301 | <C-j> select next file in the file listing | |
302 | <C-n> select next file in the file listing | |
303 | <Down> select next file in the file listing | |
304 | <C-k> select previous file in the file listing | |
305 | <C-p> select previous file in the file listing | |
306 | <Up> select previous file in the file listing | |
307 | <C-c> cancel (dismisses file listing) | |
308 | ||
309 | The following is also available on terminals which support it: | |
310 | ||
311 | <Esc> cancel (dismisses file listing) | |
312 | ||
313 | Note that the default mappings can be overriden by setting options in your | |
314 | ~/.vimrc file (see the OPTIONS section for a full list of available options). | |
315 | ||
316 | In addition, when the file listing has focus, typing a character will cause | |
317 | the selection to jump to the first path which begins with that character. | |
318 | Typing multiple characters consecutively can be used to distinguish between | |
319 | paths which begin with the same prefix. | |
320 | ||
321 | ||
322 | COMMANDS *command-t-commands* | |
323 | ||
324 | *:CommandT* | |
325 | |:CommandT| Brings up the Command-T file window, starting in the | |
326 | current working directory as returned by the|:pwd| | |
327 | command. | |
328 | ||
329 | *:CommandTBuffer* | |
330 | |:CommandTBuffer|Brings up the Command-T buffer window. | |
331 | This works exactly like the standard file window, | |
332 | except that the selection is limited to files that | |
333 | you already have open in buffers. | |
334 | ||
335 | *:CommandTJumps* | |
336 | |:CommandTJump| Brings up the Command-T jumplist window. | |
337 | This works exactly like the standard file window, | |
338 | except that the selection is limited to files that | |
339 | you already have in the jumplist. Note that jumps | |
340 | can persist across Vim sessions (see Vim's |jumplist| | |
341 | documentation for more info). | |
342 | ||
343 | *:CommandTFlush* | |
344 | |:CommandTFlush|Instructs the plug-in to flush its path cache, causing | |
345 | the directory to be rescanned for new or deleted paths | |
346 | the next time the file window is shown. In addition, all | |
347 | configuration settings are re-evaluated, causing any | |
348 | changes made to settings via the |:let| command to be picked | |
349 | up. | |
350 | ||
351 | ||
352 | MAPPINGS *command-t-mappings* | |
353 | ||
354 | By default Command-T comes with only two mappings: | |
355 | ||
356 | <Leader>t bring up the Command-T file window | |
357 | <Leader>b bring up the Command-T buffer window | |
358 | ||
359 | However, Command-T won't overwrite a pre-existing mapping so if you prefer | |
360 | to define different mappings use lines like these in your ~/.vimrc: | |
361 | ||
362 | nnoremap <silent> <Leader>t :CommandT<CR> | |
363 | nnoremap <silent> <Leader>b :CommandTBuffer<CR> | |
364 | ||
365 | Replacing "<Leader>t" or "<Leader>b" with your mapping of choice. | |
366 | ||
367 | Note that in the case of MacVim you actually can map to Command-T (written | |
368 | as <D-t> in Vim) in your ~/.gvimrc file if you first unmap the existing menu | |
369 | binding of Command-T to "New Tab": | |
370 | ||
371 | if has("gui_macvim") | |
372 | macmenu &File.New\ Tab key=<nop> | |
373 | map <D-t> :CommandT<CR> | |
374 | endif | |
375 | ||
376 | When the Command-T window is active a number of other additional mappings | |
377 | become available for doing things like moving between and selecting matches. | |
378 | These are fully described above in the USAGE section, and settings for | |
379 | overriding the mappings are listed below under OPTIONS. | |
380 | ||
381 | ||
382 | OPTIONS *command-t-options* | |
383 | ||
384 | A number of options may be set in your ~/.vimrc to influence the behaviour of | |
385 | the plug-in. To set an option, you include a line like this in your ~/.vimrc: | |
386 | ||
387 | let g:CommandTMaxFiles=20000 | |
388 | ||
389 | To have Command-T pick up new settings immediately (that is, without having | |
390 | to restart Vim) you can issue the |:CommandTFlush| command after making | |
391 | changes via |:let|. | |
392 | ||
393 | Following is a list of all available options: | |
394 | ||
395 | *g:CommandTMaxFiles* | |
396 | |g:CommandTMaxFiles| number (default 10000) | |
397 | ||
398 | The maximum number of files that will be considered when scanning the | |
399 | current directory. Upon reaching this number scanning stops. This | |
400 | limit applies only to file listings and is ignored for buffer | |
401 | listings. | |
402 | ||
403 | *g:CommandTMaxDepth* | |
404 | |g:CommandTMaxDepth| number (default 15) | |
405 | ||
406 | The maximum depth (levels of recursion) to be explored when scanning the | |
407 | current directory. Any directories at levels beyond this depth will be | |
408 | skipped. | |
409 | ||
410 | *g:CommandTMaxCachedDirectories* | |
411 | |g:CommandTMaxCachedDirectories| number (default 1) | |
412 | ||
413 | The maximum number of directories whose contents should be cached when | |
414 | recursively scanning. With the default value of 1, each time you change | |
415 | directories the cache will be emptied and Command-T will have to | |
416 | rescan. Higher values will make Command-T hold more directories in the | |
417 | cache, bringing performance at the cost of memory usage. If set to 0, | |
418 | there is no limit on the number of cached directories. | |
419 | ||
420 | *g:CommandTMaxHeight* | |
421 | |g:CommandTMaxHeight| number (default: 0) | |
422 | ||
423 | The maximum height in lines the match window is allowed to expand to. | |
424 | If set to 0, the window will occupy as much of the available space as | |
425 | needed to show matching entries. | |
426 | ||
427 | *g:CommandTAlwaysShowDotFiles* | |
428 | |g:CommandTAlwaysShowDotFiles| boolean (default: 0) | |
429 | ||
430 | When showing the file listing Command-T will by default show dot-files | |
431 | only if the entered search string contains a dot that could cause a | |
432 | dot-file to match. When set to a non-zero value, this setting instructs | |
433 | Command-T to always include matching dot-files in the match list | |
434 | regardless of whether the search string contains a dot. See also | |
435 | |g:CommandTNeverShowDotFiles|. Note that this setting only influences | |
436 | the file listing; the buffer listing treats dot-files like any other | |
437 | file. | |
438 | ||
439 | *g:CommandTNeverShowDotFiles* | |
440 | |g:CommandTNeverShowDotFiles| boolean (default: 0) | |
441 | ||
442 | In the file listing, Command-T will by default show dot-files if the | |
443 | entered search string contains a dot that could cause a dot-file to | |
444 | match. When set to a non-zero value, this setting instructs Command-T to | |
445 | never show dot-files under any circumstances. Note that it is | |
446 | contradictory to set both this setting and | |
447 | |g:CommandTAlwaysShowDotFiles| to true, and if you do so Vim will suffer | |
448 | from headaches, nervous twitches, and sudden mood swings. This setting | |
449 | has no effect in buffer listings, where dot files are treated like any | |
450 | other file. | |
451 | ||
452 | *g:CommandTScanDotDirectories* | |
453 | |g:CommandTScanDotDirectories| boolean (default: 0) | |
454 | ||
455 | Normally Command-T will not recurse into "dot-directories" (directories | |
456 | whose names begin with a dot) while performing its initial scan. Set | |
457 | this setting to a non-zero value to override this behavior and recurse. | |
458 | Note that this setting is completely independent of the | |
459 | |g:CommandTAlwaysShowDotFiles| and |g:CommandTNeverShowDotFiles| | |
460 | settings; those apply only to the selection and display of matches | |
461 | (after scanning has been performed), whereas | |
462 | |g:CommandTScanDotDirectories| affects the behaviour at scan-time. | |
463 | ||
464 | Note also that even with this setting off you can still use Command-T to | |
465 | open files inside a "dot-directory" such as ~/.vim, but you have to use | |
466 | the |:cd| command to change into that directory first. For example: | |
467 | ||
468 | :cd ~/.vim | |
469 | :CommandT | |
470 | ||
471 | *g:CommandTMatchWindowAtTop* | |
472 | |g:CommandTMatchWindowAtTop| boolean (default: 0) | |
473 | ||
474 | When this setting is off (the default) the match window will appear at | |
475 | the bottom so as to keep it near to the prompt. Turning it on causes the | |
476 | match window to appear at the top instead. This may be preferable if you | |
477 | want the best match (usually the first one) to appear in a fixed location | |
478 | on the screen rather than moving as the number of matches changes during | |
479 | typing. | |
480 | ||
481 | *g:CommandTMatchWindowReverse* | |
482 | |g:CommandTMatchWindowReverse| boolean (default: 0) | |
483 | ||
484 | When this setting is off (the default) the matches will appear from | |
485 | top to bottom with the topmost being selected. Turning it on causes the | |
486 | matches to be reversed so the best match is at the bottom and the | |
487 | initially selected match is the bottom most. This may be preferable if | |
488 | you want the best match to appear in a fixed location on the screen | |
489 | but still be near the prompt at the bottom. | |
490 | ||
491 | As well as the basic options listed above, there are a number of settings that | |
492 | can be used to override the default key mappings used by Command-T. For | |
493 | example, to set <C-x> as the mapping for cancelling (dismissing) the Command-T | |
494 | window, you would add the following to your ~/.vimrc: | |
495 | ||
496 | let g:CommandTCancelMap='<C-x>' | |
497 | ||
498 | Multiple, alternative mappings may be specified using list syntax: | |
499 | ||
500 | let g:CommandTCancelMap=['<C-x>', '<C-c>'] | |
501 | ||
502 | Following is a list of all map settings and their defaults: | |
503 | ||
504 | Setting Default mapping(s) | |
505 | ||
506 | *g:CommandTBackspaceMap* | |
507 | |g:CommandTBackspaceMap| <BS> | |
508 | ||
509 | *g:CommandTDeleteMap* | |
510 | |g:CommandTDeleteMap| <Del> | |
511 | ||
512 | *g:CommandTAcceptSelectionMap* | |
513 | |g:CommandTAcceptSelectionMap| <CR> | |
514 | ||
515 | *g:CommandTAcceptSelectionSplitMap* | |
516 | |g:CommandTAcceptSelectionSplitMap| <C-CR> | |
517 | <C-s> | |
518 | ||
519 | *g:CommandTAcceptSelectionTabMap* | |
520 | |g:CommandTAcceptSelectionTabMap| <C-t> | |
521 | ||
522 | *g:CommandTAcceptSelectionVSplitMap* | |
523 | |g:CommandTAcceptSelectionVSplitMap| <C-v> | |
524 | ||
525 | *g:CommandTToggleFocusMap* | |
526 | |g:CommandTToggleFocusMap| <Tab> | |
527 | ||
528 | *g:CommandTCancelMap* | |
529 | |g:CommandTCancelMap| <C-c> | |
530 | <Esc> (not on all terminals) | |
531 | ||
532 | *g:CommandTSelectNextMap* | |
533 | |g:CommandTSelectNextMap| <C-n> | |
534 | <C-j> | |
535 | <Down> | |
536 | ||
537 | *g:CommandTSelectPrevMap* | |
538 | |g:CommandTSelectPrevMap| <C-p> | |
539 | <C-k> | |
540 | <Up> | |
541 | ||
542 | *g:CommandTClearMap* | |
543 | |g:CommandTClearMap| <C-u> | |
544 | ||
545 | *g:CommandTCursorLeftMap* | |
546 | |g:CommandTCursorLeftMap| <Left> | |
547 | <C-h> | |
548 | ||
549 | *g:CommandTCursorRightMap* | |
550 | |g:CommandTCursorRightMap| <Right> | |
551 | <C-l> | |
552 | ||
553 | *g:CommandTCursorEndMap* | |
554 | |g:CommandTCursorEndMap| <C-e> | |
555 | ||
556 | *g:CommandTCursorStartMap* | |
557 | |g:CommandTCursorStartMap| <C-a> | |
558 | ||
559 | In addition to the options provided by Command-T itself, some of Vim's own | |
560 | settings can be used to control behavior: | |
561 | ||
562 | *command-t-wildignore* | |
563 | |'wildignore'| string (default: '') | |
564 | ||
565 | Vim's |'wildignore'| setting is used to determine which files should be | |
566 | excluded from listings. This is a comma-separated list of glob patterns. | |
567 | It defaults to the empty string, but common settings include "*.o,*.obj" | |
568 | (to exclude object files) or ".git,.svn" (to exclude SCM metadata | |
569 | directories). For example: | |
570 | ||
571 | :set wildignore+=*.o,*.obj,.git | |
572 | ||
573 | A pattern such as "vendor/rails/**" would exclude all files and | |
574 | subdirectories inside the "vendor/rails" directory (relative to | |
575 | directory Command-T starts in). | |
576 | ||
577 | See the |'wildignore'| documentation for more information. | |
578 | ||
579 | ||
580 | AUTHORS *command-t-authors* | |
581 | ||
582 | Command-T is written and maintained by Wincent Colaiuta <win@wincent.com>. | |
583 | Other contributors that have submitted patches include (in alphabetical | |
584 | order): | |
585 | ||
586 | Anthony Panozzo | |
587 | Daniel Hahler | |
588 | Lucas de Vries | |
589 | Marian Schubert | |
590 | Matthew Todd | |
591 | Mike Lundy | |
592 | Scott Bronson | |
593 | Steven Moazami | |
594 | Sung Pae | |
595 | Victor Hugo Borja | |
596 | Woody Peterson | |
597 | Zak Johnson | |
598 | ||
599 | As this was the first Vim plug-in I had ever written I was heavily influenced | |
600 | by the design of the LustyExplorer plug-in by Stephen Bach, which I understand | |
601 | is one of the largest Ruby-based Vim plug-ins to date. | |
602 | ||
603 | While the Command-T codebase doesn't contain any code directly copied from | |
604 | LustyExplorer, I did use it as a reference for answers to basic questions (like | |
605 | "How do you do 'X' in a Ruby-based Vim plug-in?"), and also copied some basic | |
606 | architectural decisions (like the division of the code into Prompt, Settings | |
607 | and MatchWindow classes). | |
608 | ||
609 | LustyExplorer is available from: | |
610 | ||
611 | http://www.vim.org/scripts/script.php?script_id=1890 | |
612 | ||
613 | ||
614 | WEBSITE *command-t-website* | |
615 | ||
616 | The official website for Command-T is: | |
617 | ||
618 | https://wincent.com/products/command-t | |
619 | ||
620 | The latest release will always be available from there. | |
621 | ||
622 | Development in progress can be inspected via the project's Git repository | |
623 | browser at: | |
624 | ||
625 | https://wincent.com/repos/command-t | |
626 | ||
627 | A copy of each release is also available from the official Vim scripts site | |
628 | at: | |
629 | ||
630 | http://www.vim.org/scripts/script.php?script_id=3025 | |
631 | ||
632 | Bug reports should be submitted to the issue tracker at: | |
633 | ||
634 | https://wincent.com/issues | |
635 | ||
636 | ||
637 | DONATIONS *command-t-donations* | |
638 | ||
639 | Command-T itself is free software released under the terms of the BSD license. | |
640 | If you would like to support further development you can make a donation via | |
641 | PayPal to win@wincent.com: | |
642 | ||
643 | https://wincent.com/products/command-t/donations | |
644 | ||
645 | ||
646 | LICENSE *command-t-license* | |
647 | ||
648 | Copyright 2010-2011 Wincent Colaiuta. All rights reserved. | |
649 | ||
650 | Redistribution and use in source and binary forms, with or without | |
651 | modification, are permitted provided that the following conditions are met: | |
652 | ||
653 | 1. Redistributions of source code must retain the above copyright notice, | |
654 | this list of conditions and the following disclaimer. | |
655 | 2. Redistributions in binary form must reproduce the above copyright notice, | |
656 | this list of conditions and the following disclaimer in the documentation | |
657 | and/or other materials provided with the distribution. | |
658 | ||
659 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
660 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
661 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
662 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE | |
663 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
664 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
665 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
666 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
667 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
668 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
669 | POSSIBILITY OF SUCH DAMAGE. | |
670 | ||
671 | HISTORY *command-t-history* | |
672 | ||
673 | 1.3.1 (18 December 2011) | |
674 | ||
675 | - fix jumplist navigation under Ruby 1.9.x (patch from Woody Peterson) | |
676 | ||
677 | 1.3 (27 November 2011) | |
678 | ||
679 | - added the option to maintain multiple caches when changing among | |
680 | directories; see the accompanying |g:CommandTMaxCachedDirectories| setting | |
681 | - added the ability to navigate using the Vim jumplist (patch from Marian | |
682 | Schubert) | |
683 | ||
684 | 1.2.1 (30 April 2011) | |
685 | ||
686 | - Remove duplicate copy of the documentation that was causing "Duplicate tag" | |
687 | errors | |
688 | - Mitigate issue with distracting blinking cursor in non-GUI versions of Vim | |
689 | (patch from Steven Moazami) | |
690 | ||
691 | 1.2 (30 April 2011) | |
692 | ||
693 | - added |g:CommandTMatchWindowReverse| option, to reverse the order of items | |
694 | in the match listing (patch from Steven Moazami) | |
695 | ||
696 | 1.1b2 (26 March 2011) | |
697 | ||
698 | - fix a glitch in the release process; the plugin itself is unchanged since | |
699 | 1.1b | |
700 | ||
701 | 1.1b (26 March 2011) | |
702 | ||
703 | - add |:CommandTBuffer| command for quickly selecting among open buffers | |
704 | ||
705 | 1.0.1 (5 January 2011) | |
706 | ||
707 | - work around bug when mapping |:CommandTFlush|, wherein the default mapping | |
708 | for |:CommandT| would not be set up | |
709 | - clean up when leaving the Command-T buffer via unexpected means (such as | |
710 | with <C-W k> or similar) | |
711 | ||
712 | 1.0 (26 November 2010) | |
713 | ||
714 | - make relative path simplification work on Windows | |
715 | ||
716 | 1.0b (5 November 2010) | |
717 | ||
718 | - work around platform-specific Vim 7.3 bug seen by some users (wherein | |
719 | Vim always falsely reports to Ruby that the buffer numbers is 0) | |
720 | - re-use the buffer that is used to show the match listing, rather than | |
721 | throwing it away and recreating it each time Command-T is shown; this | |
722 | stops the buffer numbers from creeping up needlessly | |
723 | ||
724 | 0.9 (8 October 2010) | |
725 | ||
726 | - use relative paths when opening files inside the current working directory | |
727 | in order to keep buffer listings as brief as possible (patch from Matthew | |
728 | Todd) | |
729 | ||
730 | 0.8.1 (14 September 2010) | |
731 | ||
732 | - fix mapping issues for users who have set |'notimeout'| (patch from Sung | |
733 | Pae) | |
734 | ||
735 | 0.8 (19 August 2010) | |
736 | ||
737 | - overrides for the default mappings can now be lists of strings, allowing | |
738 | multiple mappings to be defined for any given action | |
739 | - <Leader>t mapping only set up if no other map for |:CommandT| exists | |
740 | (patch from Scott Bronson) | |
741 | - prevent folds from appearing in the match listing | |
742 | - tweaks to avoid the likelihood of "Not enough room" errors when trying to | |
743 | open files | |
744 | - watch out for "nil" windows when restoring window dimensions | |
745 | - optimizations (avoid some repeated downcasing) | |
746 | - move all Ruby files under the "command-t" subdirectory and avoid polluting | |
747 | the "Vim" module namespace | |
748 | ||
749 | 0.8b (11 July 2010) | |
750 | ||
751 | - large overhaul of the scoring algorithm to make the ordering of returned | |
752 | results more intuitive; given the scope of the changes and room for | |
753 | optimization of the new algorithm, this release is labelled as "beta" | |
754 | ||
755 | 0.7 (10 June 2010) | |
756 | ||
757 | - handle more |'wildignore'| patterns by delegating to Vim's own |expand()| | |
758 | function; with this change it is now viable to exclude patterns such as | |
759 | 'vendor/rails/**' in addition to filename-only patterns like '*.o' and | |
760 | '.git' (patch from Mike Lundy) | |
761 | - always sort results alphabetically for empty search strings; this eliminates | |
762 | filesystem-specific variations (patch from Mike Lundy) | |
763 | ||
764 | 0.6 (28 April 2010) | |
765 | ||
766 | - |:CommandT| now accepts an optional parameter to specify the starting | |
767 | directory, temporarily overriding the usual default of Vim's |:pwd| | |
768 | - fix truncated paths when operating from root directory | |
769 | ||
770 | 0.5.1 (11 April 2010) | |
771 | ||
772 | - fix for Ruby 1.9 compatibility regression introduced in 0.5 | |
773 | - documentation enhancements, specifically targetted at Windows users | |
774 | ||
775 | 0.5 (3 April 2010) | |
776 | ||
777 | - |:CommandTFlush| now re-evaluates settings, allowing changes made via |let| | |
778 | to be picked up without having to restart Vim | |
779 | - fix premature abort when scanning very deep directory hierarchies | |
780 | - remove broken |<Esc>| key mapping on vt100 and xterm terminals | |
781 | - provide settings for overriding default mappings | |
782 | - minor performance optimization | |
783 | ||
784 | 0.4 (27 March 2010) | |
785 | ||
786 | - add |g:CommandTMatchWindowAtTop| setting (patch from Zak Johnson) | |
787 | - documentation fixes and enhancements | |
788 | - internal refactoring and simplification | |
789 | ||
790 | 0.3 (24 March 2010) | |
791 | ||
792 | - add |g:CommandTMaxHeight| setting for controlling the maximum height of the | |
793 | match window (patch from Lucas de Vries) | |
794 | - fix bug where |'list'| setting might be inappropriately set after dismissing | |
795 | Command-T | |
796 | - compatibility fix for different behaviour of "autoload" under Ruby 1.9.1 | |
797 | - avoid "highlight group not found" warning when run under a version of Vim | |
798 | that does not have syntax highlighting support | |
799 | - open in split when opening normally would fail due to |'hidden'| and | |
800 | |'modified'| values | |
801 | ||
802 | 0.2 (23 March 2010) | |
803 | ||
804 | - compatibility fixes for compilation under Ruby 1.9 series | |
805 | - compatibility fixes for compilation under Ruby 1.8.5 | |
806 | - compatibility fixes for Windows and other non-UNIX platforms | |
807 | - suppress "mapping already exists" message if <Leader>t mapping is already | |
808 | defined when plug-in is loaded | |
809 | - exclude paths based on |'wildignore'| setting rather than a hardcoded | |
810 | regular expression | |
811 | ||
812 | 0.1 (22 March 2010) | |
813 | ||
814 | - initial public release | |
815 | ||
816 | ------------------------------------------------------------------------------ | |
817 | vim:tw=78:ft=help: |