如何在使用formatprg=autopep8时设置正确的缩进?

3 投票
1 回答
832 浏览
提问于 2025-04-18 11:18

在下面这个选项设置下:

setlocal formatprg=autopep8\ -aa\ -

当我在可视模式下选择一行,然后按下 gq 时,autopep8 会对这一行进行修改,但它还会改变这一行的缩进:无论这一行原本的缩进是多少,它都会默认设置为4个空格。我希望它能认为这些行的缩进是正确的,因此不去改动它们。

同样,如果我为 autopep8 设置 --indent-size 8 这个选项,它就会把行的缩进推到8个空格。需要注意的是,如果可视选择的范围足够大,能够包含顶层的缩进(也就是没有缩进的地方),那么所有内容的缩进都是正确的。但我通常在提交之前会选择较小的代码块。

1 个回答

6

你需要加上 --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\ -

撰写回答