【问题标题】:Vim context highlightingVim 上下文高亮
【发布时间】:2013-01-31 23:38:06
【问题描述】:

我认为标准突出显示是有用的——在某种程度上。在使用回调和嵌套结构进行编程时,这无济于事。关键字和字符串,它们无处不在,当它们以不同的颜色显示时会有所帮助,但是这些颜色无法说明我在哪个范围内,从词汇的角度来看我在哪里。

我在 Douglas Crockford 的一次谈话中听说过上下文突出显示,但我记不起它的网址了。这个想法是,突出范围的词汇级别。顶级定义在 color0 中着色,内部级别块语句在 color1 中着色,并且每次引入新的范围级别时都会递归重复。下面是一个例子,使用了一些虚构的节点库。 (现在添加了一个(ish(或 scheme lisp))示例)

这不一定适用于 node 或 javascript。我想知道是否有实现这种功能的编辑器/vim 插件。我不知道 context highlighting 是不是这个词,但我不能只找到一个。谷歌搜索上下文突出显示会显示基于通用标记的突出显示和 ConTeXt(我对此一无所知)的结果。

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

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

【问题讨论】:

  • 我喜欢这个。 if & else 不是同一个级别,而它们各自的 {} 不是另一个级别吗?
  • 一般颜色的问题,尤其是你的颜色的问题在于,它们并没有真正具有可用于指示上下文的自然顺序。彩虹色可能是这种顺序的近似值,但它不适用于嵌套或渐变的想法,IMO。可以使用亮度,也许:光标周围变亮,随着我们离开而逐渐变暗。无论如何,这是一个有趣的想法。
  • 这是Douglas Cockroft talk on YouTube 的链接。他在 17:30 左右谈到了“上下文着色”。一个重要的区别是他的变量是根据声明它们的作用域来着色的,而不是它们出现的作用域。
  • @lazfish romainl 我只是试图说明想法。出于同样的原因,颜色只是随机选择的,我同意 romainl 的想法,尽管 IDK 亮度是什么。 lazfish IMO 为块绑定的实际关键字着色,使其更容易识别级别。 MatthewStrawbridge,非常感谢您的链接,我已经查找了一段时间。谢谢大家的cmets!
  • @G。卡亚尔普。 Link for ranbow parentheses

标签: vim ide editor syntax-highlighting highlighting


【解决方案1】:

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

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

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

你可以创建一个语法高亮,使用这个插件的缩进逻辑来改变配色方案。您所描述的内容更多地涉及它不仅需要在缩进之外工作,还需要像语言解析器一样工作。

【讨论】:

  • 感谢@hwatkins,但这并不能回答我的问题。但我同意最后一段。
【解决方案2】:

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

注意:需要安装npm,然后在安装插件的目录下运行npm install。很遗憾,安装的时候忘记看说明书了。

【讨论】:

    【解决方案3】:

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

    rainbow_levels.vim:代码高亮的另一种方法。

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

    【讨论】:

      猜你喜欢
      • 2011-12-30
      • 2017-12-20
      • 2013-07-17
      • 2012-08-16
      • 2012-02-03
      • 2014-11-14
      • 2020-04-08
      • 2012-04-18
      • 1970-01-01
      相关资源
      最近更新 更多