python-mode 0,0,0,1,0,12,2,1 travis-ci ruby

Vim python-mode. PyLint, Rope, Pydoc, breakpoints from box.

|logo| Python-mode, Python in VIM #################################

.. image:: https://travis-ci.org/klen/python-mode.png?branch=develop :target: https://travis-ci.org/klen/python-mode


The project needs contributors

** Python-mode Slack Channel is here: https://python-mode.herokuapp.com/ **


| | Src: https://github.com/klen/python-mode | Homepage: https://klen.github.io/python-mode/ | Docs: https://github.com/klen/python-mode/blob/develop/doc/pymode.txt |

Python-mode is a vim plugin that helps you to create python code very quickly by utilizing libraries including pylint, rope, pydoc, pyflakes, pep8, autopep8, pep257_ and mccabe_ for features like static analysis, refactoring, folding, completion, documentation, and more.

The plugin contains all you need to develop python applications in Vim.

There is no need to install pylint, rope or any other Python Libraries_ on your system.

  • Support Python version 2.6+ and 3.2+
  • Syntax highlighting
  • Virtualenv support
  • Run python code (<leader>r)
  • Add/remove breakpoints (<leader>b)
  • Improved Python indentation
  • Python folding
  • Python motions and operators (]], 3[[, ]]M, vaC, viM, daC, ciM, …)
  • Code checking (pylint, pyflakes, pylama_, …) that can be run simultaneously (:PymodeLint)
  • Autofix PEP8 errors (:PymodeLintAuto)
  • Search in python documentation (K)
  • Code refactoring (rope_)
  • Strong code completion (rope_)
  • Go to definition (<C-c>g for :RopeGotoDefinition)
  • And more, more …

See (very old) screencast here: http://www.youtube.com/watch?v=67OZNp9Z0CQ (sorry for quality, this is my first screencast) Another old presentation here: http://www.youtube.com/watch?v=YhqsjUUHj6g

To read python-mode documentation in Vim, see :help pymode

.. contents::

Requirements

  • VIM >= 7.3 (mostly features needed +python or +python3 support) (also --with-features=big if you want g:pymode_lint_signs)

How to install

Using pathogen (recommended)

::

% cd ~/.vim
% mkdir -p bundle && cd bundle
% git clone https://github.com/klen/python-mode.git
  • Enable pathogen <https://github.com/tpope/vim-pathogen>_ in your ~/.vimrc: ::

    ” Pathogen load filetype off

    call pathogen#infect() call pathogen#helptags()

    filetype plugin indent on syntax on

Manually

::

% git clone https://github.com/klen/python-mode.git
% cd python-mode
% cp -R * ~/.vim

Then rebuild helptags in vim::

:helptags ~/.vim/doc/

.. note:: filetype-plugin (:help filetype-plugin-on) and filetype-indent (:help filetype-indent-on) must be enabled to use python-mode.

Debian packages

|Repository URL: https://klen.github.io/python-mode/deb/

Install with commands:

::

 add-apt-repository https://klen.github.io/python-mode/deb main
 apt-get update
 apt-get install vim-python-mode

If you are getting the message: “The following signatures couldn’t be verified because the public key is not available”: ::

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B5DF65307000E266

vim-python-mode using vim-addons, so after installation just enable python-mode with command: ::

vim-addons install python-mode

Troubleshooting

If your python-mode doesn’t work:

  1. Load Vim with only python-mode enabled (use debug.vim from pymode): ::

    vim -u /debug.vim

And try to repeat your case. If no error occurs, seems like problem isn’t in the plugin.

  1. Type :PymodeTroubleshooting

