我正在编写一个插件,需要检查突出显示属性(粗体、斜体、 下划线等)实际上是可以在终端上显示的。 我试图用termcap检查它。例如下划线,
!empty(&t_us) && !empty(&t_ue)
在 xterm 上变为 TRUE,并可显示。
但是,
在 win32 上变为 TRUE,但不可显示。
在 nvim 上变为 FALSE,但可显示。
有人可以有一个好主意来正确检查它吗?
突出显示颜色和属性应该可以由用户控制; 这就是为什么我们通过配色方案形式的:highlight
组和捆绑包进行间接处理。
也就是说,对于像HTML标签这样的所见即所得渲染,大多数用户可能希望斜体呈现为斜体(等等......
因此,我建议将其配置为可配置的(通常通过:highlight default ...
,以便用户可以覆盖它,或者通过g:pluginname_attributesForBlah
如果这会导致用户重复太多)。您仍然可以使用启发式方法(基于术语帽信息或$TERM
)来提供良好的配置默认值。这为大多数插件用户(在通用平台和终端上)提供了舒适的默认值,但仍允许针对特殊情况或有特殊需求的用户(例如,无法很好地阅读低对比度或斜体的视觉障碍)进行调整。