Как установить правильный отступ при использовании formatprg=autopep8?

#python #vim #pep8

#python #vim #pep8

Вопрос:

С установленным следующим параметром: setlocal formatprg=autopep8 -aa -

Когда я выбираю одну строку в визуальном режиме и нажимаю gq , autopep8 вносит свои изменения в строку, но также изменяет отступ строки: по умолчанию используется отступ в 4 пробела, независимо от текущего уровня отступа строки (строк). Я хочу предположить, что строки имеют правильный отступ, и поэтому оставить их в покое.

Аналогично, если я установлю --indent-size 8 переключатель для autopep8 него, он переместит строки на уровень отступа в 8 пробелов. Обратите внимание, что если визуальный выбор достаточно велик, чтобы охватить отступ верхнего уровня (т. Е. Там, Где отступа нет), все с отступом правильно. Но я склонен визуально выбирать меньшие блоки перед выполнением коммитов.

Ответ №1:

Вам нужно указать --indent-size 0 . Итак, у меня .vimrc есть эта строка:

 " Use gq to clean up code
" Indent to 0 because otherwise it pushes selected lines to the given
" indent-size, no matter the current indent level of the line.
au FileType python setlocal formatprg=autopep8 -aa --indent-size 0 -