我相信这是ncurses
图书馆的领域。不过,我正在努力避免不得不沮丧和肮脏。
我正在寻找一个可以配置为在执行终端鼠标报告转换为按键时运行命令的程序。
这适用于像 less 这样的寻呼机。
例如,Terminal.app 的 MouseTerm SIMBL 插件就是这样做的。
但 iTerm2 没有。我想要它。
我认为答案可能就像直接重新映射代码一样简单。
看起来有转义码可以将终端切换到和退出鼠标侦听模式,而鼠标单击转义码实际上似乎包括字符坐标。我可以在 Vim 中使用 Ctrl+V 来查看它们,因为我已经告诉 vim 打开鼠标。
它看起来像这样:
Note ^[ denotes escape (you can type escape by typing ctrl+[)
left click: ^[[M !!
right click: ^[[M"!!
middle click: ^[[M!!!
scroll up: ^[[M`!!
scroll down: ^[[Ma!!
因此,根据文档(我喜欢这个页面),这确实与鼠标滚轮按钮代码比鼠标按钮代码多 64 个相匹配。
现在我已经掌握了我需要将哪些代码映射到我只需要找出如何获得一个让我过滤输入的层的知识。
这显然让我顿悟了。我只需要一个简单的非行缓冲程序来监听鼠标转义码并用键码替换它们。Perl 肯定Term::ReadKey
会让我设置原始模式并完成这项几乎微不足道的任务。