Vim上下文突出显示

时间:2013-02-15 22:05:41

标签: vim ide editor syntax-highlighting highlighting

我认为标准突出显示在某种程度上是有用的。使用回调和嵌套结构进行编程时,这没有用。关键字和字符串,它们随处可见,当它们以不同的颜色显示时会有所帮助,但这些颜色并不能说明我在哪个范围内,我处于词汇的立场。

在Douglas Crockford的演讲中,我听说过上下文突出显示,我记不起来了。这个想法是为了突出范围的词汇水平。 Toplevel定义以 color0 着色,内层块语句以 color1 着色,每次引入新的范围时,都会递归重复。下面是一个使用一些虚构节点库的例子。 (现在添加了一个(ish(或方案lisp))示例)

Example. Pseudo Scheme Multi-Paren Example

这不一定适用于节点或javascript。我想知道是否有一个编辑器/ vim插件实现这种功能。我不知道上下文突出显示是否是这个词,但我不能只找到一个。谷歌搜索上下文突出显示基于通用令牌的突出显示和ConTeXt的结果(我没有任何线索)。

这是否存在?是否有编辑器实现此功能?更重要的是,我可以在vim中使用它吗?

另一个与我的相同的问题,没有真正的答案:Is Crockford style Context Coloring implemented in any code editor?

3 个答案:

答案 0 :(得分:2)

我也找不到类似的东西,所以我写了一篇:

rainbow_levels.vim:一种不同的代码突出显示方法。

当然这是一个非常简单的实现,只考虑缩进级别而不是真实的上下文,但它完成了工作; D

答案 1 :(得分:1)

不完全是您的要求,但代码折叠是一项功能强大的功能,可让您专注于代码的特定级别。 Vim支持折叠http://vim.wikia.com/wiki/Folding

Indention指南也非常方便,专注于代码的特定部分。 sublime文本编辑器具有此(http://sublimetext.userecho.com/topic/98136-indent-guide-highlighting-changed/

我看到vim(https://github.com/nathanaelkane/vim-indent-guides)的这个插件似乎做了同样的事情。

您可以创建一个语法高亮显示器,它使用此插件的缩进逻辑来更改颜色方案。你所描述的内容更多地涉及它不仅仅需要工作,而是像语言解析器一样工作。

答案 2 :(得分:0)

VIM现在有一个名为vim-js-context-coloring的插件。我只是玩了一点,并没有给我留下太深刻的印象,但看起来很有希望!

注意:您需要安装npm,然后在安装插件的目录中运行npm install。遗憾的是,我在安装时忘了阅读说明书。