Краткий ответ: вы должны поместить этот файл в каталог ~/.vim/plugin, а не в каталог ~/.vim/ftplugin. Если вы сделаете это, не имеет значения, каково базовое имя файла, но суффикс должен быть «.vim».
Согласно заголовку вашего файла, он может быть получен в любое время и не повлияет ни на какие файлы, кроме файлов Python. Поэтому можно безопасно поместить файл в каталог ~/.vim/plugin, куда он будет поступать при каждом запуске Vim.
Есть три причины, по которым размещение py.vimrc в каталоге ~/.vim/ftplugin не работает. Во-первых, суффикс должен быть ".vim". Во-вторых, базовое имя файла должно совпадать с именем Vim для типа файла. Для Python тип файла "python". Поэтому имя подключаемого модуля типа файла для Python должно быть «python.vim». Третья причина заключается в том, что автокоманды в этом файле читаются при получении файла, что происходит при открытии исходного файла Python (если все остальное было правильным). Их команды готовы к выполнению при следующем открытии файла Python.
Наконец, не изменяйте настройку tabstop на 4. Даже если вы используете отступ 4, установите для параметра shiftwidth значение 4 и, возможно, для softtabstop значение 4, но оставьте значение tabstop равным 8. Причина в том, что в последний раз, когда я проверял, интерпретатор Python предполагает, что табуляция равна 8 Если вы осторожны и последовательны, вы можете избежать использования других значений табуляции, но я думаю, что это рискованно.