vim适当缩进python片段

时间:2012-08-10 16:29:16

标签: python vim insert

编辑Python代码时,我很难使用vim 智能缩进vim功能。一般来说,我喜欢vim中的:set nocompatible选项,以及:set autoindent(和/或:set smartindent)。一切都很好,除了一个非常讨厌的行为。假设您编写了一些代码,然后想插入一个Python代码片段,您可以从其他地方获取代码片段。 python代码段可能包含注释,例如

# comment1
a=1
# comment2
b=1

在vim中,当您进入插入模式时,例如输入 o ,然后进行代码粘贴,vim会做多次缩进代码而不是你的代码片段

# comment1
# a=1
# # comment2
# b=1

所以它会在第一个评论后插入额外的评论(井号)并保留其余的代码片段。现在想象你有很长的代码片段和不同的身份识别,你可以想象你的粘贴动作看起来像丑陋(em代码将被错误地缩进和评论)。

有没有办法解决它?

解决问题的唯一方法是将vim兼容模式与noautoindent选项一起设置,然后粘贴代码段。这样做会将其插入正确(按原样)。但是在模式之间切换(nocompatible vs compatible)太多了(称我为懒惰,但它应该是一种在nocompatible模式下正确插入带注释的片段的方法)。在noautoindent模式下设置nocompatilbe没有任何区别(问题仍然存在),因此它与兼容/非兼容模式有关。

1 个答案:

答案 0 :(得分:3)

您想要的选项是

set paste

将以原始方式粘贴您想要的内容。