5

如何将 emacs 密钥序列向量(即 read-key-sequence-vector 的结果)转换为用户可读的字符串?即,给定[7],返回'Cg'。

我需要一种可靠的方法来检查任意长度的键序列之间的相等性,以及以非矢量格式(即人类可读)显示键序列。

具体来说,我的函数必须执行以下操作:

  • 将键序列的哈希映射定义为值(字符串)。键序列具有任意长度(例如,"q" "w" 3" "4"),并且不受 emacs 键映射的限制。
  • 在缓冲区中向用户显示映射(keysequence --> string)。因此,键序列必须是用户可以理解的,即不能是矢量格式。
  • 从用户那里读取一个键序列,返回相应的字符串。

我可以使用两个函数,read-key-sequenceread-key-sequence-vector。前者有时以字符串形式返回,有时以向量形式返回用户键入的键序列。例如,有时它返回“1”,但有时返回 [49],用于键“一”。这种不可预测的行为不允许我测试是否相等。

后者将键作为向量返回,正如我所提到的,这对我没有用,因为我需要用户查看可能的键序列。

我想我可以手动创建当前机器键盘上所有键的 hasmap。但是恐怕这不能移植到其他机器上。

4

1 回答 1

8
(key-description [7]) => "C-g"
于 2013-02-26T13:14:50.210 回答