Emacs lisp字符表

Emacs lisp字符表,emacs,Emacs,我是学习emacs lisp的大一新生,因此我正在阅读emacs lisp手册。当我阅读时,我对如何使用char表感到困惑。在那一章中,我找不到使用char表的好例子 当然,elisp有一个语法表,它由char表和syntax表组成,可以做很多事情。 我想知道如何很好地利用char表,以及在哪些情况下我会使用它 谢谢我对Emacs Lisp编程不是很熟悉,但从数据结构的描述来看,我立刻想到了keymaps。事实证明 特别是在这种情况下,使用“父”字符表是有意义的:例如,当激活一个模式时,该模式可

我是学习emacs lisp的大一新生,因此我正在阅读emacs lisp手册。当我阅读时,我对如何使用char表感到困惑。在那一章中,我找不到使用char表的好例子

当然,elisp有一个语法表,它由char表和syntax表组成,可以做很多事情。 我想知道如何很好地利用char表,以及在哪些情况下我会使用它


谢谢

我对Emacs Lisp编程不是很熟悉,但从数据结构的描述来看,我立刻想到了keymaps。事实证明

特别是在这种情况下,使用“父”字符表是有意义的:例如,当激活一个模式时,该模式可能有一个带有它提供的键绑定的键映射。在将当前keymap设置为模式的keymap之前,当前keymap可能会成为模式的keymap的父级。这样,当模式的键映射不提供映射时,可以查询以前的键映射以获得适当的映射


下面是我如何在C中实现字符表的大致示意图:

struct char\u表{
void*数据[256/*或有多少字符代码*/];
结构字符表*父级;
};
void*查找(
结构字符表*table,
char/*或更适合char代码的类型*/key){
void*result=table.data[key/*加上可能的一些计算*/];
if(!result&&table.parent){
结果=查找(table.parent,key);
}
返回结果;
}

Emacs的字符表只是一种特殊的数组,它由字符而不是整数索引。Unicode中有许多字符,因此有一个特殊的数组实现是值得的,其中许多字符范围共享相同的值。

我不知道这是什么意思,我是一个c程序员,我的理解是这样的,字符表如下所示:xxx['a']=object0 xxx['b']=object1 xxx['c']=object2这非常正确,除了字符表可以是稀疏的,即未使用的索引不占用任何空间(想想hash/dict/associative array/Lisp assoc list)。如果您认为Emacs文档需要改进,请使用
M-x report Emacs bug
向开发人员提出您的(具体)建议。