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文件,根据文章中包含的链接创建