终端的轻量级事件包装器

时间:2013-04-14 07:49:27

标签: macos shell unix terminal mouseevent

我相信这是ncurses库的领域。我试图避免不得不沮丧和肮脏。

我正在寻找一个程序,我可以将其配置为在执行终端鼠标报告翻译到按键时运行命令。

这适用于较少的寻呼机。

例如,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!!

根据文档(我喜欢this page),鼠标按钮代码比鼠标按钮代码高64位。

现在我掌握了我需要映射到哪些代码的知识,我需要知道如何获得一个允许我过滤输入的图层。

这显然让我顿悟了。我只需要一个简单的非行缓冲程序来监听鼠标转义码并用键码替换它​​们。当然Perl Term::ReadKey会让我设置原始模式并完成这项近乎无足轻重的任务。

1 个答案:

答案 0 :(得分:0)

这个东西很难。我一直在通过配置Tmux来处理事情。