sponsor Vim development Vim logo Vim Book Ad

python.vim : Enhanced version of the python syntax highlighting script

 script karma  Rating 2025/844, Downloaded by 135553  Comments, bugs, improvements  Vim wiki

created by
Dmitry Vasiliev
 
script type
syntax
 
description
Enhanced version of the original (from vim6.1) python.vim for Python programming language.

The changes since 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
  reloads/restarts
- changed strings highlighting;
- enhanced special symbols highlighting inside strings;
- enhanced numbers highlighting;
- added optional highlighting for %-formatting inside strings;
- added highlighting for some error conditions (wrong symbols in source file,
  mixing spaces and tabs, wrong number values,
  wrong %-formatting inside strings);
- added highlighting for magic comments: source code encoding
  and #! (executable) strings;
- added highlighting for new exceptions and builtins introduced in python 2.3, 2.4 and 2.5;
- added highlighting for doctests;
- added highlighting for new @decorator syntax introduced in Python 2.4a2;
- added highlighting for trailing-space errors (triggered by new
  option: python_highlight_space_errors);
- added highlighting for variable name errors;
- added highlighting for hex number errors;

Check the comments in the python.vim header for details how to report bugs and feature requests.
 
install details
Place python.vim file in ~/.vim/syntax/ folder.

Check the comments in the python.vim header for additional options.
 

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
python.vim 3.3.6 2013-11-18 7.0 Dmitry Vasiliev - Highlight 'yield from' statement introduced in Python 3.3. Reported by Elizabeth Myers.
python.vim 3.3.5 2013-08-31 7.0 Dmitry Vasiliev - Highlight 'import', 'from' and 'as' as include statements.
  Patch by pydave at GitHub.
- Added new option 'python_highlight_file_headers_as_comments' (disabled by
  default) to highlight shebang and coding file headers as comments.
  Proposed by pydave at GitHub.
python.vim 3.3.4 2013-08-11 7.0 Dmitry Vasiliev Highlight True and False as booleans. Patch by Yuri Habrusiev.
python.vim 3.3.3 2013-06-02 7.0 Dmitry Vasiliev More lightweight syntax reloading. Patch by Will Gray.
python.vim 3.3.2 2013-06-01 7.0 Dmitry Vasiliev Fixed behavior of b:python_version_2 variable. Reported by Will Gray.
python.vim 3.3.1 2013-05-12 7.0 Dmitry Vasiliev Script was moved to its own repository: https://github.com/hdima/python-syntax
python.vim 3.3.0 2013-03-10 7.0 Dmitry Vasiliev Merge Python 2 and Python 3 script versions into the single python.vim script.

See the comments in the script header for details how to switch between highlighting for Python 2 and Python 3.
python3.0.vim 3.0.7 2012-02-11 7.0 Dmitry Vasiliev Updated email and URL
python.vim 2.6.7 2012-02-11 7.0 Dmitry Vasiliev Updated email and URL
python3.0.vim 3.0.6 2010-11-15 7.0 Dmitry Vasiliev - Fixed highlighting for str.format syntax. Patch by Anton Butanaev.
python3.0.vim 3.0.5 2010-11-12 7.0 Dmitry Vasiliev - Fixed bytes escapes highlighting. Patch by Anton Butanaev.
- Fixed highlighting for erroneous numbers.
python3.0.vim 3.0.4 2010-11-09 7.0 Dmitry Vasiliev - Applied patch by Anton Butanaev which fixes highlighting for raw bytes literals
python3.0.vim 3.0.3 2010-04-09 7.0 Dmitry Vasiliev - Applied patch by Andrea Riciputi with new configuration options "python_highlight_builtin_objs" and "python_highlight_builtin_funcs"
python.vim 2.6.6 2010-04-09 7.0 Dmitry Vasiliev - Applied patch by Andrea Riciputi with new configuration options "python_highlight_builtin_objs" and "python_highlight_builtin_funcs"
python3.0.vim 3.0.2 2009-07-24 7.0 Dmitry Vasiliev - Applied patch by Caleb Adamantine which fixes highlighting for decorators
python.vim 2.6.5 2009-07-24 7.0 Dmitry Vasiliev - Applied patch by Caleb Adamantine which fixes highlighting for decorators
python3.0.vim 3.0.1 2009-05-03 6.0 Dmitry Vasiliev - Fixed compatibility with pyrex.vim
python.vim 2.6.4 2009-05-03 6.0 Dmitry Vasiliev - Fixed compatibility with pyrex.vim
python3.0.vim 3.0.0 2008-12-07 6.0 Dmitry Vasiliev *Warning: For Python 3.0 only!*

