【问题标题】:Solarized differences between Vim and Emacs [closed]Vim 和 Emacs 之间的曝光差异 [关闭]
【发布时间】:2012-11-30 19:36:25
【问题描述】:

我知道已经有很多 Vim/Emacs 和 Solarized 问题,所以我有点犹豫要不要再添加一个,但我似乎找不到任何可以解决这个确切问题的问题。

问题是当两个编辑器都设置为使用 solarized-dark 主题时,同一个文件在 Vim 中与在 Emacs 中看起来非常不同。我不知道这是 Solarized 的问题还是仅仅是 Vim 和 Emacs 之间的根本区别。

这是我正在使用的:

为了让 Emacs 正确显示背景颜色,我必须将 TERM 显式设置为 xterm-16color。但是,无论我是在终端还是在它们各自的 GUI 中运行编辑器(没有 -nw 标志的 gvim 和 emacs),颜色看起来都完全相同。

这是一个屏幕截图,左边是 Vim,右边是 Emacs:

larger version

最终,我想让 Emacs 颜色看起来与 Vim 颜色完全一样。这可能吗?如果是这样,是否需要调整 Emacs 版本的配色方案?或者,这只是两个编辑器之间无法改变的根本区别?

【问题讨论】:

    标签: vim emacs color-scheme


    【解决方案1】:

    我不是用 Ruby 编写的,但我从 Emacs 处理这种情况的一般方式是这样的:

    • 将点移到您认为未正确绘制的单词,然后 M-xcustomize-face 这将使用点下的面名称自动填充迷你缓冲区,一旦您按下RET 将打开一个自定义缓冲区,您可以在其中更改面部的渲染方式。看起来至少可以通过这种方式消除一些差异。

    • 主要的编辑模式通常将面孔(通常来自字体锁定品种)与目标语言中的某个词汇组相关联。您需要调查哪些选项以及 Ruby 模式如何准确地将面分配给语言的语法元素。可能对人脸的全局调整过于极端(可能也会影响其他模式),因此如果您可以调整 Ruby 模式,仅将不同的语法组与不修改人脸的人脸相关联,那将是首选。

    • 您可以调查装饰级别。 Emacs 中的语言模式通常使用字体锁定模式来绘制文本,某些模式提供或多或少的颜色,具体取决于级别。更多信息在这里:http://www.gnu.org/software/emacs/manual/html_node/elisp/Levels-of-Font-Lock.html

    • 也有可能是 Ruby 模式原本不强调您想要强调的某些字符(数字符号和引号)。如果这不能通过调整语法元素与面孔的关联而不是通过装饰级别来实现,那么您可以尝试向字体锁定模式添加更多关键字,如下所述:http://www.gnu.org/software/emacs/manual/html_node/emacs/Font-Lock.html

    • 您似乎还想以某种方式显示空白字符http://emacswiki.org/emacs/ShowWhiteSpace#toc7 这里有一些关于如何做到这一点的信息,它还有关于显示最大行长的边距的信息。

    • 您可以使用 M-xlinum 命令切换行号的显示。

    PS。还要注意 GUI 版本和终端版本可能有不同的配色方案。终端版本可能总体上使用较少的颜色,通常会争取更高的对比度,然后是 GUI。

    【讨论】:

      【解决方案2】:

      使用相同的 Solarized 颜色方案,您将在两个编辑器中获得相同的调色板(即一组选定的颜色)。仍然不同的是编辑器如何解析文件类型的语法(即检测到多少不同的语法元素),以及如何将解析的语法元素分组以突出显示组。

      Vim(我不能代表 Emacs)使用特定于文件类型的语法组(例如 vimCommand),然后将其链接到一组固定的高亮定义(本例中为 Statement)。颜色方案为这些定义提供颜色;可以在:help group-name 找到这些约定(但并非每个语法定义都必须完全遵守它们)。

      这对您意味着什么?您可以比较差异并(在 Vim 中)通过 :hi link ... 命令自定义映射,但对于您使用的每种文件类型来说,这是很多工作。它仍然取决于解析的工作方式。我猜你最终会决定选择一个编辑器。同时,我不会为这些差异而费心。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-03
        • 1970-01-01
        • 1970-01-01
        • 2014-01-23
        • 2010-09-05
        • 2011-06-24
        • 1970-01-01
        • 2015-04-02
        相关资源
        最近更新 更多