And fix any warnings or copy the output and send it to me. (For example, by creating a new github issue <https://github.com/klen/python-mode/issues/new>_ if one does not already exist for the problem).

Customization

You can override the default key bindings by redefining them in your .vimrc, for example: ::

" Override go-to.definition key shortcut to Ctrl-]
let g:pymode_rope_goto_definition_bind = "<C-]>"

" Override run current python file key shortcut to Ctrl-Shift-e
let g:pymode_run_bind = "<C-S-e>"

" Override view python doc key shortcut to Ctrl-Shift-d
let g:pymode_doc_bind = "<C-S-d>"

Frequent Problems

Read this section before opening an issue on the tracker.

Python 3 Syntax

By default python-mode uses python 2 syntax checking. To enable python 3 syntax checking (e.g. for async) add::

let g:pymode_python = 'python3'

To your vimrc or exrc file

Documentation

Documentation is available in your vim :help pymode

Bugtracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/python-mode/issues

Contributing

Also see the AUTHORS file.

Development of python-mode happens at github: https://github.com/klen/python-mode

Please make a pull request to development branch and add yourself to AUTHORS.

Source Links

  • doc/pymode.txt <https://github.com/klen/python-mode/blob/develop/doc/pymode.txt>__ – :help pymode
  • plugin/pymode.vim <https://github.com/klen/python-mode/blob/develop/plugin/pymode.vim>__ – python-mode VIM plugin
  • syntax/python.vim <https://github.com/klen/python-mode/blob/develop/syntax/python.vim>__ – python-mode python.vim VIM syntax
  • syntax/pyrex.vim <https://github.com/klen/python-mode/blob/develop/syntax/pyrex.vim>__ – pyrex.vim VIM syntax (pyrex, Cython)
  • t/ <https://github.com/klen/python-mode/tree/develop/t>__ – *.vim more python-mode VIM configuration
  • pymode/ <https://github.com/klen/python-mode/tree/develop/pymode>__ – *.py – python-mode Python module
  • pymode/libs/ <https://github.com/klen/python-mode/tree/develop/pymode/libs>__ – *.pyPython Libraries <#python-libraries>__

Python Libraries

Vendored Python modules are located mostly in pymode/libs/ <https://github.com/klen/python-mode/tree/develop/pymode/libs>__.

======

rope

| PyPI: https://pypi.python.org/pypi/rope | Src: https://github.com/python-rope/rope | Docs: https://github.com/python-rope/rope/blob/master/docs/overview.rst | Docs: https://github.com/python-rope/rope/blob/master/docs/library.rst

========================

ropemode

| PyPI: https://pypi.python.org/pypi/ropemode | Src: https://github.com/python-rope/ropemode

=========

ropevim

| PyPI: https://pypi.python.org/pypi/ropevim | Src: https://github.com/python-rope/ropevim | Docs: https://github.com/python-rope/ropevim/blob/master/doc/ropevim.txt

=======

pylama

| PyPI: https://pypi.python.org/pypi/pylama | Src: https://github.com/klen/pylama

========

pylint

| PyPI: https://pypi.python.org/pypi/pylint | Src: https://bitbucket.org/logilab/pylint | Homepage: http://www.pylint.org/ | Docs: http://docs.pylint.org/ | Docs: http://docs.pylint.org/message-control.html | Docs: http://docs.pylint.org/faq.html#message-control | ErrCodes: http://pylint-messages.wikidot.com/all-codes | ErrCodes: http://pylint-messages.wikidot.com/all-messages

==========

pyflakes

| PyPI: https://pypi.python.org/pypi/pyflakes | Src: https://github.com/pyflakes/pyflakes | ErrCodes: https://flake8.readthedocs.org/en/latest/warnings.html

======

pep8

| PyPI: https://pypi.python.org/pypi/pep8 | Src: http://github.com/jcrocholl/pep8 | PEP 8: http://www.python.org/dev/peps/pep-0008/ | PEP 8: http://legacy.python.org/dev/peps/pep-0008/ | Docs: https://pep8.readthedocs.org/en/latest/ | Docs: https://pep8.readthedocs.org/en/latest/intro.html#configuration | ErrCodes: https://pep8.readthedocs.org/en/latest/intro.html#error-codes

=========

autopep8

| PyPI: https://pypi.python.org/pypi/autopep8 | Src: https://github.com/hhatto/autopep8

=======

pep257

| PyPI: https://pypi.python.org/pypi/pep257 | Src: http://github.com/GreenSteam/pep257 | Docs: https://pep257.readthedocs.org/en/latest/ | PEP 257: http://www.python.org/dev/peps/pep-0257/ | ErrCodes: https://pep257.readthedocs.org/en/latest/error_codes.html

=======

mccabe

| PyPI: https://pypi.python.org/pypi/mccabe | Src: https://github.com/flintwork/mccabe | Docs: https://en.wikipedia.org/wiki/Cyclomatic_complexity

Vim Libraries

Vendored Vim modules are located mostly in t/.

======================

Python syntax for vim

| Src: http://www.hlabs.spb.ru/vim/python.vim

=====================

PEP8 VIM indentation

| Src: http://github.com/hynek/vim-python-pep8-indent

Copyright

Copyright © 2013-2015 Kirill Klenov (klen_)

License

Licensed under a GNU lesser general public license_.

If you like this plugin, I would very appreciated if you kindly send me a postcard :) My address is here: “Russia, 143500, MO, Istra, pos. Severny 8-3” to “Kirill Klenov”. Thanks for support!

