Vim:在Python源文件中获取自动缩进,但不获取智能缩进

Vim:在Python源文件中获取自动缩进,但不获取智能缩进,python,vim,Python,Vim,我如何配置vim以获得autoindent,即新行自动缩进到与前一行相同的深度,而不是smartindent(或cindent?),其中在行后插入额外的选项卡 以“:”结尾 我习惯于在编写Python(和C)时键入def(x):…, 因此,使用smartindent方法(或循环)中的第一行 结果是“双标签”(一个来自智能缩进,一个来自我按tab键) 关闭特定文件类型的自动缩进的说明将关闭自动缩进。我可以得到修改当前文件(同一页)的说明;显然:setlocal indentexpr=是关键,但当我

我如何配置
vim
以获得
autoindent
,即新行自动缩进到与前一行相同的深度,而不是
smartindent
(或
cindent
?),其中在行后插入额外的选项卡 以“:”结尾

我习惯于在编写Python(和C)时键入
def(x):…
, 因此,使用
smartindent
方法(或循环)中的第一行 结果是“双标签”(一个来自智能缩进,一个来自我按tab键)


关闭特定文件类型的自动缩进的说明将关闭自动缩进。我可以得到修改当前文件(同一页)的说明;显然
:setlocal indentexpr=
是关键,但当我在
中尝试执行类似的命令时,
设置…
。vimrc
我再次打破了自动缩进。

作为旁白:我被告知如果你喜欢(看起来不像你喜欢),我应该使用
'cindent'
而不是
'smartindent'


在python文件中,缩进是通过
'indentexpr'
配置的,该缩进设置为
GetPythonIndent(v:lnum)
$VIMRUNTIME/indent/python.vim
中(如果您在vimrc中启用了
文件类型插件缩进)。如果使用
setlocalindentexpr=
删除该缓冲区,则不会得到该缓冲区的缩进

在插入模式下按
时,您可能希望禁用额外缩进。您可以使用
:set indentkeys-=o
实现这一点

有关更多选项,请参见
:帮助cinkeys格式化
。它也绝对值得一读。
:帮助'cinkeys'
更好地理解
'indentexpr'
'indentkeys'
以及
'cindent'
如何操作



如果你需要进一步的帮助,我很乐意修改我的答案;我不确定您是否可以在

之后关闭AUTDINDENT,我想您要求的只是添加

set autoindent nosmartindent nocindent
到$HOME/.vim/indent/python.vim文件,根据文章中包含的链接创建