vim - 捕获从 `job_start()` 显示的 `echon` 消息
问题描述
我正在为 Vim 插件编写一些测试,以确保某些行为正确完成。此插件echon
除了echohl
用于显示消息外。
是否有任何本机 VimScript 命令可以用来检测当前作为echon
消息的一部分显示的内容?
在早于 8 的 Vim 版本中,在异步支持之前,我能够echon
通过直接使用redir
和调用插件来捕获字符串。使用 Vim 8 并让插件job_start
与处理程序一起close_cb
使用echon
是异步完成的,我不再能够使用redir
.
echon
调用很简单:
redraw
let message = "Unable to parse output. If using a plugin that alters the default output, consider disabling it. See :Pytest session"
let length = strlen(message) + 1
hi YellowBar ctermfg=black ctermbg=yellow guibg=#e5e500 guifg=black
echohl YellowBar
echon message . repeat(" ",&columns - length)
echohl
理想情况下,我希望有一种方法来确保显示此消息,而不管异步行为如何。我正在考虑启用调试或测试设置以也将消息发送到echom
,但这有点违背了真正确保echon
显示实际值的目的。
解决方案
推荐阅读
- spring-mvc - 无法使用 initbinder spring 将日期转换为所需的格式
- reactjs - 詹金斯:在没有 Docker 的情况下构建创建反应应用程序
- firebase - 通过云功能处理时,Firestore 时间戳会转换为地图
- java - Java 8 允许在接口内实现静态方法和默认方法,这是否意味着 Java 允许在 Java 8 中实现多重继承?
- basic - 我怎样才能创建这种类型的机器?
- javascript - Vue-Router 未加载组件
- c++ - SPOJ AGGRCOW 解决方案
- deployment - 如何在 Jboss 中自动开始部署战争?
- machine-learning - 将静态数据(不随时间变化)添加到 LSTM 中的序列数据
- sql - SQL - 在查询中创建标志以突出显示包含数量 = 1 的订单