README.rst 4.8KB

Python syntax highlighting script for Vim

.. contents::


Enhanced version of the original Python syntax highlighting script. Based on
``python.vim`` from Vim 6.1 distribution by Neil Schemenauer (nas at python dot
ca). Check also `python.vim page on

Please use the following channels for reporting bugs, offering suggestions or

- python.vim issue tracker:
- Email: Dmitry Vasiliev (dima at
- Send a message or follow me for updates on Twitter: `@hdima


Changes from the original ``python.vim`` are:

- Added support for Python 3 syntax highlighting
- Added ``:Python2Syntax`` and ``:Python3Syntax`` commands which allow to
switch between Python 2 and Python 3 syntaxes respectively without
- Updated strings highlighting
- Enhanced special symbols highlighting inside strings
- Enhanced highlighting of numeric constants
- Added optional highlighting for %-formatting inside strings
- Added highlighting for magic comments: source code encoding and #!
(executable) strings
- Added highlighting for new exceptions and builtins
- Added highlighting for doctests
- Added highlighting for new ``@decorator`` syntax introduced in Python 2.4a2
- Added highlighting for the following errors:

- invalid symbols in source file
- mixing spaces and tabs
- invalid numeric constants
- invalid %-formatting inside strings
- invalid variable names
- trailing spaces (triggered by the ``python_highlight_space_errors`` option)

Some of these features was later backported into the original ``python.vim``.

How to install

The easiest installation method is to place `syntax/python.vim
`_ script
into your ``~/.vim/syntax/`` directory.

You can also use `Pathogen `_ or `Vundle
`_ plugin managers in which case you can
install the whole `python.vim repository
`_ into the corresponding plugins

Script options

There are two commands to enable or disable an option:

``:let OPTION_NAME = 1``
Enable option
``:let OPTION_NAME = 0``
Disable option

For example to enable all syntax highlighting features you can place the
following command in your ``~/.vimrc`` script::

let python_highlight_all = 1

Option and commands to select Python version

Enable highlighting for Python 2 (Python 3 highlighting is enabled by
default). Also can be set as a local to buffer ``b:python_version_2``

The following local to buffer commands can be used to switch between two
highlighting modes:

Switch to Python 2 highlighting mode
Switch to Python 3 highlighting mode

Options used by the script

Highlight builtin functions and objects
Highlight builtin objects only
Highlight builtin functions only
Highlight standard exceptions
Highlight ``%`` string formatting
Highlight syntax of ``str.format`` syntax
Highlight syntax of ``string.Template``
Highlight indentation errors
Highlight trailing spaces
Highlight doc-tests
Highlight ``print`` statement as function for Python 2
Highlight shebang and coding headers as comments
Enable all the options above. *NOTE: This option don't override any
previously set options*
Can be set to 0 for slow machines


List of the contributors in alphabetical order:

- `Andrea Riciputi `_
- Anton Butanaev
- `Antony Lee `_
- Caleb Adamantine
- `David Briscoe `_
- `Elizabeth Myers `_
- `Ihor Gorobets `_
- `Jeroen Ruigrok van der Werven `_
- `John Eikenberry `_
- `Joongi Kim `_
- `Marc Weber `_
- `Pedro Algarvio `_
- `Victor Salgado `_
- `Will Gray `_
- `Yuri Habrusiev `_