自动缩进在 Python 的"with"上不起作用



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

在编写Python文件(.py)时,除了with语句外,缩进都能很好地工作。也就是说,我可以将选项卡重新映射为缩进四个空格,VIM在冒号(:)后自动缩进四个空间,依此类推

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

视觉示例:

if x == 12:

选项卡在缩进的换行符上产生结果,但

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

选项卡产生一个未缩进的换行符。

我检查了很多问题,我不会链接,因为它们太多了,但以下是我尝试过的一些东西:

  • 在我的.vimrc中添加set autoindent
  • 在我的.vimrc中添加set smartindent
  • 在VIM的解释器中键入filetype indent on
  • 键入:set indentkeys?并检查冒号是否在列表中(它确实在)

它几乎是空的,所以我怀疑它是否有用,但这是我的.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

最新更新