我正在尝试恢复一个相当旧的 MUD 客户端以在 OS X Mojave 下运行(几乎是一个支持别名、键绑定和触发器的 telnet 客户端)。代码可以在这里找到https://github.com/olostan/mmc
我成功地运行它,但是它没有正确处理数字键盘键。我发现这是因为这些键没有在https://github.com/olostan/mmc/blob/master/src/output.c中定义, 一旦我将以下块添加到“键盘键”部分,它就开始了好好工作。
{ "k0", "\033Op", NULL },
{ "k1", "\033Oq", NULL },
{ "k2", "\033Or", NULL },
{ "k3", "\033Os", NULL },
{ "k4", "\033Ot", NULL },
{ "k5", "\033Ou", NULL },
{ "k6", "\033Ov", NULL },
{ "k7", "\033Ow", NULL },
{ "k8", "\033Ox", NULL },
{ "k9", "\033Oy", NULL },
现在我想对具有不同修饰符(ctrl、alt、shift)的小键盘键执行相同的操作,例如 C-k1、M-k1、S-k1,但我找不到任何地方如何正确定义转义码序列。我从这个页面得到了上面的代码 - https://www.gnu.org/software/screen/manual/html_node/Input-Translation.html但不幸的是它没有描述任何与修饰符的组合。
所以问题是 - 我如何为带有修饰键(shift、alt、ctrl)的键盘组合定义 VT100 格式的转义码?我尝试为 S-k4 组合键设置类似“\033[1;5Ot”的东西,但这些都不起作用。