我在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