如何检查终端上是否可以显示突出显示属性?

时间:2017-09-23 08:06:39

标签: vim terminal terminfo termcap

我正在编写插件,需要检查是否有突出显示属性(粗体,斜体, 下划线等等)实际上可以在终端上显示。 我试着用termcap来检查它。例如下划线,

!empty(&t_us) && !empty(&t_ue)

在xterm上变为TRUE,并且可显示 然而,
在win32上变为TRUE,但不可显示 在nvim上变为FALSE,但是可以显示。

有人可能有一个好主意正确检查吗?

1 个答案:

答案 0 :(得分:-1)

用户可以控制突出显示颜色和属性;这就是为什么我们通过:highlight组以及 colorschemes 形式的捆绑包进行间接的方式。

也就是说,对于像HTML标签那样的WYSIWYG渲染,大多数用户可能希望斜体呈现为斜体(依此类推......)

因此,我建议将其设置为可配置(典型地通过:highlight default ...,以便用户可以覆盖它,或者通过g:pluginname_attributesForBlah覆盖,如果这会导致用户过多重复)。您仍然可以使用您的启发式(基于termcap信息或$TERM)来提供良好的配置默认值。这为大多数插件用户(在通用平台和终端上)提供了一个舒适的默认设置,但仍允许针对特殊情况或有特殊需求的用户进行调整(例如,视觉残疾无法很好地读取低对比度或斜体)。