Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 蟒蛇_Python_Vim_Indentation - Fatal编程技术网

Python 蟒蛇

Python 蟒蛇,python,vim,indentation,Python,Vim,Indentation,我看到有类似的标题。但我的情况似乎有点奇怪。我不知何故混合使用了PyCharm和Vim(在Vim中,我有tabstop=4和shiftwidth=2),我的Python代码似乎是不可修复的,缩进方面的。我第一次看到在Vim中,所有的东西都不对齐,所以我重新对齐了所有的东西;但当我运行它时,我得到一个错误,即有一个意外的缩进,即使在Vim中,所有内容看起来都完全对齐。下面是一个示例(这是Vim中的情况): 当我运行它时,我得到: File "getEsSynonymLSAVectors.py",

我看到有类似的标题。但我的情况似乎有点奇怪。我不知何故混合使用了PyCharm和Vim(在Vim中,我有tabstop=4和shiftwidth=2),我的Python代码似乎是不可修复的,缩进方面的。我第一次看到在Vim中,所有的东西都不对齐,所以我重新对齐了所有的东西;但当我运行它时,我得到一个错误,即有一个意外的缩进,即使在Vim中,所有内容看起来都完全对齐。下面是一个示例(这是Vim中的情况):

当我运行它时,我得到:

File "getEsSynonymLSAVectors.py", line 136
    items = items[2:]
    ^
IndentationError: unexpected indent

我使用了,我使用了
reindent
,我尝试了
:retab
,我尝试了手动重新对齐-似乎没有什么可以解决这个问题。任何经验/建议都将不胜感激。

Python默认情况下将选项卡视为8个空格,如果缩进出现问题,通常会希望将选项卡切换到空格(反之亦然,但我通常发现空格更容易处理)。所以确保将vim设置为显示8个空格宽的选项卡(
:set ts=8
),以查看python看到的内容

为了修复vim中的选项卡错误,我通常会执行以下操作,首先我需要能够看到选项卡,因此我启用了高亮显示搜索(
:set hlsearch
)和搜索选项卡(
/\t
)。然后我盯着需要重新涂抹的区域。接下来,我尝试为文件找到正确的vim选项卡宽度设置(
:set ts=n
并改变
n
,直到一切正常),启用展开选项卡(
:set et
),然后运行自动选项卡固定(
:retab
)。当所有其他操作都失败时,请手动重新启动


如果您使用的是版本控制,请确保在更改之前与文件区分开来,并手动检查是否由于缩进级别的意外更改而引入错误。如果不使用版本控制,请保留备份并对文件运行diff

试试这样的东西

首先设置适当的设置。 始终使用4个空格。因此,将其更改为tabs=4个空格

首先,将所有空格转换为制表符。 然后将所有选项卡转换为空格。 (我使用Geany)


我以前使用过很多次。

你能将文件上传到任何地方吗?你发布(复制和粘贴)的代码对我来说没有问题。在vim中,确保你设置了
expandtab
。另外,使用
-tt
运行Python。如果它没有报告错误,那么查看文件的hextump-它可能是错误处理的Unicode空格或不可见字符;显然,问题在于我的Vim设置。我试图创建一个要点,它清楚地显示了错误对齐(在Vim中显示完全对齐的内容)。我尝试了-tt选项,它显示了不一致的空格和制表符(但是在一行之前,它报告了一个错误)。我想最好的办法就是打开文件,在旁边打开另一个空文件,然后重新键入?
File "getEsSynonymLSAVectors.py", line 136
    items = items[2:]
    ^
IndentationError: unexpected indent