0

每当我想使用 macVim 在我的 python 脚本中使用续行时,我都会收到以下格式:

a = one,\
        two,\
        three

代替:

a = one,\
    two,\
    three

我已经浏览help了一遍,但无法找到导致 macVim 在使用续行时附加一个额外选项卡的确切原因。

注意:我的 .vimrc 文件中目前有以下内容:

set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
4

2 回答 2

2

您将标签设置为 4 而不是 2

确保你有

filetype plugin indent on 

您还可以使用 .vimrc 中的内容作为默认值的单行符,而不是将它们添加到单独的行中

使用 2 而不是 4

set ts=2 sts=2 sw=2 noexpandtab
于 2013-11-01T00:39:03.913 回答
1

你的设置几乎没问题。在 Python 代码中,选项卡设置应始终

:set tabstop=8 shiftwidth=4 softtabstop=4 expandtab

这些设置遵循称为PEP 8的“Python 代码样式指南”中的建议,并且在 Python 代码中普遍遵循。坚持这些设置,或者更好的是,设置一个自动设置它们的自动命令。在你的 vimrc 中:

autocmd FileType python setlocal ts=8 sw=4 sts=4 et

现在解决您的问题:这是由 Vim 的 Python 缩进脚本中的默认缩进规则引起的。幸运的是,这些规则可以自定义。在您的情况下,您只需要将以下行放在您的 vimrc 中。

let g:pyindent_continue = '&shiftwidth'

(在较新版本的 Vim 中,使用'shiftwidth()'代替 '&shiftwidth'.)

有关更多信息,请查找:h ft-python-indent

于 2013-11-01T11:57:34.997 回答