Ich bin mit Emacs Lisp-Programmierung nicht sehr vertraut, sondern allein aus der Beschreibung der Datenstruktur ich sofort von keymaps dachte. Und wie sich herausstellt, I was right.
Vor allem die Verwendung von "parent" Char-Tabellen macht in diesem Zusammenhang Sinn: Zum Beispiel, wenn ein Modus aktiviert wird, hat dieser Modus wahrscheinlich eine Tastenbelegung mit den Tastenbelegungen. Bevor die aktuelle Tastenbelegung auf die Tastenbelegung des Modus eingestellt wird, wird die aktuelle Tastenbelegung wahrscheinlich als übergeordnetes Tastenfeld des Modus verwendet. Wenn die Tastaturbelegung des Modus keine Zuordnung bereitstellt, können die vorherigen Tastaturbelegung (en) für eine entsprechende Zuordnung abgefragt werden.
Hier ist, wie ich char-Tabellen in C implementieren würde, als eine grobe Skizze:
struct char_table {
void * data[256 /* or how many char codes there are */];
struct char_table * parent;
};
void * lookup(
struct char_table * table,
char /* or a more suitable type for char codes */ key) {
void * result = table.data[key /* plus possibly some calculation */];
if (!result && table.parent) {
result = lookup(table.parent, key);
}
return result;
}
Wenn Sie denken, dass das Emacs-Dokument verbessert werden muss, machen Sie bitte Ihren (konkreten) Vorschlag an die Entwickler, indem Sie 'M-x report-emacs-bug' verwenden. – Drew