Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



96 Commits

Repository files navigation

Tern for Vim

This is a Vim plugin that provides Tern-based JavaScript editing support.

NOTE: This project is not being actively maintained right now. If you'd be interested in becoming a maintainer, write me or open an issue.

In JavaScript files, the package will hook into omni completion to handle autocompletion, and provide the following commands:

TernDef: Jump to the definition of the thing under the cursor.

TernDoc: Look up the documentation of something.

TernType: Find the type of the thing under the cursor.

TernRefs: Show all references to the variable or property under the cursor.

TernRename: Rename the variable under the cursor.



If you use Pathogen or something similar, you can clone this repository to your ~/.vim/bundle (or equivalent) directory. Make sure you have node.js and npm installed (Tern is a JavaScript program), and install the tern server by running npm install in the bundle/tern_for_vim directory.

Caution: Because the node process is not run using your standard shell, the NVM version of node.js won't work. You need a global node executable.


Install apt-vim and then run the following in terminal:

apt-vim install -y


The command used to start the Tern server can be overridden by setting tern#command to an array of strings (the binary and its arguments, if any). You might need this if your node is installed somewhere that's not in the default path, or if you want to install Tern in some custom location.

The variable tern#is_show_argument_hints_enabled can be set to something truthy to make the plugin display the arguments to the current function at the bottom of the screen. This feature is currently not very mature, and likely to make your editing laggy.

Tern uses .tern-project files to configure loading libraries and plugins for a project. See the Tern docs for details.