gpt4 book ai didi

Emacs 父模式列表

转载 作者:行者123 更新时间:2023-12-02 03:29:41 25 4
gpt4 key购买 nike

在 emacs 中是否可以获取派生模式的父模式列表?

我找到了衍生模式-p,但这只能让我测试一种模式是否派生于另一种模式。

最佳答案

每个symbol has a property list对于派生模式,此列表包括组件派生模式-parent,它指示它派生自哪个模式。它似乎只是一个单一的符号。

(define-derived-mode nst-mode text-mode "Testing")
=> nst-mode

(get 'nst-mode 'derived-mode-parent)
=> text-mode

我不明白怎么会有不止一个 parent 。

这是父级传递链的演示。

(define-derived-mode rope nil "Victim of mouse")
(define-derived-mode mouse rope "Victim of cat")
(define-derived-mode cat mouse "Victim of dog")
(define-derived-mode dog cat "Enough already")

(let ((mode 'dog) parents)
(while mode
(setq parents (cons mode parents)
mode (get mode 'derived-mode-parent)))
(reverse parents))

=> (dog cat mouse rope)

...或者,只是为了好玩,递归版本:

(defun derived-mode-parents (mode)
(and mode
(cons mode (derived-mode-parents
(get mode 'derived-mode-parent)))))

(derived-mode-parents 'dog)
=> (dog cat mouse rope)

关于Emacs 父模式列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com