.. _GNU lesser general public license: http://www.gnu.org/copyleft/lesser.html .. _klen: https://klen.github.com/ .. _pydoc: http://docs.python.org/library/pydoc.html .. _pathogen: https://github.com/tpope/vim-pathogen .. rope: https://pypi.python.org/pypi/rope .. pylama: https://github.com/klen/pylama .. pylint: https://bitbucket.org/logilab/pylint .. pyflakes: https://pypi.python.org/pypi/pyflakes .. autopep8: https://github.com/hhatto/autopep8 .. pep257: http://github.com/GreenSteam/pep257 .. mccabe: https://github.com/flintwork/mccabe .. _pythonvim: http://www.hlabs.spb.ru/vim/python.vim .. pep8: http://github.com/jcrocholl/pep8 .. _pep8indent: http://github.com/hynek/vim-python-pep8-indent .. |logo| image:: https://raw.github.com/klen/python-mode/develop/logo.png

Related Repositories

python-mode

python-mode

Vim python-mode. PyLint, Rope, Pydoc, breakpoints from box. ...

anaconda-mode

anaconda-mode

Code navigation, documentation lookup and completion for Python. ...

ropevim

ropevim

vim mode that uses rope library to provide features like python refactorings and code-assists ...

pylookup

pylookup

Emacs mode for searching python documents with convenience ...

ropemacs

ropemacs

emacs mode that uses rope library to provide features like python refactorings and code-assists ...


Top Contributors

klen wilywampa s0undt3ch alvinfrancis blueyed lawrenceakka andriykohut codito lodagro tramchamploo westurner frenzykryger bruston dkasak jgosmann jawrainey krader1961 mjperrone Ram-Z sjl TFenby nvie anler nixon bmease korzeniewskipl brendanmaguire csdrane Cu3PO42 dmsul

Releases

-   0.8.1 zip tar
-   0.8.0 zip tar
-   0.7.8b zip tar
-   0.7.7b zip tar
-   0.7.6b zip tar
-   0.7.5b zip tar
-   0.7.4b zip tar
-   0.7.3b zip tar
-   0.7.2b zip tar
-   0.7.1b zip tar
-   0.7.0b zip tar
-   0.6.19 zip tar
-   0.6.18 zip tar
-   0.6.17 zip tar
-   0.6.16 zip tar
-   0.6.15 zip tar
-   0.6.14 zip tar
-   0.6.13 zip tar
-   0.6.12 zip tar
-   0.6.11 zip tar
-   0.6.10 zip tar
-   0.6.9 zip tar
-   0.6.8 zip tar
-   0.6.7 zip tar
-   0.6.6 zip tar
-   0.6.5 zip tar
-   0.6.4 zip tar
-   0.6.3 zip tar
-   0.6.2 zip tar
-   0.6.1 zip tar