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
vim Whitespace Convert tabs to spaces and spaces to tabs If you enable expandtab again :set expandtab then and run the :retab! command then all the tabs becomes spaces. If you want to do this for selected text then first select the text in visual mode.
As for tabs, there are two settings. Within Vim, type a colon and then "set tabstop=4" which will set the tabs to display as four spaces. Hit colon again and type "set expandtab" which will insert spaces for tabs.
In Python, we can use escape sequences to represent some characters like newline, tab, and more. The escape sequence for tabs is \t . We will search a string for tabs and replace them with spaces.
autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4
Or even shorter:
au Filetype python setl et ts=4 sw=4
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With