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?

Thousands of developers use TabNine because it saves time. You will be able to focus on the code you want to write, rather than the keystrokes required to write it.

Installation

TabNine is free to try and there is no time limit for evaluation. Just follow the instructions below:


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.

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 a feature request, please create an issue in the TabNine GitHub repository.

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:

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.

FeaturePremiumFree
Semantic completionYesYes
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 400 KB indexedYesYes
Up to 100 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.