在编辑 Python 代码时,我很难使用 vim智能缩进 vim 功能。一般来说,我喜欢:set nocompatible
vim 中的选项,以及:set autoindent
(and/or :set smartindent
)。一切都很好,除了一个非常烦人的行为。假设您编写了一些代码,然后想插入您从其他地方获取的 Python 代码片段。python 代码片段可能包含注释,例如
# comment1
a=1
# comment2
b=1
在 vim 中,当您进入插入模式(例如键入o)并粘贴代码时,vim 会做太多缩进代码的工作,而不是您的代码片段
# comment1
# a=1
# # comment2
# b=1
因此它会在第一条评论之后插入额外的评论(井号)并将其保留给代码片段的其余部分。现在想象一下你有很长的代码片段,不同的标识,你可以想象你的粘贴操作看起来有多丑(代码将被不正确的缩进和注释)。
有什么办法可以解决吗?
我解决问题的唯一方法是将 vim 兼容模式与noautoindent
选项一起设置,然后粘贴代码片段。这样做会正确插入(原样)。nocompatible
但是在模式( vs )之间切换compatible
太多了(叫我懒惰,但它应该是一种在nocompatible
模式中正确插入带有注释的片段的方法)。设置模式没有任何区别(问题仍然存在)noautoindent
,所以它与兼容/不兼容模式有关。nocompatilbe