TabNine

TabNine is the all-language autocompleter. It uses machine learning to provide responsive, reliable, and relevant suggestions.

Traditional autocompleters suggest one word at a time.

Why accept this limitation?

FeaturePremiumFree
Whole project indexingYesYes
.gitignore awarenessYesYes
Fuzzy matchingYesYes
No configuration necessaryYesYes
~20 millisecond response timeYesYes
Context-aware suggestionsYesYes
Vim supportYesYes
Sublime Text supportYesYes
VS Code supportYesYes
Atom supportYesYes
Up to 200 KB indexedYesYes
Up to 15 MB indexedYes

All versions of TabNine still work with projects larger than the indexing limit. Files will be added and removed from the index to ensure that the indexed files are as relevant as possible to the files you are editing.

TabNine offers a 30-day money back guarantee (contact info).

Install TabNine here. TabNine is easy to install and no configuration is necessary.

If TabNine does not work as soon as you install it, this is a bug and you should file an issue.

How does it work?

TabNine builds an index of your project, reading your .gitignore so that only source files are included. It uses this index to provide useful information to a softmax regression model which ranks candidate completions. For example, TabNine knows how often each pair of consecutive symbols appears in your project, so it knows that static void is more common than void static (although they are the same to a C++ compiler).

The candidate completions are then given to a secondary completion engine, which may suggest additional characters for completion, based on similar patterns found elsewhere in your project. This diagram illustrates the role of this completion engine:

Another abstraction layer parameterizes the patterns by the identifiers they contain, allowing TabNine to provide suggestions involving words that it has only seen once, such as String in this example:

Here is a diagram illustrating this process:

Installation


Press Ctrl+P (Cmd+P on OSX), paste the following command, and press enter.

ext install TabNine.tabnine-vscode

Then press the 'Reload' button in the extensions tab.

Many users choose to disable the default behavior of using Enter to accept completions, to avoid accepting a completion when they intended to start a new line. You can do this by going to Settings → Editor: Accept Suggestion On Enter and setting it to off.

If you encounter problems, please file an issue here.

  1. Install Package Control by pressing Ctrl+Shift+P (Cmd+Shift+P on OSX) and selecting Install Package Control.
  2. Install TabNine by pressing Ctrl+Shift+P (Cmd+Shift+P on OSX) and selecting Package Control: Install Package and then TabNine.

If you encounter problems, please file an issue here.

TabNine is available in Packages.

Simply search TabNine and press Install.

If TabNine does not appear in Packages, check that your Atom installation is up to date.

Many users choose to disable the default behavior of using Enter to accept completions, to avoid accepting a completion when they intended to start a new line. You can do this by going to Settings → Packages → Autocomplete Plus → Keymap For Confirming a Suggestion and setting it to tab.

The Atom client for TabNine is based on atom-youcompleteme.

If you encounter problems, please file an issue here.

This client for TabNine was generously contributed by Tommy Xiang.

See the GitHub repository for installation instructions.

With Vundle

  1. Add Plugin 'zxqfl/tabnine-vim' to your .vimrc.
  2. Type :PluginInstall and press Enter.

Without Vundle

  1. Run git clone https://github.com/zxqfl/tabnine-vim in your terminal.
  2. Add set rtp+=~/tabnine-vim to your .vimrc (replacing ~/tabnine-vim with the path you cloned it to).

The Vim client for TabNine is based on YouCompleteMe.

If you encounter problems, please file an issue here.

This client for TabNine was generously contributed by Theodore Dubois.

The Deoplete client allows you to use semantic completers and TabNine at the same time.

See the GitHub repository for installation instructions.

You can enter your email in this form to be notified when TabNine is released for a new text editor.

Usage tips

It's recommended to enter long identifiers by typing the first character of each word. For example:

  • To enter foo_bar_baz, type fbb.
  • To enter fooBarBaz, type fBB.

If you have feature requests, please create an issue in the TabNine GitHub repository.

Buy a license


A personal license for TabNine costs $29.

TabNine is currently in beta. When it is released, your software will automatically update to the full released version at no additional charge.

TabNine will save you at least 1 second per minute. If you value your time above $0.83/hour, it will pay for itself in less than a year. (Assuming 2087 hours in a work year.)

Personal licenses are for individuals.They cannot be purchased or reimbursed by companies.

A business license for TabNine costs $89.

TabNine is currently in beta. When it is released, your software will automatically update to the full released version at no additional charge.

TabNine will save you at least 1 second per minute. If you value your time above $2.55/hour, it will pay for itself in less than a year. (Assuming 2087 hours in a work year.)

Business licenses are for companies. A business license may be used by any single person within the company. Bulk discounts are available upon request.