use*_*106 5 terminal keyboard emacs tput
我想为 lisp 方言的命令行重新定义键绑定。命令行实际上是仿照 Vi 建模的,并使用 tput/terminfo 实现。我想要一个带有 Emacs 键绑定的替代版本,我想在不使用 gnu readline 左右的情况下尝试一下。
典型的键分配如下所示:
(setq *XtF1 (in '("tput" "kf1") (line T)) ...
Run Code Online (Sandbox Code Playgroud)
这个问题是关于
("tput" "kf1")
Run Code Online (Sandbox Code Playgroud)
部分,其余部分忽略。现在,在 terminfo 手册页中很容易找到“kf1”:
key_f1 kf1 k1 F1 function key
Run Code Online (Sandbox Code Playgroud)
我也发现“元”有 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)
Run Code Online (Sandbox Code Playgroud)
但是我如何使用这些信息来定义典型的 Emacs 键绑定,例如 Mf、Mb、Md 等,以及 tput?
terminfo 可能不会对您有太大帮助。在大多数终端仿真器中,您可以使用M-x
发送<Esc>x
或x
设置第 8 位进行配置,并且当用户这样做时,terminfo 条目不会神奇地更新。
另外,现在大多数字符集都是 8 位,因此现在将第 8 位用于 Meta 没有多大意义。
我只是硬编码M-x
== (两个字符和<Esc>x
的序列)。这样,即使终端不支持该模式,用户仍然可以按顺序键入, 。\033
x
Escx
归档时间: |
|
查看次数: |
293 次 |
最近记录: |