如何使文本换行符合vim中的当前缩进级别?

tal*_*osh 13 python vim word-wrap

有没有人知道如何让vim包装长行文本,使得包装文本的位置基于当前行的缩进?我不想重新格式化我的代码,只是为了让它显示得很漂亮.

例如,如果我将设置设置为以下行:

print 'ProcessorError(%r, %r, %r)' % (self.file, self.index, self.message)
Run Code Online (Sandbox Code Playgroud)

包装为:时显示:

print 'ProcessorError(%r, %r, %r)' % (self.file, self.index,
    self.message)
Run Code Online (Sandbox Code Playgroud)

那么如果我写一个像这样的代码块:

    def __repr__(self):
        return 'ProcessorError(%r, %r, %r)' % (self.file, self.index, self.message)
Run Code Online (Sandbox Code Playgroud)

它包装成这样的东西:

    def __repr__(self):
        return 'ProcessorError(%r, %r, %r)' % (self.file, self.index,
    self.message)
Run Code Online (Sandbox Code Playgroud)

我希望它显示为:

    def __repr__(self):
        return 'ProcessorError(%r, %r, %r)' % (self.file, self.index,
            self.message)
Run Code Online (Sandbox Code Playgroud)

编辑:在阅读了Don Werve的回复之后,似乎我确实在寻找breakindent选项,但该选项仍在"等待更新补丁"列表中(参见Vim TODO).所以我想知道的是让vim使用的最简单方法是什么breakindent?(我不在乎我必须使用什么版本的vim.)

ret*_*ile 7

在SuperUser上问了同样的问题,最终发现了这个问题,找到了补丁,并更新了补丁,以便与Fedora 11中的Vim 7.2.148一起使用.

您可以使用yumdownloader --source vim获取源RPM.然后在spec文件中添加Patch3312:一行和%patch3012 -p1一行,并构建rpm.


Don*_*rve 4

您正在寻找breakindent

您可能还想参考此线程