如何在 xterm.js 中使用响铃字符 (BEL, CTRL-G, \x07)?
How to use bell character (BEL, CTRL-G, \x07) with xterm.js?
如何在 Xterm.js 中添加使用响铃字符?我在源 'options' 默认值中看到了几个条目,但是无论我从 shell 发送它还是直接将它写入终端,即使那些设置为 true,也没有得到任何东西。我尝试用一个包含 window.navigator.vibrate 的函数重载 term.bell 函数,如果我直接调用它就可以工作,但不会触发响应响铃字符。
好的。因此测试确定没有任何东西阻止响铃字符(“\x07”或“\u0007”)进入 xterm.js。它只是不响应,即使您在选项中启用标志。源代码中的代码看起来应该可以工作,但内部没有连接。由于我避免对源进行实际更改以直接升级到 xterm.js,开箱即用,所以我使用了一点魔法。这是让响铃角色正常工作的技巧:
创建一个函数,在您的 websocket 中触发 "message" 事件。在其中,检查 BEL 的匹配项。如果它检测到它,就让它执行你的巫术。类似于:
sock.addEventListener('message',function(v){ if(v.match(/\x07/)){ /*voodoo here*/ } });
其中 v 是事件,\x07 是 BEL,voodoo 是代码或调用,可以短暂地使屏幕变白、发出哔哔声、在 "mobile" 上行驶时振动,或者打开门户以单袜尺寸。
烦人的是,现在我需要查找更多 ansi 代码并找到一种模式,因为有些代码以 BEL 字符结尾。所以这将自己工作,但会被一些不打算充当 BEL 的代码所抵消,因为它们包含该字符。稍后会详细介绍....
仅供参考,不确定这是否适用于 term.attach()。无论如何,我有自己的东西做一些预处理,所以基本上我所要做的就是拼接 if/match,但把它剪掉,上面的代码是最小的剪切粘贴版本。
希望这对其他人有帮助。出问题。
如何在 Xterm.js 中添加使用响铃字符?我在源 'options' 默认值中看到了几个条目,但是无论我从 shell 发送它还是直接将它写入终端,即使那些设置为 true,也没有得到任何东西。我尝试用一个包含 window.navigator.vibrate 的函数重载 term.bell 函数,如果我直接调用它就可以工作,但不会触发响应响铃字符。
好的。因此测试确定没有任何东西阻止响铃字符(“\x07”或“\u0007”)进入 xterm.js。它只是不响应,即使您在选项中启用标志。源代码中的代码看起来应该可以工作,但内部没有连接。由于我避免对源进行实际更改以直接升级到 xterm.js,开箱即用,所以我使用了一点魔法。这是让响铃角色正常工作的技巧:
创建一个函数,在您的 websocket 中触发 "message" 事件。在其中,检查 BEL 的匹配项。如果它检测到它,就让它执行你的巫术。类似于:
sock.addEventListener('message',function(v){ if(v.match(/\x07/)){ /*voodoo here*/ } });
其中 v 是事件,\x07 是 BEL,voodoo 是代码或调用,可以短暂地使屏幕变白、发出哔哔声、在 "mobile" 上行驶时振动,或者打开门户以单袜尺寸。
烦人的是,现在我需要查找更多 ansi 代码并找到一种模式,因为有些代码以 BEL 字符结尾。所以这将自己工作,但会被一些不打算充当 BEL 的代码所抵消,因为它们包含该字符。稍后会详细介绍....
仅供参考,不确定这是否适用于 term.attach()。无论如何,我有自己的东西做一些预处理,所以基本上我所要做的就是拼接 if/match,但把它剪掉,上面的代码是最小的剪切粘贴版本。
希望这对其他人有帮助。出问题。