自动缩进不适用于 Python 的 "with"

Auto-indent not working on Python's "with"

我在 Ubuntu 16.04 上使用 VIM 7.4,并且正在为 Python 3.5 编码。

在编写 Python 文件 (.py) 时,缩进效果很好,但 with 语句除外。也就是说,我可以重新映射 tab 以缩进四个空格,VIM 在冒号后自动缩进四个空格 (:),等等。

但是当涉及到 with ... as 语法时,它无法缩进换行符。

视觉示例:

if x == 12:

然后 tab 导致缩进换行,但是

with open("test.txt", 'r') as file:

然后 tab 结果出现在未缩进的换行符上。

我检查了很多问题,我不会 link 因为它们太多了,但这里是我尝试过的一些东西:

它几乎是空的,所以我怀疑它是否有用,但这是我的 .vimrc:

set nocompatible
set autoindent
set smartindent
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
inoremap <S-Tab> <C-d>

我如何修复 VIM 以便它识别 with...as 并在此之后换行缩进?

解决方案确实在filetype indent on命令中。

出于某种原因,在 VIM 解释器中键入它不会执行任何操作。因此,有人可能会认为这不是解决此问题的方法。

但是,将以下行添加到 .vimrc 有效地解决了问题:

filetype indent on