command-t 3.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9f43cff05f4b7fb5cee397afe9e655341ba56693
4
- data.tar.gz: 45effde9a057610772730347288bee7ce50b771c
3
+ metadata.gz: 5f8f6684e90becb50cff9ffc125b3dabdba1e865
4
+ data.tar.gz: 086215dadfe1318c66be2a9d62d2f497e51874da
5
5
  SHA512:
6
- metadata.gz: d0bc741a72d54ab985c0aa56a3c3087415a33a5381bef81b8fb3b881fb1d2aa295d8e8f3bd3519fa0bac9dc2131ae3c71cc0324c85d68f296f0bee84dc9c80ee
7
- data.tar.gz: faf635537a2f10b47cce6eb6f42f60d37e8aba84a7bbbaa9fd4f36f3ce52eaf6127ff42810899319fcf4481e77ebc147eff0eb7f3c0195ca43ac5ece051b40d3
6
+ metadata.gz: 6c914fa54248d28248b7f2c7eddfeeccd8f3e901da9566a9a7fa70693c62c72821ca21b67cbdd47a7ed017d6242627f94a95575594dfbf3877b7e888bab809b7
7
+ data.tar.gz: 575b135f1f7f3cf437e22d32921df4f04c8f6c09c8c911cd99fcfcfdf16d9e15f406d97ad6a81451b8d321b02f460327540961288564ce565af5dd6f477a3174
@@ -0,0 +1,16 @@
1
+ # Command-T
2
+
3
+ ![](https://raw.githubusercontent.com/wincent/command-t/media/command-t.gif)
4
+
5
+ Command-T is a Vim plug-in that provides an extremely fast "fuzzy" mechanism for opening files and buffers with a minimal number of keystrokes.
6
+
7
+ Files are selected by typing characters that appear in their paths, and are ranked by an algorithm which knows that characters that appear in certain locations (for example, immediately after a path separator) should be given more weight.
8
+
9
+ Files can be opened in the current window, or in splits or tabs. Many configuration options are provided.
10
+
11
+ Speed is one of the primary design goals, along with providing high-quality, intuitive match ordering. The hand-crafted matching algorithm, implemented in low-level C and combined with parallelized search, input debouncing, integration with Watchman and many other optimizations, mean that Command-T is the fastest fuzzy file finder bar none.
12
+
13
+ ---
14
+
15
+ For more information, see [the
16
+ documentation](https://github.com/wincent/command-t/blob/master/doc/command-t.txt).
data/Rakefile CHANGED
@@ -38,7 +38,7 @@ def err(str)
38
38
  puts "#{red}error: #{str}#{clear}"
39
39
  end
40
40
 
41
- task :default => :spec
41
+ task :default => :help
42
42
 
43
43
  desc 'Print help on preparing a release'
44
44
  task :help do
@@ -51,8 +51,9 @@ The general release sequence is:
51
51
  rake push
52
52
  rake upload:all
53
53
 
54
- Note: the upload task depends on the Mechanize gem; and may require a
55
- prior `gem install mechanize`
54
+ For a full list of available tasks:
55
+
56
+ rake -T
56
57
 
57
58
  END
58
59
  end
@@ -95,8 +96,18 @@ task :check_tag do
95
96
  end
96
97
  end
97
98
 
99
+ desc 'Verify that required dependencies are installed'
100
+ task :check_deps do
101
+ begin
102
+ require 'rubygems'
103
+ require 'mechanize'
104
+ rescue LoadError
105
+ warn 'mechanize not installed (`gem install mechanize` in order to upload)'
106
+ end
107
+ end
108
+
98
109
  desc 'Run checks prior to release'
99
- task :prerelease => ['make', 'spec', :archive, :check_tag]
110
+ task :prerelease => [:make, :spec, :archive, :check_tag, :check_deps]
100
111
 
101
112
  desc 'Prepare release notes from HISTORY'
102
113
  task :notes do
@@ -155,7 +166,7 @@ namespace :upload do
155
166
  end
156
167
 
157
168
  desc 'Upload current archive everywhere'
158
- task :all => [ :s3, :vim ]
169
+ task :all => [:s3, :vim]
159
170
  end
160
171
 
161
172
  desc 'Create the ruby gem package'
@@ -0,0 +1 @@
1
+ tags
@@ -1379,7 +1379,11 @@ POSSIBILITY OF SUCH DAMAGE.
1379
1379
 
1380
1380
  HISTORY *command-t-history*
1381
1381
 
1382
- 3.0 (19 January 2015)
1382
+ 3.0.1 (25 January 2016)
1383
+
1384
+ - restore compatiblity with Ruby 1.8.7.
1385
+
1386
+ 3.0 (19 January 2016)
1383
1387
 
1384
1388
  - change |g:CommandTIgnoreSpaces| default value to 1.
1385
1389
  - change |g:CommandTMatchWindowReverse| default value to 1.
@@ -0,0 +1,7 @@
1
+ /*.log
2
+ /*.o
3
+ /Makefile
4
+ /ext.*
5
+ /metadata.rb
6
+ !/ext.c
7
+ !/ext.h
@@ -262,7 +262,7 @@ module CommandT
262
262
  :limit => match_limit,
263
263
  :threads => CommandT::Util.processor_count,
264
264
  :ignore_spaces => VIM::get_bool('g:CommandTIgnoreSpaces', true),
265
- :recurse => VIM::get_bool('g:CommandTRecursiveMatch', true),
265
+ :recurse => VIM::get_bool('g:CommandTRecursiveMatch', true)
266
266
  )
267
267
  @match_window.matches = @matches
268
268
 
@@ -51,7 +51,7 @@ module CommandT
51
51
  :topline => view['topline'],
52
52
  :topfill => view['topfill'],
53
53
  :leftcol => view['leftcol'],
54
- :skipcol => view['skipcol'],
54
+ :skipcol => view['skipcol']
55
55
  )
56
56
 
57
57
  # When creating a split for the match window, move the cursor to the
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: command-t
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.0'
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Hurrell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-19 00:00:00.000000000 Z
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |2
14
14
  Command-T provides a fast, intuitive mechanism for opening files with a
@@ -21,57 +21,54 @@ extensions:
21
21
  - ruby/command-t/extconf.rb
22
22
  extra_rdoc_files: []
23
23
  files:
24
- - README.txt
24
+ - README.md
25
25
  - LICENSE
26
26
  - Gemfile
27
27
  - Rakefile
28
+ - doc/.gitignore
29
+ - doc/command-t.txt
30
+ - ruby/command-t.rb
31
+ - ruby/command-t/.gitignore
28
32
  - ruby/command-t/controller.rb
29
33
  - ruby/command-t/depend
30
- - ruby/command-t/ext.bundle
31
34
  - ruby/command-t/ext.c
32
35
  - ruby/command-t/ext.h
33
36
  - ruby/command-t/extconf.rb
37
+ - ruby/command-t/finder.rb
34
38
  - ruby/command-t/finder/buffer_finder.rb
35
39
  - ruby/command-t/finder/file_finder.rb
36
40
  - ruby/command-t/finder/jump_finder.rb
37
41
  - ruby/command-t/finder/mru_buffer_finder.rb
38
42
  - ruby/command-t/finder/tag_finder.rb
39
- - ruby/command-t/finder.rb
40
- - ruby/command-t/Makefile
41
43
  - ruby/command-t/match.c
42
44
  - ruby/command-t/match.h
43
45
  - ruby/command-t/match_window.rb
44
46
  - ruby/command-t/matcher.c
45
47
  - ruby/command-t/matcher.h
46
48
  - ruby/command-t/metadata/fallback.rb
47
- - ruby/command-t/metadata.rb
48
49
  - ruby/command-t/mru.rb
49
50
  - ruby/command-t/path_utilities.rb
50
51
  - ruby/command-t/prompt.rb
51
52
  - ruby/command-t/ruby_compat.h
53
+ - ruby/command-t/scanner.rb
52
54
  - ruby/command-t/scanner/buffer_scanner.rb
55
+ - ruby/command-t/scanner/file_scanner.rb
53
56
  - ruby/command-t/scanner/file_scanner/find_file_scanner.rb
54
57
  - ruby/command-t/scanner/file_scanner/git_file_scanner.rb
55
58
  - ruby/command-t/scanner/file_scanner/ruby_file_scanner.rb
56
59
  - ruby/command-t/scanner/file_scanner/watchman_file_scanner.rb
57
- - ruby/command-t/scanner/file_scanner.rb
58
60
  - ruby/command-t/scanner/jump_scanner.rb
59
61
  - ruby/command-t/scanner/mru_buffer_scanner.rb
60
62
  - ruby/command-t/scanner/tag_scanner.rb
61
- - ruby/command-t/scanner.rb
62
63
  - ruby/command-t/scm_utilities.rb
63
64
  - ruby/command-t/settings.rb
64
65
  - ruby/command-t/stub.rb
65
66
  - ruby/command-t/util.rb
67
+ - ruby/command-t/vim.rb
66
68
  - ruby/command-t/vim/screen.rb
67
69
  - ruby/command-t/vim/window.rb
68
- - ruby/command-t/vim.rb
69
70
  - ruby/command-t/watchman.c
70
71
  - ruby/command-t/watchman.h
71
- - ruby/command-t.rb
72
- - doc/command-t.txt
73
- - doc/tags
74
- - plugin/command-t.vim
75
72
  homepage: https://github.com/wincent/command-t
76
73
  licenses:
77
74
  - BSD
data/README.txt DELETED
@@ -1,1742 +0,0 @@
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
- 4. Trouble-shooting |command-t-trouble-shooting|
9
- 5. Usage |command-t-usage|
10
- 6. Commands |command-t-commands|
11
- 7. Mappings |command-t-mappings|
12
- 8. Options |command-t-options|
13
- 9. Integration and Extensibility |command-t-integration-and-extensibility|
14
- 10. FAQ |command-t-faq|
15
- 11. Tips |command-t-tips|
16
- 12. Authors |command-t-authors|
17
- 13. Development |command-t-development|
18
- 14. Website |command-t-website|
19
- 15. License |command-t-license|
20
- 16. History |command-t-history|
21
-
22
-
23
- INTRODUCTION *command-t-intro*
24
-
25
- The Command-T plug-in provides an extremely fast, intuitive mechanism for
26
- opening files and buffers with a minimal number of keystrokes. It's named
27
- "Command-T" because it is inspired by the "Go to File" window bound to
28
- Command-T in TextMate.
29
-
30
- Files are selected by typing characters that appear in their paths, and are
31
- ordered by an algorithm which knows that characters that appear in certain
32
- locations (for example, immediately after a path separator) should be given
33
- more weight.
34
-
35
- To search efficiently, especially in large projects, you should adopt a
36
- "path-centric" rather than a "filename-centric" mentality. That is you should
37
- think more about where the desired file is found rather than what it is
38
- called. This means narrowing your search down by including some characters
39
- from the upper path components rather than just entering characters from the
40
- filename itself.
41
-
42
-
43
- REQUIREMENTS *command-t-requirements*
44
-
45
- The plug-in requires Vim compiled with Ruby support, a compatible Ruby
46
- installation at the operating system level, and a C compiler to build
47
- the Ruby extension.
48
-
49
-
50
- 1. Vim compiled with Ruby support ~
51
-
52
- You can check for Ruby support by launching Vim with the --version switch:
53
-
54
- vim --version
55
-
56
- If "+ruby" appears in the version information then your version of Vim has
57
- Ruby support.
58
-
59
- Another way to check is to simply try using the :ruby command from within Vim
60
- itself:
61
-
62
- :ruby 1
63
-
64
- If your Vim lacks support you'll see an error message like this:
65
-
66
- E319: Sorry, the command is not available in this version
67
-
68
- The version of Vim distributed with OS X may not include Ruby support (for
69
- example, Snow Leopard, which was the current version of OS X when Command-T
70
- was first released, did not support Ruby in the system Vim, but the current
71
- version of OS X at the time of writing, Mavericks, does). All recent versions
72
- of MacVim come with Ruby support; it is available from:
73
-
74
- http://github.com/b4winckler/macvim/downloads
75
-
76
- For Windows users, the Vim 7.2 executable available from www.vim.org does
77
- include Ruby support, and is recommended over version 7.3 (which links against
78
- Ruby 1.9, but apparently has some bugs that need to be resolved).
79
-
80
-
81
- 2. Ruby ~
82
-
83
- In addition to having Ruby support in Vim, your system itself must have a
84
- compatible Ruby install. "Compatible" means the same version as Vim itself
85
- links against. If you use a different version then Command-T is unlikely
86
- to work (see |command-t-trouble-shooting| below).
87
-
88
- On OS X Snow Leopard, Lion and Mountain Lion, the system comes with Ruby 1.8.7
89
- and all recent versions of MacVim (the 7.2 snapshots and 7.3) are linked
90
- against it.
91
-
92
- On OS X Mavericks, the default system Ruby is 2.0, but MacVim continues to
93
- link against 1.8.7, as does the Apple-provided Vim. Ruby 1.8.7 is present on
94
- the system at:
95
-
96
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
97
-
98
- On OS X Yosemite, the default system Ruby is 2.0, and the Vim that comes with
99
- the system links against it.
100
-
101
- On Linux and similar platforms, the linked version of Ruby will depend on
102
- your distribution. You can usually find this out by examining the
103
- compilation and linking flags displayed by the |:version| command in Vim, and
104
- by looking at the output of:
105
-
106
- :ruby puts "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
107
-
108
- Or, for very old versions of Ruby which don't define `RUBY_PATCHLEVEL`:
109
-
110
- :ruby puts RUBY_VERSION
111
-
112
- Some Linux distributions package Ruby development tools separately from Ruby
113
- itself; if you're using such a system you may need to install the "ruby-dev",
114
- "ruby-devel" or similar package using your system's package manager in order
115
- to build Command-T.
116
-
117
- A suitable Ruby environment for Windows can be installed using the Ruby
118
- 1.8.7-p299 RubyInstaller available at:
119
-
120
- http://rubyinstaller.org/downloads/archives
121
-
122
- If using RubyInstaller be sure to download the installer executable, not the
123
- 7-zip archive. When installing mark the checkbox "Add Ruby executables to your
124
- PATH" so that Vim can find them.
125
-
126
-
127
- 3. C compiler ~
128
-
129
- Part of Command-T is implemented in C as a Ruby extension for speed, allowing
130
- it to work responsively even on directory hierarchies containing enormous
131
- numbers of files. As such, a C compiler is required in order to build the
132
- extension and complete the installation.
133
-
134
- On OS X, this can be obtained by installing the Xcode Tools from the App
135
- Store.
136
-
137
- On Windows, the RubyInstaller Development Kit can be used to conveniently
138
- install the necessary tool chain:
139
-
140
- http://rubyinstaller.org/downloads/archives
141
-
142
- At the time of writing, the appropriate development kit for use with Ruby
143
- 1.8.7 is DevKit-3.4.5r3-20091110.
144
-
145
- To use the Development Kit extract the archive contents to your C:\Ruby
146
- folder.
147
-
148
-
149
- INSTALLATION *command-t-installation*
150
-
151
- You install Command-T by obtaining the source files and building the C
152
- extension.
153
-
154
- The recommended way to get the source is by using a plug-in management system.
155
- There are several such systems available, and my preferred one is Pathogen
156
- (https://github.com/tpope/vim-pathogen) due to its simplicity and robustness.
157
-
158
- Other plug-in managers include:
159
-
160
- - Vundle: https://github.com/gmarik/Vundle.vim (see |command-t-vundle|)
161
- - NeoBundle: https://github.com/Shougo/neobundle.vim (see
162
- |command-t-neobundle|)
163
- - VAM: https://github.com/MarcWeber/vim-addon-manager (see |command-t-vam|)
164
-
165
- The following sections outline how to use each of these managers to download
166
- Command-T, and finally |command-t-compile| describes how to compile it.
167
-
168
- *command-t-pathogen*
169
- Obtaining the source using Pathogen ~
170
-
171
- Pathogen is a plugin that allows you to maintain plugin installations in
172
- separate, isolated subdirectories under the "bundle" directory in your
173
- |'runtimepath'|. The following examples assume that you already have
174
- Pathogen installed and configured, and that you are installing into
175
- `~/.vim/bundle`.
176
-
177
- If you manage your entire `~/.vim` folder using Git then you can add the
178
- Command-T repository as a submodule:
179
-
180
- cd ~/.vim
181
- git submodule add https://github.com/wincent/command-t.git bundle/command-t
182
- git submodule init
183
-
184
- Or if you just wish to do a simple clone instead of using submodules:
185
-
186
- cd ~/.vim
187
- git clone https://github.com/wincent/command-t.git bundle/command-t
188
-
189
- Once you have a local copy of the repository you can update it at any time
190
- with:
191
-
192
- cd ~/.vim/bundle/command-t
193
- git pull
194
-
195
- Or you can switch to a specific release with:
196
-
197
- cd ~/.vim/bundle/command-t
198
- git checkout 1.10
199
-
200
- To generate the help tags under Pathogen it is necessary to do so explicitly
201
- from inside Vim:
202
-
203
- :call pathogen#helptags()
204
-
205
- For more information about Pathogen, see:
206
-
207
- https://github.com/tpope/vim-pathogen
208
-
209
- *command-t-vundle*
210
- Obtaining the source using Vundle ~
211
-
212
- Anywhere between the calls to `vundle#begin` and `vundle#end` in your
213
- |.vimrc|, add a `Plugin` directive telling Vundle of your desire to use
214
- Command-T:
215
-
216
- call vundle#begin()
217
- Plugin 'wincent/command-t'
218
- call vundle#end()
219
-
220
- To actually install the plug-in run `:PluginInstall` from inside Vim. After
221
- this, you can proceed to compile Command-T (see |command-t-compile|).
222
-
223
- For more information about Vundle, see:
224
-
225
- https://github.com/gmarik/Vundle.vim
226
-
227
- *command-t-neobundle*
228
- Obtaining the source using NeoBundle ~
229
-
230
- Anywhere between the calls to `neobundle#begin` and `neobundle#end` in your
231
- |.vimrc|, add a `NeoBundle` directive telling NeoBundle of your desire to use
232
- Command-T:
233
-
234
- call neobundle#begin(expand('~/.vim/bundle/'))
235
- NeoBundle 'wincent/command-t'
236
- call neobundle#end()
237
-
238
- To actually install the plug-in run `:NeoBundleInstall` from inside Vim. After
239
- this, you can proceed to compile Command-T (see |command-t-compile|).
240
-
241
- For more information about NeoBundle, see:
242
-
243
- https://github.com/Shougo/neobundle.vim
244
- *command-t-vam*
245
- Obtaining the source using VAM ~
246
-
247
- After the call to `vam#ActivateAddons` in your |.vimrc|, add Command-T to
248
- the `VAMActivate` call:
249
-
250
- call vam#ActivateAddons([])
251
- VAMActivate github:wincent/command-t
252
-
253
- After VAM has downloaded Command-T, you can proceed to compile it (see
254
- |command-t-compile|).
255
-
256
- For more information about VAM, see:
257
-
258
- https://github.com/MarcWeber/vim-addon-manager
259
-
260
- *command-t-compile*
261
- Compiling Command-T ~
262
-
263
- The C extension must be built, which can be done from the shell. If you use a
264
- typical Pathogen, Vundle or NeoBundle set-up then the files were installed inside
265
- `~/.vim/bundle/command-t`. A typical VAM installation path might be
266
- `~/.vim/vim-addons/command-t`.
267
-
268
- Wherever the Command-T files were installed, you can build the extension by
269
- changing to the `ruby/command-t` subdirectory and running a couple of commands
270
- as follows:
271
-
272
- cd ~/.vim/bundle/command-t/ruby/command-t
273
- ruby extconf.rb
274
- make
275
-
276
- Note: If you are an RVM or rbenv user, you must build CommandT using the same
277
- version of Ruby that Vim itself is linked against. You can find out the
278
- version that Vim is linked against by issuing following command inside Vim:
279
-
280
- :ruby puts "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
281
-
282
- Or, for very old versions of Ruby which don't define `RUBY_PATCHLEVEL`:
283
-
284
- :ruby puts RUBY_VERSION
285
-
286
- You can either set your version of Ruby to the output of the above command and
287
- then build Command-T, or re-build Vim with a version of Ruby you prefer.
288
-
289
- To set the version of Ruby, issue one of the following commands before
290
- the `make` command:
291
-
292
- rvm use VERSION # where "VERSION" is the Ruby version Vim is linked against
293
- rbenv local VERSION
294
-
295
- If you decide to re-build Vim, for OS X, you can simply use Homebrew to
296
- uninstall and re-install Vim with following commands:
297
-
298
- brew uninstall vim
299
- brew install vim
300
-
301
- For more information about Homebrew, see:
302
-
303
- http://brew.sh
304
-
305
- Note: If you are on OS X Mavericks and compiling against MacVim, the default
306
- system Ruby is 2.0 but MacVim still links against the older 1.8.7 Ruby that is
307
- also bundled with the system; in this case the build command becomes:
308
-
309
- cd ~/.vim/bundle/command-t/ruby/command-t
310
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
311
- make
312
-
313
- Note: Make sure you compile targeting the same architecture Vim was built for.
314
- For instance, MacVim binaries are built for i386, but sometimes GCC compiles
315
- for x86_64. First you have to check the platform Vim was built for:
316
-
317
- vim --version
318
- ...
319
- Compilation: gcc ... -arch i386 ...
320
- ...
321
-
322
- and make sure you use the correct ARCHFLAGS during compilation:
323
-
324
- export ARCHFLAGS="-arch i386"
325
- make
326
-
327
- Note: If you are on Fedora 17+, you can install Command-T from the system
328
- repository with:
329
-
330
- su -c 'yum install vim-command-t'
331
-
332
- *command-t-appstream*
333
- AppStream Metadata ~
334
-
335
- When preparing a Command-T package for distribution on Linux using Gnome
336
- Software or another AppStream compatible application, there is a metafile in
337
- appstream directory.
338
-
339
- You can find more about AppStream specification at:
340
-
341
- http://www.freedesktop.org/software/appstream/docs/
342
-
343
-
344
- TROUBLE-SHOOTING *command-t-trouble-shooting*
345
-
346
- Most installation problems are caused by a mismatch between the version of
347
- Ruby on the host operating system, and the version of Ruby that Vim itself
348
- linked against at compile time. For example, if one is 32-bit and the other is
349
- 64-bit, or one is from the Ruby 1.9 series and the other is from the 1.8
350
- series, then the plug-in is not likely to work.
351
-
352
- On OS X, Apple tends to change the version of Ruby that comes with the system
353
- with each major release. See |command-t-requirements| above for details about
354
- specific versions. If you wish to use custom builds of Ruby or of MacVim then
355
- you will have to take extra care to ensure that the exact same Ruby
356
- environment is in effect when building Ruby, Vim and the Command-T extension.
357
-
358
- For Windows, the following combination is known to work:
359
-
360
- - Vim 7.2 from http://www.vim.org/download.php:
361
- ftp://ftp.vim.org/pub/vim/pc/gvim72.exe
362
- - Ruby 1.8.7-p299 from http://rubyinstaller.org/downloads/archives:
363
- http://rubyforge.org/frs/download.php/71492/rubyinstaller-1.8.7-p299.exe
364
- - DevKit 3.4.5r3-20091110 from http://rubyinstaller.org/downloads/archives:
365
- http://rubyforge.org/frs/download.php/66888/devkit-3.4.5r3-20091110.7z
366
-
367
- If a problem occurs the first thing you should do is inspect the output of:
368
-
369
- ruby extconf.rb
370
- make
371
-
372
- During the installation, and:
373
-
374
- vim --version
375
-
376
- And compare the compilation and linker flags that were passed to the
377
- extension and to Vim itself when they were built. If the Ruby-related
378
- flags or architecture flags are different then it is likely that something
379
- has changed in your Ruby environment and the extension may not work until
380
- you eliminate the discrepancy.
381
-
382
- From inside Vim, you can confirm the version of Ruby that it is using by
383
- issuing this command:
384
-
385
- :ruby puts "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
386
-
387
- Or, for very old versions of Ruby which don't define `RUBY_PATCHLEVEL`:
388
-
389
- :ruby puts RUBY_VERSION
390
-
391
- Additionally, beware that if you change your installation method for Command-T
392
- (for example, switching from one plugin manager to another) you should verify
393
- that you remove all of the files installed by the previous installation
394
- method; if you fail to do this, Vim may end up executing the old code,
395
- invalidating all your attempts to get Vim and Command-T using the same version
396
- of Ruby.
397
-
398
- Finally, if you end up changing Ruby versions or upgrading other parts of the
399
- system (the operating system itself, or Vim, for example), you may need to
400
- issue an additional "make clean" before re-building Command-T; this ensures
401
- that potentially incompatible build products are disposed of and re-created
402
- during the build:
403
-
404
- make clean
405
- ruby extconf.rb
406
- make
407
-
408
-
409
- USAGE *command-t-usage*
410
-
411
- Bring up the Command-T file window by typing:
412
-
413
- <Leader>t
414
-
415
- This mapping is set up automatically for you, provided you do not already have
416
- a mapping for <Leader>t or |:CommandT|. You can also bring up the file window
417
- by issuing the command:
418
-
419
- :CommandT
420
-
421
- A prompt will appear at the bottom of the screen along with a file window
422
- showing all of the files in the current project (the project directory is
423
- determined according to the value of the |g:CommandTTraverseSCM| setting,
424
- which defaults to the SCM root of the current file).
425
-
426
- You can pass in an optional path argument to |:CommandT| (relative to the
427
- current working directory (|:pwd|) or absolute):
428
-
429
- :CommandT ../path/to/other/files
430
-
431
- Type letters in the prompt to narrow down the selection, showing only the
432
- files whose paths contain those letters in the specified order. Letters do not
433
- need to appear consecutively in a path in order for it to be classified as a
434
- match.
435
-
436
- Once the desired file has been selected it can be opened by pressing <CR>.
437
- (By default files are opened in the current window, but there are other
438
- mappings that you can use to open in a vertical or horizontal split, or in
439
- a new tab.) Note that if you have |'nohidden'| set and there are unsaved
440
- changes in the current window when you press <CR> then opening in the current
441
- window would fail; in this case Command-T will open the file in a new split.
442
-
443
- The following mappings are active when the prompt has focus:
444
-
445
- <BS> delete the character to the left of the cursor
446
- <Del> delete the character at the cursor
447
- <Left> move the cursor one character to the left
448
- <C-h> move the cursor one character to the left
449
- <Right> move the cursor one character to the right
450
- <C-l> move the cursor one character to the right
451
- <C-a> move the cursor to the start (left)
452
- <C-e> move the cursor to the end (right)
453
- <C-u> clear the contents of the prompt
454
- <Tab> change focus to the file listing
455
-
456
- The following mappings are active when the file listing has focus:
457
-
458
- <Tab> change focus to the prompt
459
-
460
- The following mappings are active when either the prompt or the file listing
461
- has focus:
462
-
463
- <CR> open the selected file
464
- <C-CR> open the selected file in a new split window
465
- <C-s> open the selected file in a new split window
466
- <C-v> open the selected file in a new vertical split window
467
- <C-t> open the selected file in a new tab
468
- <C-j> select next file in the file listing
469
- <C-n> select next file in the file listing
470
- <Down> select next file in the file listing
471
- <C-k> select previous file in the file listing
472
- <C-p> select previous file in the file listing
473
- <Up> select previous file in the file listing
474
- <C-f> flush the cache (see |:CommandTFlush| for details)
475
- <C-q> place the current matches in the quickfix window
476
- <C-c> cancel (dismisses file listing)
477
-
478
- The following is also available on terminals which support it:
479
-
480
- <Esc> cancel (dismisses file listing)
481
-
482
- Note that the default mappings can be overriden by setting options in your
483
- |.vimrc| file (see the OPTIONS section for a full list of available options).
484
-
485
- In addition, when the file listing has focus, typing a character will cause
486
- the selection to jump to the first path which begins with that character.
487
- Typing multiple characters consecutively can be used to distinguish between
488
- paths which begin with the same prefix.
489
-
490
-
491
- COMMANDS *command-t-commands*
492
-
493
- *:CommandT*
494
- |:CommandT| Brings up the Command-T file window, starting in the
495
- current working directory as returned by the|:pwd|
496
- command.
497
-
498
- *:CommandTBuffer*
499
- |:CommandTBuffer| Brings up the Command-T buffer window.
500
- This works exactly like the standard file window,
501
- except that the selection is limited to files that
502
- you already have open in buffers.
503
-
504
- *:CommandTMRU*
505
- |:CommandTMRU| Brings up the Command-T buffer window, except that matches
506
- are shown in MRU (most recently used) order. If you prefer to
507
- use this over the normal buffer finder, I suggest overwriting
508
- the standard mapping with a command like:
509
-
510
- :nnoremap <silent> <leader>b :CommandTMRU<CR>
511
-
512
- Note that Command-T only starts recording most recently used
513
- buffers when you first use a Command-T command or mapping;
514
- this is an optimization to improve startup time.
515
-
516
- *:CommandTJumps*
517
- |:CommandTJump| Brings up the Command-T jumplist window.
518
- This works exactly like the standard file window,
519
- except that the selection is limited to files that
520
- you already have in the jumplist. Note that jumps
521
- can persist across Vim sessions (see Vim's |jumplist|
522
- documentation for more info).
523
-
524
- *:CommandTTag*
525
- |:CommandTTag| Brings up the Command-T window tags window, which can
526
- be used to select from the tags, if any, returned by
527
- Vim's |taglist()| function. See Vim's |tag| documentation
528
- for general info on tags.
529
-
530
- *:CommandTFlush*
531
- |:CommandTFlush| Instructs the plug-in to flush its path cache, causing
532
- the directory to be rescanned for new or deleted paths
533
- the next time the file window is shown (pressing <C-f> when
534
- a match listing is visible flushes the cache immediately; this
535
- mapping is configurable via the |g:CommandTRefreshMap|
536
- setting). In addition, all configuration settings are
537
- re-evaluated, causing any changes made to settings via the
538
- |:let| command to be picked up.
539
-
540
- *:CommandTLoad*
541
- |:CommandTLoad| Immediately loads the plug-in files, if they haven't been
542
- loaded already (normally, the files are loaded lazily the
543
- first time you run a Command-T command or use a Command-T
544
- mapping). This command may be useful for people wishing to
545
- extend Command-T by "monkey patching" its functionality.
546
-
547
-
548
- MAPPINGS *command-t-mappings*
549
-
550
- By default Command-T comes with only three mappings:
551
-
552
- *<Plug>(CommandT)*
553
-
554
- <Leader>t bring up the Command-T file window
555
-
556
- *<Plug>(CommandTBuffer)*
557
-
558
- <Leader>b bring up the Command-T buffer window
559
-
560
- *<Plug>(CommandTJump)*
561
-
562
- <Leader>j bring up the Command-T jumplist window
563
-
564
- Note that Command-T won't overwrite a pre-existing mapping so if you prefer
565
- to define different mappings use lines like these in your |.vimrc|:
566
-
567
- nnoremap <silent> <Leader>t <Plug>(CommandT)
568
- nnoremap <silent> <Leader>b <Plug>(CommandTBuffer)
569
- nnoremap <silent> <Leader>j <Plug>(CommandTJump)
570
-
571
- Replacing "<Leader>t", "<Leader>b" or "<Leader>j" with your mapping of choice.
572
-
573
- Note that in the case of MacVim you actually can map to Command-T (written
574
- as <D-t> in Vim) in your |.gvimrc| file if you first unmap the existing menu
575
- binding of Command-T to "New Tab":
576
-
577
- if has("gui_macvim")
578
- macmenu &File.New\ Tab key=<nop>
579
- map <D-t> <Plug>(CommandT)
580
- endif
581
-
582
- When the Command-T window is active a number of other additional mappings
583
- become available for doing things like moving between and selecting matches.
584
- These are fully described above in the USAGE section, and settings for
585
- overriding the mappings are listed below under OPTIONS.
586
-
587
-
588
- OPTIONS *command-t-options*
589
-
590
- A number of options may be set in your |.vimrc| to influence the behaviour of
591
- the plug-in. To set an option, you include a line like this in your |.vimrc|:
592
-
593
- let g:CommandTMaxFiles=20000
594
-
595
- To have Command-T pick up new settings immediately (that is, without having
596
- to restart Vim) you can issue the |:CommandTFlush| command after making
597
- changes via |:let|.
598
-
599
- Following is a list of all available options:
600
-
601
- *g:CommandTMaxFiles*
602
- |g:CommandTMaxFiles| number (default 30000)
603
-
604
- The maximum number of files that will be considered when scanning the
605
- current directory. Upon reaching this number scanning stops. This
606
- limit applies only to file listings and is ignored for buffer
607
- listings.
608
-
609
- *g:CommandTMaxDepth*
610
- |g:CommandTMaxDepth| number (default 15)
611
-
612
- The maximum depth (levels of recursion) to be explored when scanning the
613
- current directory. Any directories at levels beyond this depth will be
614
- skipped.
615
-
616
- *g:CommandTMaxCachedDirectories*
617
- |g:CommandTMaxCachedDirectories| number (default 1)
618
-
619
- The maximum number of directories whose contents should be cached when
620
- recursively scanning. With the default value of 1, each time you change
621
- directories the cache will be emptied and Command-T will have to
622
- rescan. Higher values will make Command-T hold more directories in the
623
- cache, bringing performance at the cost of memory usage. If set to 0,
624
- there is no limit on the number of cached directories.
625
-
626
- *g:CommandTMaxHeight*
627
- |g:CommandTMaxHeight| number (default: 15)
628
-
629
- The maximum height in lines the match window is allowed to expand to.
630
- If set to 0, the window will occupy as much of the available space as
631
- needed to show matching entries.
632
-
633
- *g:CommandTInputDebounce*
634
- |g:CommandTInputDebounce| number (default: 50)
635
-
636
- The number of milliseconds to wait before updating the match listing
637
- following a key-press. This can be used to avoid wasteful recomputation
638
- when making a rapid series of key-presses in a directory with many tens
639
- (or hundreds) of thousands of files.
640
-
641
- *g:CommandTFileScanner*
642
- |g:CommandTFileScanner| string (default: 'ruby')
643
-
644
- The underlying scanner implementation that should be used to explore the
645
- filesystem. Possible values are:
646
-
647
- - "ruby": uses built-in Ruby and should work everywhere, albeit slowly
648
- on large (many tens of thousands of files) hierarchies.
649
-
650
- - "find": uses the command-line tool of the same name, which can be much
651
- faster on large projects because it is written in pure C, but may not
652
- work on systems without the tool or with an incompatible version of
653
- the tool.
654
-
655
- - "git": uses `git ls-files` to quickly produce a list of files; when
656
- Git isn't available or the path being searched is not inside a Git
657
- repository falls back to "find".
658
-
659
- - "watchman": uses Watchman (https://github.com/facebook/watchman) if
660
- available; otherwise falls back to "find". Note that this scanner is
661
- intended for use with very large hierarchies (hundreds of thousands of
662
- files) and so the task of deciding which files should be included is
663
- entirely delegated to Watchman; this means that settings which
664
- Command-T would usually consult, such as 'wildignore' and
665
- |g:CommandTScanDotDirectories| are ignored.
666
-
667
- *g:CommandTTraverseSCM*
668
- |g:CommandTTraverseSCM| string (default: 'file')
669
-
670
- Instructs Command-T how to choose a root path when opening a file finder
671
- without an explicit path argument. Possible values are:
672
-
673
- - "file": starting from the file currently being edited, traverse
674
- upwards through the filesystem hierarchy until you find an SCM root
675
- (as indicated by the presence of a ".git", ".hg" or similar directory)
676
- and use that as the base path. If no such root is found, fall back to
677
- using Vim's present working directory as a root. The list of SCM
678
- directories that Command-T uses to detect an SCM root can be
679
- customized with the |g:CommandTSCMDirectories| option.
680
-
681
- - "dir": traverse upwards looking for an SCM root just like the "file"
682
- setting (above), but instead of starting from the file currently being
683
- edited, start from Vim's present working directory instead.
684
-
685
- - "pwd": use Vim's present working directory as a root (ie. attempt no
686
- traversal).
687
-
688
- *g:CommandTGitScanSubmodules*
689
- |g:CommandTGitScanSubmodules| boolean (default: 0)
690
-
691
- If set to 1, Command-T will scan submodules (recursively) when using the
692
- "git" file scanner (see |g:CommandTFileScanner|).
693
-
694
-
695
- *g:CommandTSCMDirectories*
696
- |g:CommandTSCMDirectories| string (default: '.git,.hg,.svn,.bzr,_darcs')
697
-
698
- The marker directories that Command-T will use to identify SCM roots
699
- during traversal (see |g:CommandTTraverseSCM| above).
700
-
701
-
702
- *g:CommandTMinHeight*
703
- |g:CommandTMinHeight| number (default: 0)
704
-
705
- The minimum height in lines the match window is allowed to shrink to.
706
- If set to 0, will default to a single line. If set above the max height,
707
- will default to |g:CommandTMaxHeight|.
708
-
709
- *g:CommandTAlwaysShowDotFiles*
710
- |g:CommandTAlwaysShowDotFiles| boolean (default: 0)
711
-
712
- When showing the file listing Command-T will by default show dot-files
713
- only if the entered search string contains a dot that could cause a
714
- dot-file to match. When set to a non-zero value, this setting instructs
715
- Command-T to always include matching dot-files in the match list
716
- regardless of whether the search string contains a dot. See also
717
- |g:CommandTNeverShowDotFiles|. Note that this setting only influences
718
- the file listing; the buffer listing treats dot-files like any other
719
- file.
720
-
721
- *g:CommandTNeverShowDotFiles*
722
- |g:CommandTNeverShowDotFiles| boolean (default: 0)
723
-
724
- In the file listing, Command-T will by default show dot-files if the
725
- entered search string contains a dot that could cause a dot-file to
726
- match. When set to a non-zero value, this setting instructs Command-T to
727
- never show dot-files under any circumstances. Note that it is
728
- contradictory to set both this setting and
729
- |g:CommandTAlwaysShowDotFiles| to true, and if you do so Vim will suffer
730
- from headaches, nervous twitches, and sudden mood swings. This setting
731
- has no effect in buffer listings, where dot files are treated like any
732
- other file.
733
-
734
- *g:CommandTScanDotDirectories*
735
- |g:CommandTScanDotDirectories| boolean (default: 0)
736
-
737
- Normally Command-T will not recurse into "dot-directories" (directories
738
- whose names begin with a dot) while performing its initial scan. Set
739
- this setting to a non-zero value to override this behavior and recurse.
740
- Note that this setting is completely independent of the
741
- |g:CommandTAlwaysShowDotFiles| and |g:CommandTNeverShowDotFiles|
742
- settings; those apply only to the selection and display of matches
743
- (after scanning has been performed), whereas
744
- |g:CommandTScanDotDirectories| affects the behaviour at scan-time.
745
-
746
- Note also that even with this setting off you can still use Command-T to
747
- open files inside a "dot-directory" such as `~/.vim`, but you have to use
748
- the |:cd| command to change into that directory first. For example:
749
-
750
- :cd ~/.vim
751
- :CommandT
752
-
753
- *g:CommandTMatchWindowAtTop*
754
- |g:CommandTMatchWindowAtTop| boolean (default: 0)
755
-
756
- When this setting is off (the default) the match window will appear at
757
- the bottom so as to keep it near to the prompt. Turning it on causes the
758
- match window to appear at the top instead. This may be preferable if you
759
- if you have |g:CommandTMatchWindowReverse| set to 0 and want the best
760
- match (usually the first one) to appear in a fixed location on the
761
- screen rather than moving as the number of matches changes during
762
- typing.
763
-
764
- *g:CommandTMatchWindowReverse*
765
- |g:CommandTMatchWindowReverse| boolean (default: 1)
766
-
767
- When this setting is on (the default), matches will be shown in reverse
768
- order, with the best match at the bottom (ie. closest to the prompt).
769
- The initially selected match will be the bottom-most, which is
770
- preferable if you want the best match to appear in a fixed location on
771
- the screen (independently of the number of results). When set to 0,
772
- matches will appear from top to bottom with the topmost being selected.
773
-
774
- *g:CommandTTagIncludeFilenames*
775
- |g:CommandTTagIncludeFilenames| boolean (default: 0)
776
-
777
- When this setting is off (the default) the matches in the |:CommandTTag|
778
- listing do not include filenames.
779
-
780
- *g:CommandTCursorColor*
781
- string (default: 'Underlined')
782
- |g:CommandTCursorColor|
783
-
784
- Specifies the |:highlight| color that will be applied to the cursor in
785
- the Command-T prompt.
786
-
787
- *g:CommandTHighlightColor*
788
- |g:CommandTHighlightColor| string (default: 'PmenuSel')
789
-
790
- Specifies the |:highlight| color that will be used to show the currently
791
- selected item in the match listing window.
792
-
793
- *g:CommandTWildIgnore*
794
- |g:CommandTWildIgnore| string (default: none)
795
-
796
- Optionally override Vim's global |'wildignore'| setting during Command-T
797
- searches. If you wish to supplement rather than replace the global
798
- setting, you can use a syntax like:
799
-
800
- let g:CommandTWildIgnore=&wildignore . ",**/bower_components/*"
801
-
802
- See also |command-t-wildignore|.
803
-
804
- *g:CommandTIgnoreCase*
805
- |g:CommandTIgnoreCase| boolean (default: 1)
806
-
807
- Ignore case when searching. Defaults to on, which means that searching
808
- is case-insensitive by default. See also |g:CommandTSmartCase|.
809
-
810
- *g:CommandTRecursiveMatch*
811
- |g:CommandTRecursiveMatch| boolean (default: 1)
812
-
813
- Use this to downgrade Command-T's match-scoring algorithm to its older,
814
- non-recursive form. Doing so may improve the responsiveness of the match
815
- listing, but at the cost of slightly less precision in the ranking of
816
- results.
817
-
818
- *g:CommandTSmartCase*
819
- |g:CommandTSmartCase| boolean (default: none)
820
-
821
- Override the |g:CommandTIgnoreCase| setting if the search pattern
822
- contains uppercase characters, forcing the match to be case-sensitive.
823
- If unset (which is the default), the value of the Vim |'smartcase'|
824
- setting will be used instead.
825
-
826
- *g:CommandTAcceptSelectionCommand*
827
- |g:CommandTAcceptSelectionCommand| string (default: 'e')
828
-
829
- The Vim command that will be used to open a selection from the match
830
- listing (via |g:CommandTAcceptSelectionMap|).
831
-
832
- For an example of how this can be used to apply arbitrarily complex
833
- logic, see the example in |g:CommandTAcceptSelectionTabCommand| below.
834
-
835
- *g:CommandTAcceptSelectionTabCommand*
836
- |g:CommandTAcceptSelectionTabCommand| string (default: 'tabe')
837
-
838
- The Vim command that will be used to open a selection from the match
839
- listing in a new tab (via |g:CommandTAcceptSelectionSplitMap|).
840
-
841
- For example, this can be used to switch to an existing buffer (rather
842
- than opening a duplicate buffer with the selection in a new tab) with
843
- configuration such as the following:
844
-
845
- set switchbuf=usetab
846
-
847
- function! GotoOrOpen(...)
848
- for file in a:000
849
- if bufwinnr(file) != -1
850
- exec "sb " . file
851
- else
852
- exec "tabe " . file
853
- endif
854
- endfor
855
- endfunction
856
-
857
- command! -nargs=+ GotoOrOpen call GotoOrOpen("<args>")
858
-
859
- let g:CommandTAcceptSelectionTabCommand = 'GotoOrOpen'
860
-
861
- For a slightly more comprehensive example, see: https://wt.pe/e
862
-
863
- *g:CommandTAcceptSelectionSplitCommand*
864
- |g:CommandTAcceptSelectionSplitCommand| string (default: 'sp')
865
-
866
- The Vim command that will be used to open a selection from the match
867
- listing in a split (via |g:CommandTAcceptSelectionVSplitMap|).
868
-
869
- For an example of how this can be used to apply arbitrarily complex
870
- logic, see the example in |g:CommandTAcceptSelectionTabCommand| above.
871
-
872
- *g:CommandTAcceptSelectionVsplitCommand*
873
- string (default: 'vs')
874
- |g:CommandTAcceptSelectionVSplitCommand|
875
-
876
- The Vim command that will be used to open a selection from the match
877
- listing in a vertical split (via |g:CommandTAcceptSelectionVSplitMap|).
878
-
879
- For an example of how this can be used to apply arbitrarily complex
880
- logic, see the example in |g:CommandTAcceptSelectionTabCommand| above.
881
-
882
- *g:CommandTEncoding*
883
- |g:CommandTEncoding| string (default: none)
884
-
885
- In most environments Command-T will work just fine using the character
886
- encoding settings from your local environment. This setting can be used
887
- to force Command-T to use a specific encoding, such as "UTF-8", if your
888
- environment ends up defaulting to an undesired encoding, such as
889
- "ASCII-8BIT".
890
-
891
- *g:CommandTIgnoreSpaces*
892
- |g:CommandTIgnoreSpaces| boolean (default: 1)
893
-
894
- When typing a search term into Command-T, ignore spaces. When set to 0,
895
- Command-T will search for literal spaces inside file names.
896
-
897
- As well as the basic options listed above, there are a number of settings that
898
- can be used to override the default key mappings used by Command-T. For
899
- example, to set <C-x> as the mapping for cancelling (dismissing) the Command-T
900
- window, you would add the following to your |.vimrc|:
901
-
902
- let g:CommandTCancelMap='<C-x>'
903
-
904
- Multiple, alternative mappings may be specified using list syntax:
905
-
906
- let g:CommandTCancelMap=['<C-x>', '<C-c>']
907
-
908
- Following is a list of all map settings and their defaults:
909
-
910
- Setting Default mapping(s)
911
-
912
- *g:CommandTBackspaceMap*
913
- |g:CommandTBackspaceMap| <BS>
914
-
915
- *g:CommandTDeleteMap*
916
- |g:CommandTDeleteMap| <Del>
917
-
918
- *g:CommandTAcceptSelectionMap*
919
- |g:CommandTAcceptSelectionMap| <CR>
920
-
921
- *g:CommandTAcceptSelectionSplitMap*
922
- |g:CommandTAcceptSelectionSplitMap| <C-CR>
923
- <C-s>
924
-
925
- *g:CommandTAcceptSelectionTabMap*
926
- |g:CommandTAcceptSelectionTabMap| <C-t>
927
-
928
- *g:CommandTAcceptSelectionVSplitMap*
929
- |g:CommandTAcceptSelectionVSplitMap| <C-v>
930
-
931
- *g:CommandTToggleFocusMap*
932
- |g:CommandTToggleFocusMap| <Tab>
933
-
934
- *g:CommandTCancelMap*
935
- |g:CommandTCancelMap| <C-c>
936
- <Esc> (not on all terminals)
937
-
938
- *g:CommandTSelectNextMap*
939
- |g:CommandTSelectNextMap| <C-n>
940
- <C-j>
941
- <Down>
942
-
943
- *g:CommandTSelectPrevMap*
944
- |g:CommandTSelectPrevMap| <C-p>
945
- <C-k>
946
- <Up>
947
-
948
- *g:CommandTClearMap*
949
- |g:CommandTClearMap| <C-u>
950
-
951
- *g:CommandTClearPrevWordMap*
952
- |g:CommandTClearPrevWordMap| <C-w>
953
-
954
- *g:CommandTRefreshMap*
955
- |g:CommandTRefreshMap| <C-f>
956
-
957
- *g:CommandTQuickfixMap*
958
- |g:CommandTQuickfixMap| <C-q>
959
-
960
- *g:CommandTCursorLeftMap*
961
- |g:CommandTCursorLeftMap| <Left>
962
- <C-h>
963
-
964
- *g:CommandTCursorRightMap*
965
- |g:CommandTCursorRightMap| <Right>
966
- <C-l>
967
-
968
- *g:CommandTCursorEndMap*
969
- |g:CommandTCursorEndMap| <C-e>
970
-
971
- *g:CommandTCursorStartMap*
972
- |g:CommandTCursorStartMap| <C-a>
973
-
974
- In addition to the options provided by Command-T itself, some of Vim's own
975
- settings can be used to control behavior:
976
-
977
- *command-t-wildignore*
978
- |'wildignore'| string (default: '')
979
-
980
- Vim's |'wildignore'| setting is used to determine which files should be
981
- excluded from listings. This is a comma-separated list of glob patterns.
982
- It defaults to the empty string, but common settings include "*.o,*.obj"
983
- (to exclude object files) or "**/.git/*,**/.svn/*" (to exclude SCM
984
- metadata directories). For example:
985
-
986
- :set wildignore+=*.o,*.obj
987
-
988
- A pattern such as "vendor/rails/**" would exclude all files and
989
- subdirectories inside the "vendor/rails" directory (relative to
990
- directory Command-T starts in).
991
-
992
- See the |'wildignore'| documentation for more information.
993
-
994
- If you want to influence Command-T's file exclusion behavior without
995
- changing your global |'wildignore'| setting, you can use the
996
- |g:CommandTWildIgnore| setting to apply an override that takes effect
997
- only during Command-T searches.
998
-
999
- Note that there are some differences among file scanners
1000
- (see |g:CommandTFileScanner|) with respect to 'wildignore' handling:
1001
-
1002
- - The default "ruby" scanner explores the filesystem recursively using a
1003
- depth-first search, and any directory (or subdirectory) which matches
1004
- the 'wildignore' pattern is not explored. So, if your 'wildignore'
1005
- contains "node_modules" then that entire sub-hierarchy will be
1006
- ignored. Additionally, wildcard patterns like "node_modules/**" or
1007
- "**/node_modules/*" will cause the entire sub-hierarchy to be ignored.
1008
-
1009
- - The "git" and "find" scanners apply 'wildignore' filtering only after
1010
- completing their scans. Filtering only applies to files and not
1011
- directories. This means that in the "node_modules" example case, the
1012
- "node_modules" directory is not considered itself, and when we examine
1013
- a file like "node_modules/foo/bar" the "node_modules" pattern does
1014
- not match it (because "bar" does not match it). To exclude
1015
- any "node_modules" directory anywhere in the hierarchy and all of its
1016
- descendants we must use a pattern like "**/node_modules/*". To do this
1017
- only for a top-level "node_modules", use "node_modules/**".
1018
-
1019
- - The "watchman" scanner is intended for use with massive hierarchies
1020
- where speed is of the utmost import, so it doesn't consult
1021
- 'wildignore' at all.
1022
-
1023
-
1024
- INTEGRATION AND EXTENSIBILITY *command-t-integration-and-extensibility*
1025
-
1026
- For the purposes of integrating with other plug-ins, or otherwise extending
1027
- Command-T's functionality, a number of hooks and features are provided. Note
1028
- that making use of any of these extension points is considered to be advanced
1029
- configuration, and the more invasive the modifications, the greater the risk
1030
- that they will interact poorly with future versions of Command-T. Proceed with
1031
- caution.
1032
-
1033
- *command-t-filetype*
1034
- command-t filetype ~
1035
-
1036
- Command-T displays its match listing using a special Vim buffer with a
1037
- filetype of `command-t`. This can be used in |ftplugins| or elsewhere to set up
1038
- an |autocommand| or apply custom configuration.
1039
-
1040
- For example of an |ftplugin| that sets a custom 'statusline' for the
1041
- Command-T match listing buffer, see: https://wt.pe/f
1042
-
1043
- *command-t-load*
1044
- *commandt#Load*
1045
- Eager loading with commandt#CommandTLoad ~
1046
-
1047
- In order to minimize Vim startup time, most of Command-T's functionality is
1048
- only loaded on first use, via Vim's |autoload| mechanism.
1049
-
1050
- If you should wish to monkey patch some Command-T functionality, the
1051
- `commandt#Load()` function (also exposed via the |:CommandTLoad| command) is
1052
- provided as a means of eager-loading Command-T's code, so that you can go
1053
- ahead and patch it.
1054
-
1055
- *commandt#ActiveFinder*
1056
- *commandt#CheckBuffer*
1057
- *commandt#Path*
1058
- Statusline hooks ~
1059
-
1060
- A number of methods are provided that may be useful for creating a
1061
- context-sensitive 'statusline'.
1062
-
1063
- - `commandt#ActiveFinder()`: Returns the class name of the currently
1064
- active finder.
1065
- - `commandt#Path()`: Returns the path that Command-T is currently
1066
- searching.
1067
- - `commandt#CheckBuffer()`: Takes a buffer number and returns true if
1068
- it is the Command-T match listing buffer.
1069
-
1070
-
1071
- FAQ *command-t-faq*
1072
-
1073
- Why does my build fail with "unknown argument -multiply_definedsuppress"? ~
1074
-
1075
- You may see this on OS X Mavericks when building with the Clang compiler
1076
- against the system Ruby. This is an unfortunate Apple bug that breaks
1077
- compilation of many Ruby gems with native extensions on Mavericks. It has been
1078
- worked around in the upstream Ruby version, but won't be fixed in OS X until
1079
- Apple updates their supplied version of Ruby (most likely this won't be until
1080
- the next major release):
1081
-
1082
- https://bugs.ruby-lang.org/issues/9624
1083
-
1084
- Workarounds include building your own Ruby (and then your own Vim and
1085
- Command-T), or more simply, building with the following `ARCHFLAGS` set:
1086
-
1087
- ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future ruby extconf.rb
1088
- make
1089
-
1090
- Why can't I open in a split with <C-CR> and <C-s> in the terminal? ~
1091
-
1092
- It's likely that <C-CR> won't work in most terminals, because the keycode that
1093
- is sent to processes running inside them is identical to <CR>; when you type
1094
- <C-CR>, terminal Vim literally "sees" <CR>. Unfortunately, there is no
1095
- workaround for this.
1096
-
1097
- If you find that <C-s> also doesn't work the most likely explanation is that
1098
- XON/XOFF flow control is enabled; this is the default in many environments.
1099
- This means that when you press <C-s> all input to the terminal is suspended
1100
- until you release it by hitting <C-q>. While input is suspended you may think
1101
- your terminal has frozen, but it hasn't.
1102
-
1103
- To disable flow control, add the following to your `.zshrc` or
1104
- `.bash_profile`:
1105
-
1106
- stty -ixon
1107
-
1108
- See the `stty` man page for more details.
1109
-
1110
- Why doesn't the Escape key close the match listing in terminal Vim? ~
1111
-
1112
- In some terminals such as xterm the Escape key misbehaves, so Command-T
1113
- doesn't set up a mapping for it. If you want to try using the escape key
1114
- anyway, you can add something like the following to your |.vimrc| file:
1115
-
1116
- if &term =~ "xterm" || &term =~ "screen"
1117
- let g:CommandTCancelMap = ['<ESC>', '<C-c>']
1118
- endif
1119
-
1120
- This configuration has worked for me with recent versions of Vim on multiple
1121
- platforms (OS X, CentOS etc).
1122
-
1123
-
1124
- TIPS *command-t-tips*
1125
-
1126
- Working with very large repositories ~
1127
-
1128
- One of the primary motivations for writing Command-T was to get fast, robust
1129
- high-quality matches even on large hierarchies. The larger the hierarchy, the
1130
- more important having good file navigation becomes. This is why Command-T's
1131
- performance-critical sections are written in C. This requires a compilation
1132
- step and makes Command-T harder to install than similar plug-ins which are
1133
- written in pure Vimscript, and can be a disincentive against use. This is a
1134
- conscious trade-off; the goal isn't to have as many users as possible, but
1135
- rather to provide the best performance at the highest quality.
1136
-
1137
- The speed of the core is high enough that Command-T can afford to burn a bunch
1138
- of extra cycles -- using its recursive matching algorithm -- looking for a
1139
- higher-quality, more intuitive ranking of search results. Again, the larger
1140
- the hierarchy, the more important the quality of result ranking becomes.
1141
-
1142
- Nevertheless, for extremely large hierarchies (of the order of 500,000 files)
1143
- some tuning is required in order to get useful and usable performance levels.
1144
- Here are some useful example settings:
1145
-
1146
- let g:CommandTMaxHeight = 30
1147
-
1148
- You want the match listing window to be large enough that you can get useful
1149
- feedback about how your search query is going; in large hierarchies there may
1150
- be many, many matches for a given query. At the same time, you don't want Vim
1151
- wasting valuable cycles repainting a large portion of the screen area,
1152
- especially on a large display. Setting the limit to 30 or similar is a
1153
- reasonable compromise.
1154
-
1155
- let g:CommandTMaxFiles = 500000
1156
-
1157
- The default limit of 30,000 files prevents Command-T from "seeing" many of the
1158
- files in a large directory hierarchy so you need to increase this limit.
1159
-
1160
- let g:CommandTInputDebounce = 200
1161
-
1162
- Wait for 200ms of keyboard inactivity before computing search results. For
1163
- example, if you are enter "foobar" quickly (ie. within 1 second), there is
1164
- little sense in fetching the results for "f", "fo", "foo", "foob", "fooba" and
1165
- finally "foobar". Instead, we can just fetch the results for "foobar". This
1166
- setting trades off some immediate responsiveness at the micro level for
1167
- better performance (real and perceived) and a better search experience
1168
- overall.
1169
-
1170
- let g:CommandTFileScanner = 'watchman'
1171
-
1172
- On a large hierarchy with of the order of 500,000 files, scanning a directory
1173
- tree with a tool like the `find` executable may take literally minutes with a
1174
- cold cache. Once the cache is warm, the same `find` run may take only a second
1175
- or two. Command-T provides a "find" scanner to leverage this performance, but
1176
- there is still massive overhead in passing the results through Vim internal
1177
- functions that apply 'wildignore' settings and such, so for truly immense
1178
- repos the "watchman" scanner is the tool of choice.
1179
-
1180
- This scanner delegates the task of finding files to Facebook's `watchman` tool
1181
- (https://github.com/facebook/watchman), which can return results for a 500,000
1182
- file hierarchy within about a second.
1183
-
1184
- Note that Watchman has a range of configuration options that can be applied by
1185
- files such as `/etc/watchman.json` or per-direcory `.watchmanconfig` files and
1186
- which may affect how Command-T works. For example, if your configuration has a
1187
- `root_restrict_files` setting that makes Watchman only work with roots that
1188
- look like Git or Mercurial repos, then Command-T will fall back to using the
1189
- "find" scanner any time you invoke it on a non-repo directory. For
1190
- simplicity's sake, it is probably a good idea to use Vim and Command-T
1191
- anchored at the root level of your repository in any case.
1192
-
1193
- let g:CommandTMaxCachedDirectories = 10
1194
-
1195
- Command-T will internally cache up to 10 different directories, so even if you
1196
- |cd| repeatedly, it should only need to scan each directory once.
1197
-
1198
- It's advisable to keep a long-running Vim instance in place and let it cache
1199
- the directory listings rather than repeatedly closing and re-opening Vim in
1200
- order to edit every file. On those occasions when you do need to flush the
1201
- cache (ie. with |CommandTFlush| or <C-f> in the match listing window), use of
1202
- the Watchman scanner should make the delay barely noticeable.
1203
-
1204
- let g:CommandTSmartCase = 1
1205
-
1206
- Makes Command-T perform case-sensitive matching whenever the search pattern
1207
- includes an uppercase letter. This allows you to narrow the search results
1208
- listing with fewer keystrokes. See also |g:CommandTIgnoreCase|.
1209
-
1210
- let g:CommandTRecursiveMatch = 0
1211
-
1212
- This one is a little more subjective. You may want to turn off Command-T's
1213
- recursive match-scoring algorithm to save some cycles. This finds matches more
1214
- quickly at the possible cost of ranking them slightly less precisely. Whether
1215
- applying this setting helps or hurts you in a very large repo is probably
1216
- repo-dependent.
1217
-
1218
- As noted in the introduction, Command-T works best when you adopt a
1219
- "path-centric" mentality. This is especially true on very large hierarchies.
1220
- For example, if you're looking for a file at:
1221
-
1222
- lib/third-party/adapters/restful-services/foobar/foobar-manager.js
1223
-
1224
- you'll be able to narrow your search results down more narrowly if you search
1225
- with a query like "librestfoofooman" than "foobar-manager.js". This evidently
1226
- requires that you know where the file you're wanting to open exists, but
1227
- again, this is a concious design decision: Command-T is made to enable people
1228
- who know what they want to open and where it is to open it as quickly as
1229
- possible; other tools such as NERDTree exist for visually exploring an unknown
1230
- hierarchy.
1231
-
1232
- Over time, you will get a feel for how economical you can afford to be with
1233
- your search queries in a given repo. In the example above, if "foo" is not a
1234
- very common pattern in your hierarchy, then you may find that you can find
1235
- what you need with a very concise query such as "foomanjs". With time, this
1236
- kind of ongoing calibration will come quite naturally.
1237
-
1238
- Finally, it is important to be on a relatively recent version of Command-T to
1239
- fully benefit from the available performance enhancements:
1240
-
1241
- - version 2.0 (December 2015) added the |g:CommandTRecursiveMatch| option
1242
- - version 1.10 (July 2014) added the |g:CommandTIgnoreCase| and
1243
- |g:CommandTSmartCase| options
1244
- - version 1.9 (May 2014) tweaked memoization algorithm for a 10% speed boost
1245
- - version 1.8 (March 2014) sped up the Watchman file scanner by switching its
1246
- communication from the JSON to the binary Watchman protocol
1247
- - version 1.7 (February 2014) added the |g:CommandTInputDebounce| and
1248
- |g:CommandTFileScanner| settings, along with support for the Watchman file
1249
- scanner
1250
- - version 1.6 (December 2013) added parallelized search
1251
- - version 1.5 (September 2013) added memoization to the matching algorithm,
1252
- improving general performance on large hierarchies, but delivering
1253
- spectacular gains on hierarchies with "pathological" characteristics that
1254
- lead the algorithm to exhibit degenerate behavior
1255
-
1256
- AUTHORS *command-t-authors*
1257
-
1258
- Command-T is written and maintained by Greg Hurrell <greg@hurrell.net>.
1259
- Other contributors that have submitted patches include (in alphabetical
1260
- order):
1261
-
1262
- Abhinav Gupta Nikolai Aleksandrovich Pavlov
1263
- Aleksandrs Ļedovskis Noon Silk
1264
- Andy Waite Ole Petter Bang
1265
- Anthony Panozzo Patrick Hayes
1266
- Artem Nezvigin Paul Jolly
1267
- Ben Boeckel Pavel Sergeev
1268
- Ben Osheroff Rainux Luo
1269
- Daniel Hahler Richard Feldman
1270
- David Szotten Roland Puntaier
1271
- Emily Strickland Ross Lagerwall
1272
- Felix Tjandrawibawa Scott Bronson
1273
- Gary Bernhardt Seth Fowler
1274
- Ivan Ukhov Sherzod Gapirov
1275
- Jacek Wysocki Shlomi Fish
1276
- Jeff Kreeftmeijer Steven Moazami
1277
- Jerome Castaneda Sung Pae
1278
- KJ Tsanaktsidis Thomas Pelletier
1279
- Kevin Webster Ton van den Heuvel
1280
- Lucas de Vries Victor Hugo Borja
1281
- Marcus Brito Vlad Seghete
1282
- Marian Schubert Vít Ondruch
1283
- Matthew Todd Woody Peterson
1284
- Mike Lundy Yan Pritzker
1285
- Nadav Samet Yiding Jia
1286
- Nate Kane Zak Johnson
1287
- Nicholas Alpi
1288
-
1289
- As this was the first Vim plug-in I had ever written I was heavily influenced
1290
- by the design of the LustyExplorer plug-in by Stephen Bach, which I understand
1291
- was one of the largest Ruby-based Vim plug-ins at the time.
1292
-
1293
- While the Command-T codebase doesn't contain any code directly copied from
1294
- LustyExplorer, I did use it as a reference for answers to basic questions (like
1295
- "How do you do 'X' in a Ruby-based Vim plug-in?"), and also copied some basic
1296
- architectural decisions (like the division of the code into Prompt, Settings
1297
- and MatchWindow classes).
1298
-
1299
- LustyExplorer is available from:
1300
-
1301
- http://www.vim.org/scripts/script.php?script_id=1890
1302
-
1303
-
1304
- DEVELOPMENT *command-t-development*
1305
-
1306
- Development in progress can be inspected at:
1307
-
1308
- https://github.com/wincent/command-t
1309
-
1310
- the clone URL for which is:
1311
-
1312
- https://github.com/wincent/command-t.git
1313
-
1314
- Mirrors exist on GitLab and BitBucket, and are automatically updated once per
1315
- hour:
1316
-
1317
- https://gitlab.com/wincent/command-t
1318
- https://bitbucket.org/ghurrell/command-t
1319
-
1320
- Patches are welcome via the usual mechanisms (pull requests, email, posting to
1321
- the project issue tracker etc).
1322
-
1323
- As many users choose to track Command-T using Pathogen or similar, which often
1324
- means running a version later than the last official release, the intention is
1325
- that the "master" branch should be kept in a stable and reliable state as much
1326
- as possible.
1327
-
1328
- Riskier changes are first cooked on the "next" branch for a period before
1329
- being merged into master. You can track this branch if you're feeling wild and
1330
- experimental, but note that the "next" branch may periodically be rewound
1331
- (force-updated) to keep it in sync with the "master" branch after each
1332
- official release.
1333
-
1334
-
1335
- WEBSITE *command-t-website*
1336
-
1337
- The official website for Command-T is:
1338
-
1339
- https://github.com/wincent/command-t
1340
-
1341
- The latest release will always be available from:
1342
-
1343
- https://github.com/wincent/command-t/releases
1344
-
1345
- A copy of each release is also available from the official Vim scripts site
1346
- at:
1347
-
1348
- http://www.vim.org/scripts/script.php?script_id=3025
1349
-
1350
- Bug reports should be submitted to the issue tracker at:
1351
-
1352
- https://github.com/wincent/command-t/issues
1353
-
1354
-
1355
- LICENSE *command-t-license*
1356
-
1357
- Copyright 2010-present Greg Hurrell. All rights reserved.
1358
-
1359
- Redistribution and use in source and binary forms, with or without
1360
- modification, are permitted provided that the following conditions are met:
1361
-
1362
- 1. Redistributions of source code must retain the above copyright notice,
1363
- this list of conditions and the following disclaimer.
1364
- 2. Redistributions in binary form must reproduce the above copyright notice,
1365
- this list of conditions and the following disclaimer in the documentation
1366
- and/or other materials provided with the distribution.
1367
-
1368
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1369
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1370
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1371
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
1372
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1373
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1374
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1375
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1376
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1377
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1378
- POSSIBILITY OF SUCH DAMAGE.
1379
-
1380
- HISTORY *command-t-history*
1381
-
1382
- 3.0 (19 January 2015)
1383
-
1384
- - change |g:CommandTIgnoreSpaces| default value to 1.
1385
- - change |g:CommandTMatchWindowReverse| default value to 1.
1386
- - change |g:CommandTMaxHeight| default value to 15.
1387
- - try harder to avoid scrolling other buffer when showing or hiding the match
1388
- listing
1389
-
1390
- 2.0 (28 December 2015)
1391
-
1392
- - add |:CommandTIgnoreSpaces| option (patch from KJ Tsanaktsidis)
1393
- - make Command-T resilient to people deleting its hidden, unlisted buffer
1394
- - the match listing buffer now has filetype "command-t", which may be useful
1395
- for detectability/extensibility
1396
- - Command-T now sets the name of the match listing buffer according to how it
1397
- was invoked (ie. for the file finder, the name is "Command-T [Files]", for
1398
- the buffer finder, the name is "Command-T [Buffers]", and so on);
1399
- previously the name was a fixed as "GoToFile" regardless of the active
1400
- finder type
1401
- - Many internal function names have changed, so if you or your plug-ins are
1402
- calling those internals they will need to be updated:
1403
- - `commandt#CommandTFlush()` is now `commandt#Flush()`
1404
- - `commandt#CommandTLoad()` is now `commandt#Load()`
1405
- - `commandt#CommandTShowBufferFinder()` is now `commandt#BufferFinder()`
1406
- - `commandt#CommandTShowFileFinder()` is now `commandt#FileFinder()`
1407
- - `commandt#CommandTShowJumpFinder()` is now `commandt#JumpFinder()`
1408
- - `commandt#CommandTShowMRUFinder()` is now `commandt#MRUFinder()`
1409
- - `commandt#CommandTShowTagFinder()` is now `commandt#TagFinder()`
1410
- - A number of functions have been turned into "private" autoloaded functions,
1411
- to make it clear that they are intended only for internal use:
1412
- - `CommandTAcceptSelection()` is now `commandt#private#AcceptSelection()`
1413
- - `CommandTAcceptSelectionSplit()` is now `commandt#private#AcceptSelectionSplit()`
1414
- - `CommandTAcceptSelectionTab()` is now `commandt#private#AcceptSelectionTab()`
1415
- - `CommandTAcceptSelectionVSplit()` is now `commandt#private#AcceptSelectionVSplit()`
1416
- - `CommandTBackspace()` is now `commandt#private#Backspace()`
1417
- - `CommandTCancel()` is now `commandt#private#Cancel()`
1418
- - `CommandTClear()` is now `commandt#private#Clear()`
1419
- - `CommandTClearPrevWord()` is now `commandt#private#ClearPrevWord()`
1420
- - `CommandTCursorEnd()` is now `commandt#private#CursorEnd()`
1421
- - `CommandTCursorLeft()` is now `commandt#private#CursorLeft()`
1422
- - `CommandTCursorRight()` is now `commandt#private#CursorRight()`
1423
- - `CommandTCursorStart()` is now `commandt#private#CursorStart()`
1424
- - `CommandTDelete()` is now `commandt#private#Delete()`
1425
- - `CommandTHandleKey()` is now `commandt#private#HandleKey()`
1426
- - `CommandTListMatches()` is now `commandt#private#ListMatches()`
1427
- - `CommandTQuickfix()` is now `commandt#private#Quickfix()`
1428
- - `CommandTRefresh()` is now `commandt#private#Refresh()`
1429
- - `CommandTSelectNext()` is now `commandt#private#SelectNext()`
1430
- - `CommandTSelectPrev()` is now `commandt#private#SelectPrev()`
1431
- - `CommandTToggleFocus()` is now `commandt#private#ToggleFocus()`
1432
- - add |g:CommandTRecursiveMatch| option
1433
- - stop distribution as a vimball in favor of a zip archive
1434
- - don't clobber |alternate-file| name when opening Command-T match listing
1435
- (patch from Jerome Castaneda)
1436
- - add |g:CommandTCursorColor| option
1437
- - expose mappings for |:CommandT| and |:CommandTBuffer| using `<Plug>`
1438
- mappings |<Plug>(CommandT)| and |<Plug>(CommandT)|
1439
- - add `<Leader>j` mapping to |:CommandTJump|, via |<Plug>(CommandTJump)|
1440
- (defined only if no pre-existing mapping exists)
1441
-
1442
- 1.13 (29 April 2015)
1443
-
1444
- - avoid "W10: Warning: Changing a readonly file" when starting Vim in
1445
- read-only mode (ie. as `view` or with the `-R` option)
1446
- - fix infinite loop on |<Tab>| (regression introduced in 1.12)
1447
-
1448
- 1.12 (9 April 2015)
1449
-
1450
- - add |:CommandTLoad| command
1451
- - fix rare failure to restore cursor color after closing Command-T (patch from
1452
- Vlad Seghete)
1453
- - doc fixes and updates (patches from Daniel Hahler and Nicholas T.)
1454
- - make it possible to force reloading of the plug-in (patch from Daniel
1455
- Hahler)
1456
- - add |g:CommandTEncoding| option, to work around rare encoding compatibility
1457
- issues
1458
- - fix error restoring cursor highlights involving some configurations (patch
1459
- from Daniel Hahler)
1460
- - skip set-up of |<Esc>| key mapping on rxvt terminals (patch from Daniel
1461
- Hahler)
1462
- - add |g:CommandTGitScanSubmodules| option, which can be used to recursively
1463
- scan submodules when the "git" file scanner is used (patch from Ben Boeckel)
1464
- - fix for not falling back to "find"-based scanner when a Watchman-related
1465
- error occurs
1466
-
1467
- 1.11.4 (4 November 2014)
1468
-
1469
- - fix infinite loop on Windows when |g:CommandTTraverseSCM| is set to a value
1470
- other than "pwd" (bug present since 1.11)
1471
- - handle unwanted split edgecase when |'hidden'| is set, the current buffer is
1472
- modified, and it is visible in more than one window
1473
-
1474
- 1.11.3 (10 October 2014)
1475
-
1476
- - ignore impromperly encoded filenames (patch from Sherzod Gapirov)
1477
- - fix failure to update path when using |:cd| in conjunction with
1478
- |g:CommandTTraverseSCM| set to "pwd" (bug present since 1.11.2)
1479
-
1480
- 1.11.2 (2 September 2014)
1481
-
1482
- - fix error while using Command-T outside of an SCM repo (bug present since
1483
- 1.11.1)
1484
-
1485
- 1.11.1 (29 August 2014)
1486
-
1487
- - compatibility fixes with Ruby 1.8.6 (patch from Emily Strickland)
1488
- - compatibility fixes with Ruby 1.8.5
1489
- - fix 'wildignore' being ignored (bug present since 1.11)
1490
- - fix current working directory being ignored when |g:CommandTTraverseSCM| is
1491
- set to "pwd" (bug present since 1.11)
1492
- - performance improvements
1493
-
1494
- 1.11 (15 August 2014)
1495
-
1496
- - improve edge-case handling in match results window code (patches from
1497
- Richard Feldman)
1498
- - add "git" file scanner (patch from Patrick Hayes)
1499
- - speed-up when 'wildignore' is unset (patch from Patrick Hayes)
1500
- - add |g:CommandTTraverseSCM| setting which anchors Command-T's file finder to
1501
- the nearest SCM directory (based on patches from David Szotten and Ben
1502
- Osheroff)
1503
- - add AppStream metadata (patch from Vít Ondruch)
1504
-
1505
- 1.10 (15 July 2014)
1506
-
1507
- - improve tag finder performance by caching tag lists (patch from Artem
1508
- Nezvigin)
1509
- - consider the |'autowriteall'| option when deciding whether to open a file in
1510
- a split
1511
- - make selection acceptance commands configurable (patch from Ole Petter Bang)
1512
- - add <C-w> mapping to delete previous word of the match prompt (patch from
1513
- Kevin Webster)
1514
- - try harder to always clear status line after closing the match listing
1515
- (patch from Ton van den Heuvel)
1516
- - don't allow MRU autocommands to produce errors when the extension has not
1517
- been compiled
1518
- - add |g:CommandTIgnoreCase| and |g:CommandTSmartCase| options, providing
1519
- support for case-sensitive matching (based on patch from Jacek Wysocki)
1520
-
1521
- 1.9.1 (30 May 2014)
1522
-
1523
- - include the file in the release archive that was missing from the
1524
- 1.9 release
1525
-
1526
- 1.9 (25 May 2014)
1527
-
1528
- - improved startup time using Vim's autload mechanism (patch from Ross
1529
- Lagerwall)
1530
- - added MRU (most-recently-used) buffer finder (patch from Ton van den Heuvel)
1531
- - fixed edge case in matching algorithm which could cause spurious matches
1532
- with queries containing repeated characters
1533
- - fixed slight positive bias in the match scoring algorithm's weighting of
1534
- matching characters based on distance from last match
1535
- - tune memoization in match scoring algorithm, yielding a more than 10% speed
1536
- boost
1537
-
1538
- 1.8 (31 March 2014)
1539
-
1540
- - taught Watchman file scanner to use the binary protocol instead of JSON,
1541
- roughly doubling its speed
1542
- - build changes to accommodate MinGW (patch from Roland Puntaier)
1543
-
1544
- 1.7 (9 March 2014)
1545
-
1546
- - added |g:CommandTInputDebounce|, which can be used to improve responsiveness
1547
- in large file hierarchies (based on patch from Yiding Jia)
1548
- - added a potentially faster file scanner which uses the `find` executable
1549
- (based on patch from Yiding Jia)
1550
- - added a file scanner that knows how to talk to Watchman
1551
- (https://github.com/facebook/watchman)
1552
- - added |g:CommandTFileScanner|, which can be used to switch file scanners
1553
- - fix processor count detection on some platforms (patch from Pavel Sergeev)
1554
-
1555
- 1.6.1 (22 December 2013)
1556
-
1557
- - defer processor count detection until runtime (makes it possible to sensibly
1558
- build Command-T on one machine and use it on another)
1559
-
1560
- 1.6 (16 December 2013)
1561
-
1562
- - on systems with POSIX threads (such as OS X and Linux), Command-T will use
1563
- threads to compute match results in parallel, resulting in a large speed
1564
- boost that is especially noticeable when navigating large projects
1565
-
1566
- 1.5.1 (23 September 2013)
1567
-
1568
- - exclude large benchmark fixture file from source exports (patch from Vít
1569
- Ondruch)
1570
-
1571
- 1.5 (18 September 2013)
1572
-
1573
- - don't scan "pathological" filesystem structures (ie. circular or
1574
- self-referential symlinks; patch from Marcus Brito)
1575
- - gracefully handle files starting with "+" (patch from Ivan Ukhov)
1576
- - switch default selection highlight color for better readability (suggestion
1577
- from André Arko), but make it possible to configure via the
1578
- |g:CommandTHighlightColor| setting
1579
- - added a mapping to take the current matches and put then in the quickfix
1580
- window
1581
- - performance improvements, particularly noticeable with large file
1582
- hierarchies
1583
- - added |g:CommandTWildIgnore| setting (patch from Paul Jolly)
1584
-
1585
- 1.4 (20 June 2012)
1586
-
1587
- - added |:CommandTTag| command (patches from Noon Silk)
1588
- - turn off |'colorcolumn'| and |'relativenumber'| in the match window (patch
1589
- from Jeff Kreeftmeijer)
1590
- - documentation update (patch from Nicholas Alpi)
1591
- - added |:CommandTMinHeight| option (patch from Nate Kane)
1592
- - highlight (by underlining) matched characters in the match listing (requires
1593
- Vim to have been compiled with the +conceal feature, which is available in
1594
- Vim 7.3 or later; patch from Steven Moazami)
1595
- - added the ability to flush the cache while the match window is open using
1596
- <C-f>
1597
-
1598
- 1.3.1 (18 December 2011)
1599
-
1600
- - fix jumplist navigation under Ruby 1.9.x (patch from Woody Peterson)
1601
-
1602
- 1.3 (27 November 2011)
1603
-
1604
- - added the option to maintain multiple caches when changing among
1605
- directories; see the accompanying |g:CommandTMaxCachedDirectories| setting
1606
- - added the ability to navigate using the Vim jumplist (patch from Marian
1607
- Schubert)
1608
-
1609
- 1.2.1 (30 April 2011)
1610
-
1611
- - Remove duplicate copy of the documentation that was causing "Duplicate tag"
1612
- errors
1613
- - Mitigate issue with distracting blinking cursor in non-GUI versions of Vim
1614
- (patch from Steven Moazami)
1615
-
1616
- 1.2 (30 April 2011)
1617
-
1618
- - added |g:CommandTMatchWindowReverse| option, to reverse the order of items
1619
- in the match listing (patch from Steven Moazami)
1620
-
1621
- 1.1b2 (26 March 2011)
1622
-
1623
- - fix a glitch in the release process; the plugin itself is unchanged since
1624
- 1.1b
1625
-
1626
- 1.1b (26 March 2011)
1627
-
1628
- - add |:CommandTBuffer| command for quickly selecting among open buffers
1629
-
1630
- 1.0.1 (5 January 2011)
1631
-
1632
- - work around bug when mapping |:CommandTFlush|, wherein the default mapping
1633
- for |:CommandT| would not be set up
1634
- - clean up when leaving the Command-T buffer via unexpected means (such as
1635
- with <C-W k> or similar)
1636
-
1637
- 1.0 (26 November 2010)
1638
-
1639
- - make relative path simplification work on Windows
1640
-
1641
- 1.0b (5 November 2010)
1642
-
1643
- - work around platform-specific Vim 7.3 bug seen by some users (wherein
1644
- Vim always falsely reports to Ruby that the buffer numbers is 0)
1645
- - re-use the buffer that is used to show the match listing, rather than
1646
- throwing it away and recreating it each time Command-T is shown; this
1647
- stops the buffer numbers from creeping up needlessly
1648
-
1649
- 0.9 (8 October 2010)
1650
-
1651
- - use relative paths when opening files inside the current working directory
1652
- in order to keep buffer listings as brief as possible (patch from Matthew
1653
- Todd)
1654
-
1655
- 0.8.1 (14 September 2010)
1656
-
1657
- - fix mapping issues for users who have set |'notimeout'| (patch from Sung
1658
- Pae)
1659
-
1660
- 0.8 (19 August 2010)
1661
-
1662
- - overrides for the default mappings can now be lists of strings, allowing
1663
- multiple mappings to be defined for any given action
1664
- - <Leader>t mapping only set up if no other map for |:CommandT| exists
1665
- (patch from Scott Bronson)
1666
- - prevent folds from appearing in the match listing
1667
- - tweaks to avoid the likelihood of "Not enough room" errors when trying to
1668
- open files
1669
- - watch out for "nil" windows when restoring window dimensions
1670
- - optimizations (avoid some repeated downcasing)
1671
- - move all Ruby files under the "command-t" subdirectory and avoid polluting
1672
- the "Vim" module namespace
1673
-
1674
- 0.8b (11 July 2010)
1675
-
1676
- - large overhaul of the scoring algorithm to make the ordering of returned
1677
- results more intuitive; given the scope of the changes and room for
1678
- optimization of the new algorithm, this release is labelled as "beta"
1679
-
1680
- 0.7 (10 June 2010)
1681
-
1682
- - handle more |'wildignore'| patterns by delegating to Vim's own |expand()|
1683
- function; with this change it is now viable to exclude patterns such as
1684
- 'vendor/rails/**' in addition to filename-only patterns like '*.o' and
1685
- '.git' (patch from Mike Lundy)
1686
- - always sort results alphabetically for empty search strings; this eliminates
1687
- filesystem-specific variations (patch from Mike Lundy)
1688
-
1689
- 0.6 (28 April 2010)
1690
-
1691
- - |:CommandT| now accepts an optional parameter to specify the starting
1692
- directory, temporarily overriding the usual default of Vim's |:pwd|
1693
- - fix truncated paths when operating from root directory
1694
-
1695
- 0.5.1 (11 April 2010)
1696
-
1697
- - fix for Ruby 1.9 compatibility regression introduced in 0.5
1698
- - documentation enhancements, specifically targetted at Windows users
1699
-
1700
- 0.5 (3 April 2010)
1701
-
1702
- - |:CommandTFlush| now re-evaluates settings, allowing changes made via |let|
1703
- to be picked up without having to restart Vim
1704
- - fix premature abort when scanning very deep directory hierarchies
1705
- - remove broken |<Esc>| key mapping on vt100 and xterm terminals
1706
- - provide settings for overriding default mappings
1707
- - minor performance optimization
1708
-
1709
- 0.4 (27 March 2010)
1710
-
1711
- - add |g:CommandTMatchWindowAtTop| setting (patch from Zak Johnson)
1712
- - documentation fixes and enhancements
1713
- - internal refactoring and simplification
1714
-
1715
- 0.3 (24 March 2010)
1716
-
1717
- - add |g:CommandTMaxHeight| setting for controlling the maximum height of the
1718
- match window (patch from Lucas de Vries)
1719
- - fix bug where |'list'| setting might be inappropriately set after dismissing
1720
- Command-T
1721
- - compatibility fix for different behaviour of "autoload" under Ruby 1.9.1
1722
- - avoid "highlight group not found" warning when run under a version of Vim
1723
- that does not have syntax highlighting support
1724
- - open in split when opening normally would fail due to |'hidden'| and
1725
- |'modified'| values
1726
-
1727
- 0.2 (23 March 2010)
1728
-
1729
- - compatibility fixes for compilation under Ruby 1.9 series
1730
- - compatibility fixes for compilation under Ruby 1.8.5
1731
- - compatibility fixes for Windows and other non-UNIX platforms
1732
- - suppress "mapping already exists" message if <Leader>t mapping is already
1733
- defined when plug-in is loaded
1734
- - exclude paths based on |'wildignore'| setting rather than a hardcoded
1735
- regular expression
1736
-
1737
- 0.1 (22 March 2010)
1738
-
1739
- - initial public release
1740
-
1741
- ------------------------------------------------------------------------------
1742
- vim:ts=8:tw=78:ft=help: