macVim:python中的行继续创建不必要的标签?

时间:2013-11-01 00:15:54

标签: python vim macvim

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

a = one,\
        two,\
        three

而不是:

a = one,\
    two,\
    three

我已经通过help进行了搜索,并且无法找到导致macVim在使用行继续时附加额外标签的确切原因。

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

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

2 个答案:

答案 0 :(得分:2)

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

确保你有

filetype plugin indent on 

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

使用2而不是4

set ts=2 sts=2 sw=2 noexpandtab

答案 1 :(得分:1)

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

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

这些设置符合“Python代码样式指南”中的建议,称为 PEP 8 ,并且在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