gpt4 book ai didi

Emacs 口齿不清 : "Fall through" type for defcustom.

转载 作者:行者123 更新时间:2023-12-01 06:33:43 28 4
gpt4 key购买 nike

TL; 博士
customize 中是否有一些标准的回退处理?
系统,用于处理部分无效的复合定制
变量,例如一个条目不是缺点的列表?

长版

emacs 的自定义机制非常强大,使用
复合 Material :type defcustom 的参数提供了一个漂亮的
用于自定义变量的统一界面。

但是,无论出于何种原因,变量的单个条目
是错误的,整个系统崩溃了,它只会显示
裸 s 表达式。那么没有帮助来解决这个期望
删除希望默认值匹配的自定义项
类型描述。

至少这是我迄今为止所经历的。

如果我有一个复杂数据的自定义变量
结构,是否有某种机制可以只显示
将变量的一部分损坏为裸 s 表达式?

想想例如关于

(defcustom x 
'((org-mode . "a\\|b")
(text-mode . "b\\|c"))
"Some variable"
:group 'x
:type '(repeat
(cons :tag "Entry"
(function :tag "Mode" :value text-mode)
(regexp))))

通常 M-x customize-variable x不会显示一个很好的输入掩码。
Hide X:
INS DEL Entry:
Mode: org-mode
Regexp: a\|b
INS DEL Entry:
Mode: text-mode
Regexp: b\|c
INS
State : STANDARD.
Some variable
Groups: X

当我现在做
(add-to-list 'x 1)

面具变得非常不友好
Hide x: 
'(1
(org-mode . "a\\|b")
(text-mode . "b\\|c"))
State : CHANGED outside Customize. (mismatch)
Some variable
Groups: X

现在我当然可以通过更改
像这样的定义
(defcustom x 
'((org-mode . "a\\|b")
(text-mode . "b\\|c"))
"Some variable"
:group 'x
:type '(repeat
(choice
(cons :tag "Entry"
(function :tag "Mode" :value text-mode)
(regexp))
(sexp :tag "MISMATCHED ENTRY!"))))

这提供了一个自定义掩码
Hide X:
INS DEL Choice: Value Menu MISMATCHED ENTRY!: 1
INS DEL Choice: Value Menu Entry:
Mode: org-mode
Regexp: a\|b
INS DEL Choice: Value Menu Entry:
Mode: text-mode
Regexp: b\|c
INS
State : CHANGED outside Customize.
Some variable
Groups: X

然而,这现在包括一个笨拙的下拉菜单
使用户可以在条目和无效值之间进行选择。
相反,我默认隐藏并显示下拉值
仅当与有效选项不匹配时。作为用户我的
首先想到看到这样的会是“”。

定制系统中是否有一些标准的方式来处理
部分无效值?我在文档中找不到任何内容。¹

¹ http://www.gnu.org/software/emacs/manual/html_node/elisp/Customization-Types.html#Customization-Types

最佳答案

您可以编辑(并保存)显示的“原始性别”。我同意如果使用通常的小部件显示有效部分并且只有无效部分显示为“原始sexp”会更好。欢迎补丁。

关于Emacs 口齿不清 : "Fall through" type for defcustom.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17344328/

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