python3 和 vim 的缩进问题[重复]

问题描述 投票:0回答:2

我的 python 文件示例是

def __init__(self, csvFile, chunksize=10000):
        self.newName = csvFile[:-4]
        import ipdb; ipdb.set_trace()
        self.csvFile=csvFile
        self.chunksize=int(chunksize)
        self.headers_without_timestamp = header_without_timestamp 

        self.total_rows = 0
        self.username=username
        self.password=password
        self.dbname="data"

而且写得很好。

我有一个小错误,但我无法修复它。当我运行命令

python3 Final_Fast_Version_Waqar.py ~/home/Data/DCIX_OB.csv 1000 7
时,我得到了

  File "Final_Fast_Version_Waqar.py", line 37
    import ipdb; ipdb.set_trace()
                                ^
TabError: inconsistent use of tabs and spaces in indentation

我猜这是与vim编辑器有关的问题,因为我最近搭建了Ubuntu服务器并安装了vim。如何修复缩进错误?

python vim ubuntu-16.04
2个回答
9
投票

由于 Python 对缩进敏感,因此最好将编辑器配置为使用空格而不是制表符。对于 vim,您可以将其添加到您的

.vimrc

set tabstop=4

每次输入 tab,vim 都会使用 4 个空格。

此外,要修复当前文件的缩进,请键入:

:retab

6
投票

在 vim 中打开空白字符以查看发生了什么可能会有所帮助。

:set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:·

您可能会看到一些行使用制表符 (

) 而其他行使用空格 (
··
) 的混合,这是 Python 中不允许的。

我建议设置你的 vim 配置,以便它在 python 中自动将制表符切换到空格。也许类似?

autocmd Filetype python setlocal ts=4 sw=4 sts=0 expandtab
© www.soinside.com 2019 - 2024. All rights reserved.