编辑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
没有任何区别(问题仍然存在),因此它与兼容/非兼容模式有关。
答案 0 :(得分:3)
您想要的选项是
set paste
将以原始方式粘贴您想要的内容。