Vim 没有正确缩进 Python 块的第一行

Vim is not properly indenting the first line of Python blocks

我最近在我的 Windows 机器上安装了 Ubuntu 和 WSL。我只用它写了一些 Python 代码并将该代码推送到 GitHub.

我的问题是,在昨晚的某个时候,Vim 在开始后停止了自动缩进,例如一个for循环。如果我缩进一行然后按 Enter,下一行 缩进。

例如,如果我键入“for x in mylist:[Enter]print(x)”,我将看到的是

for x in mylist:
print(x)

而不是

for x in mylist:
  print(x)

我的 .vimrc 是

set number
hi Comment ctermfg=White
set ai
set softtabstop=2
set expandtab

:set ft? returns filetype=python

:filetype returns filetype detection:ON plugin:OFF indent:OFF.

filetype plugin indent on 没有解决我的问题。

我希望我在这里遗漏了什么。我发现很多人都有类似的问题,但我看到的最佳答案只是说如何检查某些设置是否已启用,而不是如果启用这些设置没有帮助怎么办。此外,none 的问题似乎与我的问题完全相同。谢谢。

缩进规则在收到 FileType 事件后处理。反过来,在 BufRead 事件上触发。因此,在打开文件之前必须有 filetype indent on。或者使用 :e:setf python 或其他任何方式手动重新应用事件。