- Added support for non-ASCII identifiers;
- Added support for new text strings and binary data (bytes);
- Updated support for numeric literals;
- Updated support for str.format;
- Added new builtins introduced in Python 2.6: "ascii", "exec", "memoryview", "print";
- Added new keyword "nonlocal";
- Removed exception "StandardError";
- Removed builtins: "apply", "basestring", "buffer", "callable", "coerce", "execfile", "file", "help", "intern", "long", "raw_input", "reduce", "reload", "unichr", "unicode", "xrange";
python.vim 2.6.3 2008-09-29 6.0 Dmitry Vasiliev - Return back trailing 'L' support for numbers. Actually it was changed for future Python 3.0 syntax but in wrong file;
python.vim 2.6.2 2008-09-22 6.0 Dmitry Vasiliev - Added "VMSError" exception;
- Added support for b"..." syntax;
- Added support for str.format brace escaping;
python.vim 2.6.1 2008-09-21 6.0 Dmitry Vasiliev First Python 2.6 compatible release. Changes:

- Added new builtins and exceptions introduced in Python 2.6: "bin", "bytearray", "bytes", "format", "next", "BufferError", "BytesWarning";
- Added builtin "__debug__";
- Added global variables: "__doc__", "__file__", "__name__", "__package__";
- Removed "OverflowWarning" (removed in Python 2.5);
- Added option "python_print_as_function" for highlight "print" as a function;
- Added support for new integer literal syntax "0o" and "0b";
- Added support for string.Template syntax controlled by "python_highlight_string_templates" option;
- Added support for str.format syntax controlled by "python_highlight_string_format" option;
- Removed highlighting for "--" and "++" because it is a valid Python expressions which can be interpreted as "a + +b";
python.vim 2.5.6 2007-02-04 6.0 Dmitry Vasiliev - Applied patch by Pedro Algarvio to enable spell checking only for
  the right spots (strings and comments);
python.vim 2.5.5 2006-09-26 7.0 Dmitry Vasiliev - added new warnings (ImportWarning, UnicodeWarning) introduced in Python 2.5;
python.vim 2.5.4 2006-05-11 6.0 Dmitry Vasiliev - added highlighting for erroneous operators: &&, ||, ++, --, ===
  (inspired by http://www.vim.org/tips/tip.php?tip_id=969, thanks
  Jeroen Ruigrok van der Werven for the link);
- added highlighting for new 'with' statement and 'BaseException',
  'GeneratorExit' exceptions introduced in Python 2.5;
- added highlighting for 'OverflowWarning' exception which had been
  forgotten;
- returned more robust recognition for function names;
python.vim 2.5.3 2006-03-06 6.0 Dmitry Vasiliev - fixed %-formatting highlighting for raw unicode strings;
python.vim 2.5.2 2006-01-23 6.0 Dmitry Vasiliev - slightly simplified option handling;
- fixed regexp for indentation errors;
- fixed highlighting for backslashed symbols inside strings;
- added highlighting for trailing-space errors (triggered by new
  option: python_highlight_space_errors);
- added highlighting for variable name errors;
- added highlighting for hex number errors;
python.vim 2.5.1 2005-03-13 6.0 Dmitry Vasiliev - added new builtins 'all' and 'any' (Python 2.5a0)
python.vim 2.4.2 2004-08-05 6.0 Dmitry Vasiliev - added highlighting for new @decorator syntax introduced in Python 2.4a2
python.vim 2.4.1 2004-03-17 6.0 Dmitry Vasiliev - new versioning scheme (based on python version numbers);
- added highlighting for new types/builtins introduced in python 2.4
   (set, frozenset, reversed, sorted);
- new option added: python_slow_sync (set this for slow but more
  robust syntax synchronization);
- added highlighting for doctests;
python.vim 1.19 2003-10-17 6.0 Dmitry Vasiliev - new option added: python_highlight_indent_errors;
- python_highlight_all now not override previously
  set options, for example code
      let python_highlight_indent_errors = 0
      let python_highlight_all = 1
  set all highlight options except indentation
  errors highlighting option;
python.vim 1.17 2003-10-13 6.0 Dmitry Vasiliev Initial upload
ip used for rating: 34.204.52.16

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
   
Vim at Github