自动缩进不适用于 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 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
我在 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 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