如何在 tput 中使用 Meta/Alt 键?

如何在 tput 中使用 Meta/Alt 键?

我想重新定义 lisp 方言命令行的键绑定。命令行实际上是模仿 Vi 并使用 tput/terminfo 实现的。我想要一个带有 Emacs 键绑定的替代版本,并且我想在不使用 gnu readline 等的情况下尝试一下。

典型的键分配如下所示:

(setq *XtF1 (in '("tput" "kf1") (line T)) ...

这个问题是关于

("tput" "kf1")

部分,忽略其余部分。现在,在 terminfo 手册页中很容易找到“kf1”:

   key_f1                     kf1     k1    F1 function key

我发现“meta”也有 3 个条目:

   has_meta_key               km      km    Has a meta key
                                            (i.e., sets 8th-bit)

   meta_off                   rmm     mo    turn off meta mode
   meta_on                    smm     mm    turn on meta mode
                                            (8th-bit on)

但是我如何使用此信息通过 tput 定义典型的 Emacs 键绑定,例如 Mf、Mb、Md 等?

答案1

terminfo 可能不会对您有太大帮助。在大多数终端仿真器中,您可以使用M-x发送<Esc>xx设置第 8 位进行配置,并且当用户这样做时,terminfo 条目不会神奇地更新。

另外,现在大多数字符集都是 8 位,因此现在将第 8 位用于 Meta 没有多大意义。

我只是硬编码M-x== (两个字符和<Esc>x的序列)。这样,即使终端不支持该模式,用户仍然可以按顺序键入, 。\033xEscx

相关内容