Input vim:放弃挂起的键盘输入 背景:

Input vim:放弃挂起的键盘输入 背景:,input,keyboard,vim,Input,Keyboard,Vim,我正在写一个模糊查找vim插件,它作为一个单独的进程运行一个图形程序。它打开一个窗口,您在其中键入,按return,然后vim插件处理其输出并导航到您选择的文件/缓冲区 触发find函数和新的进程抓取键盘输入之间的时间只有几分之一秒,因此可能会意外地键入过快,从而导致输入被传送到vim 鉴于vim是单线程的,我知道(并已验证)错误的键盘输入在程序完成之前不会被实际处理-在程序运行时输入会被缓冲,之后我键入的随机键会被解释为vim操作 问题: 如何丢弃位于vim输入缓冲区中但尚未处理的输入? in

我正在写一个模糊查找vim插件,它作为一个单独的进程运行一个图形程序。它打开一个窗口,您在其中键入,按return,然后vim插件处理其输出并导航到您选择的文件/缓冲区

触发find函数和新的进程抓取键盘输入之间的时间只有几分之一秒,因此可能会意外地键入过快,从而导致输入被传送到vim

鉴于vim是单线程的,我知道(并已验证)错误的键盘输入在程序完成之前不会被实际处理-在程序运行时输入会被缓冲,之后我键入的随机键会被解释为vim操作

问题: 如何丢弃位于vim输入缓冲区中但尚未处理的输入?

inputsave()
接受挂起的键盘输入并将其保存到堆栈中。这就是我想要的,只是如果我不将它与调用
inputrestore()
匹配,它会导致内存泄漏。是否可以放弃存储的输入而不执行它

如果不能直接做到这一点,有人能想出一个好办法将这些事件转移到一个安全的地方吗?i、 e调用
inputrestore()
,使存储的输入不会产生可见效果


我需要在普通模式映射和命令模式映射中执行此操作。因此,我更喜欢一种不会放弃当前命令模式输入的解决方案。

如果这只是偶然发生的,我不会太在意那些泄漏的按键的内存。如果这种情况经常发生,请重新设计您的工作流程,例如通过查询Vim内部。我相信无论是否存在任何挂起的输入,都会发生内存泄漏-因此,为了防止偶尔出现零星输入,我需要在每次调用插件时都进行检查。它可能永远不会让我失去记忆,但它仍然让我感觉脏兮兮的。。。