将键序列向量转换为用户可读的字符串表示?

时间:2013-02-26 12:14:47

标签: emacs vector key elisp

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

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

有关详细信息,我的功能必须执行以下操作:

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

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

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

我想我可以在当前机器的键盘上手动创建所有按键的hasmap。但我担心这不适用于其他机器。

1 个答案:

答案 0 :(得分:8)

(key-description [7]) => "C-g"