在vim中突出显示python代码块

8

我希望在vim中突出显示不同的缩进级别,以便更轻松地识别大块代码。我有一些相当大的嵌套for/while/with/try块,很难识别我所在的块,即光标前面有多少个“制表符”。

是否有一种方法可以突出显示制表符?

这就是我想要的效果:

try:
*   while True:
*   *   for foo in bar:
*   *   *   do()
*   if something:
*   *   done()
except bla:
*   exit()

在这里,*将是特殊的背景颜色。

我也可以接受任何其他识别缩进级别的方式。


1
强制性的讽刺评论:也许你应该尝试修复你的代码而不是编辑器。;-) 尽管如此,这是一个有趣的问题。我很好奇这实际上会是什么样子。 - Michael Kristofik
2个回答

8

缩进指南 vim 插件可以做到这种高亮。我和 Ackar 一样使用它,配合 listchars 选项。


哇,那个插件真的很酷。它比我预想的要不那么显眼。 - Michael Kristofik
@Kristo 我也使用它并且喜欢它,不幸的是,对于空格喜欢,它会失败,因为vim无法突出显示空格。 - puk

3

您可以使用listchars选项来显示特定的字符(请参见:help listchars)。

例如,如果您想显示制表符,可以使用以下内容:

:set listchars=tab:*\     " Be careful : there is a space after the backslash
:set list

你可以使用highlight属性来更改SpecialKey组的高亮颜色。
如果你在终端中使用vim:
:highlight SpecialKey ctermfg=Cyan

请查看:help highlight以获取更多信息。

您还可以检查:runtime syntax/colortest.vim以查看所有可用的颜色。


也许你还应该提一下如何设置listchars的高亮颜色。 - Niklas B.
1
虽然这个程序 完全 按照我的要求执行了,但对我来说并不起作用。我使用了 'expandtab' 选项,因此我的脚本中没有 'tab' 字符,只有空格。我不知道 list[chars],这是一个很好的提示。 - Rafael Barbosa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接