End User Usage¶
If you are a not an IDE Developer, the odds are that you just want to use Jedi as a browser plugin or in the shell. Yes that’s also possible!
Jedi is relatively young and can be used in a variety of Plugins and Software. If your Editor/IDE is not among them, recommend Jedi to your IDE developers.
Editor Plugins¶
Vim:
Emacs:
Sublime Text 2/3:
- SublimeJEDI (ST2 & ST3)
- anaconda (only ST3)
SynWrite:
TextMate:
- Textmate (Not sure if it’s actually working)
Kate:
- Kate version 4.13+ supports it natively, you have to enable it, though.
Visual Studio Code:
Atom:
GNOME Builder:
- GNOME Builder supports it natively, and is enabled by default.
Gedit:
Eric IDE:
- Eric IDE (Available as a plugin)
Web Debugger:
and many more!
Tab Completion in the Python Shell¶
Starting with Ipython 6.0.0 Jedi is a dependency of IPython. Autocompletion in IPython is therefore possible without additional configuration.
There are two different options how you can use Jedi autocompletion in
your Python interpreter. One with your custom $HOME/.pythonrc.py
file
and one that uses PYTHONSTARTUP
.
Using PYTHONSTARTUP
¶
To use Jedi completion in Python interpreter, add the following in your shell
setup (e.g., .bashrc
). This works only on Linux/Mac, because readline is
not available on Windows. If you still want Jedi autocompletion in your REPL,
just use IPython instead:
export PYTHONSTARTUP="$(python -m jedi repl)"
Then you will be able to use Jedi completer in your Python interpreter:
$ python
Python 2.7.2+ (default, Jul 20 2012, 22:15:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.join('a', 'b').split().in<TAB> # doctest: +SKIP
..dex ..sert
Using a custom $HOME/.pythonrc.py
¶
-
jedi.utils.
setup_readline
(namespace_module=<module '__main__' from '/home/docs/checkouts/readthedocs.org/user_builds/jedi/envs/v0.16.0/bin/sphinx-build'>, fuzzy=False)[source]¶ Install Jedi completer to
readline
.This function setups
readline
to use Jedi in Python interactive shell. If you want to use a customPYTHONSTARTUP
file (typically$HOME/.pythonrc.py
), you can add this piece of code:try: from jedi.utils import setup_readline setup_readline() except ImportError: # Fallback to the stdlib readline completer if it is installed. # Taken from http://docs.python.org/2/library/rlcompleter.html print("Jedi is not installed, falling back to readline") try: import readline import rlcompleter readline.parse_and_bind("tab: complete") except ImportError: print("Readline is not installed either. No tab completion is enabled.")
This will fallback to the readline completer if Jedi is not installed. The readline completer will only complete names in the global namespace, so for example:
ran<TAB>
will complete to
range
with both Jedi and readline, but:
range(10).cou<TAB>
will show complete to
range(10).count
only with Jedi.You’ll also need to add
export PYTHONSTARTUP=$HOME/.pythonrc.py
to your shell profile (usually.bash_profile
or.profile
if you use bash).