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