Python-mode – A Vim Plugin to Develop Python Applications in Vim Editor

Python-mode is a vim plugin that enables you to write Python code in Vim editor in a fast manner by utilizing libraries including pylint, rope, pydoc, pyflakes, pep8, autopep8, pep257 and mccabe for coding features such as static analysis, refactoring, folding, completion, documentation, and more.

Suggested Read: Bash-Support – A Vim Plugin That Converts Vim Editor to Bash-IDE

This plugin contains all the features that you can use to develop python applications in Vim editor.

Python-mode Features

It has the following notable features:

  • Support Python version 2.6+ and 3.2+.
  • Supports syntax highlighting.
  • Offers virtualenv support.
  • Supports python folding.
  • Offers enhanced python indentation.
  • Enables running of python code from within Vim.
  • Enables addition/removal of breakpoints.
  • Supports python motions and operators.
  • Enables code checking (pylint, pyflakes, pylama, …) that can be run simultaneouslyi>
  • Supports autofixing of PEP8 errors.
  • Allows searching in python documentation.
  • Supports code refactoring.
  • Supports strong code completion.
  • Supports going to definition.

In this tutorial, we will show you how to setup Vim to use Python-mode in Linux to develop Python applications in Vim editor.

How to Install Python-mode for Vim in Linux

Start by installing Pathogen (makes it super easy to install plugins and runtime files in their own private directories) for easy installation of Python-mode.

Run the commands below to get the pathogen.vim file and the directories it needs:

# mkdir -p ~/.vim/autoload ~/.vim/bundle && \
# curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

Then add the following lines below to your ~/.vimrc file:

execute pathogen#infect()
syntax on
filetype plugin indent on

Once you have installed pathogen, and you can now put Python-mode into ~/.vim/bundle as follows.

# cd ~/.vim/bundle 
# git clone https://github.com/klen/python-mode.git

Then rebuild helptags in vim like this.

:helptags

You need to enable filetype-plugin (:help filetype-plugin-on) and filetype-indent (:help filetype-indent-on) to use python-mode.

Install Python-mode in Debian and Ubuntu

Another way you can install python-mode in Debian and Ubuntu systems using PPA as shown.

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

If you you encounter the message: “The following signatures couldn’t be verified because the public key is not available”, run the command below:

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

Now enable python-mode using vim-addon-manager like so.

$ sudo apt install vim-addon-manager
$ vim-addons install python-mode

Customizing Python-mode in Linux

To override the default key bindings, redefine them in the .vimrc files, for instance:

" 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>"

Note that python-mode uses python 2 syntax checking by default. You can enable python 3 syntax checking by adding this in your .vimrc.

let g:pymode_python = 'python3'

You can find additional configuration options on the Python-mode Github Repository: https://github.com/python-mode/python-mode

That’s all for now! In this tutorial, we will show you how to integrate Vim to with Python-mode in Linux. Share your thoughts with us via the feedback form below.

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

5 Comments

Leave a Reply
  1. Hi!

    I follow this installation instruction, but whenever I edit a python file (vi filename.py), I got:

    An error was encountered while processing /home/pablo/.vim/bundle/python-mode/autoload/pymode/lint.vim:
    line 1
        from pylama.lint.extensions import LINTERS
    Press ENTER or enter an order to continue
    An error was encountered while processing /home/pablo/.vim/bundle/python-mode/autoload/pymode/lint.vim:
    line 1
    ModuleNotFoundError: No module named 'pylama'
    

    Can you give me any help, please!

    Bye,

    Pablo

    Reply
  2. Please add the following way to add this plugin via Vundle:

    If one already has Vundle installed, you can easily add the plugin in .vimrc file as shown.

    Plugin 'klen/python-mode'
    

    then open vim and run:

    :PluginInstall
    
    Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.