python3和vim的缩进问题

时间:2018-05-16 02:27:29

标签: python vim ubuntu-16.04

我的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。如何修复缩进错误?

2 个答案:

答案 0 :(得分:5)

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

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

你可能会看到一些混合,其中一些行使用制表符()而其他行使用空格(··),这是python中不允许的。

我建议你设置你的vim配置,以便它自动将标签切换到python中的空格。也许是这样的?

autocmd Filetype python setlocal ts=4 sw=4 sts=0 expandtab

答案 1 :(得分:4)

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

set tabstop=4

每次输入标签时,vim都会使用4个空格。

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

:retab