2

在编辑 Python 代码时,我很难使用 vim智能缩进 vim 功能。一般来说,我喜欢:set nocompatiblevim 中的选项,以及: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

4

1 回答 1

3

你想要的选项是

set paste

这会将您想要的内容粘贴为原始内容。

于 2012-08-10T16:31:45.247 回答