【发布时间】:2026-01-06 09:35:01
【问题描述】:
我正在编写一个插件,需要检查一个突出显示属性(粗体、斜体、 下划线等)实际上可以在终端上显示。 我试图用termcap检查它。例如下划线,
!empty(&t_us) && !empty(&t_ue)
在 xterm 上变为 TRUE,并且可显示。
然而,
在 win32 上变为 TRUE,但无法显示。
在 nvim 上变为 FALSE,但可显示。
有人能有一个正确检查的好主意吗?
【问题讨论】:
-
用户可以并且经常通过设置
$TERM来欺骗 Vim,这并不能反映他们的终端仿真器的功能,因此单独依赖&t_xx肯定不是一个好主意。如果您希望您的功能可靠,您可能需要检查&t_xx和其他内容,如win32以及可能的其他环境变量。 -
即使这样也无济于事,因为没有实用的方法可以查看终端屏幕上的实际内容。
标签: vim terminal terminfo termcap