Expand tabs to spaces in vim only in python files?

Question:

How do I have the tab key insert 4 spaces when I’m editing “*.py” files and not any other files?

Following a recommendation from Vim and PEP 8 — Style Guide for Python Code, I installed vim-flake8 (and vim-pathogen). This gives warnings when PEP8 style guidelines are violated. This is great, but I would for tabs to be expanded automatically in the first place when editing python files. I would like to have tab key actually insert tabs when editing other types of files.

In other words, I want the following to apply when I’m editing python files and only python files:

set expandtab       " tabs are converted to spaces
set tabstop=4       " numbers of spaces of tab character
set shiftwidth=4    " numbers of spaces to (auto)indent
Asked By: Jonathan

||

Answers:

autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4

Or even shorter:

au Filetype python setl et ts=4 sw=4
Answered By: Vlad the Impala
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.