【问题标题】:emacs: can't make abbrev-insert function worksemacs:无法使 abbrev-insert 函数工作
【发布时间】:2014-10-02 19:51:47
【问题描述】:

我对 abbrev-insert 内置函数有很大的困难。 我已经阅读了函数的定义并尝试了几件事,但总是出错。

以下是我尝试使用其输出的命令:

(define-abbrev global-abbrev-table "a1" "so long output") (abbrev-insert "a1") OUTPUT: abbrev-insert: Wrong type argument: symbolp, "a1" (abbrev-insert 'a1) OUTPUT: eval: Wrong type argument: number-or-marker-p, nil (abbrev-insert 'a1 nil 1 3) OUTPUT: eval: Wrong type argument: number-or-marker-p, nil (abbrev-insert 'a1 "so long output" 1 3) OUTPUT: eval: Wrong type argument: number-or-marker-p, nil

我不知道出了什么问题。如果有人可以帮助我,请:)

谢谢

【问题讨论】:

    标签: function emacs elisp


    【解决方案1】:

    您需要将实际缩写传递给abbrev-insert

    (abbrev-insert (abbrev-symbol "a1" global-abbrev-table))
    

    任何随机符号都不会这样做:它必须是存储在您感兴趣的缩写表中的特定符号,因此需要abbrev-symbol

    【讨论】:

    • 我在表格中定义了“a1”(见第一行代码)。这不是一个随机的符号。但我不明白为什么您的解决方案有效,因为 (type-of (abbrev-symbol "a1")) 返回 symbol 就像 (type-of 'a1)。那么为什么我的解决方案不起作用?神秘。无论如何,非常感谢 Stefan,你的回复解决了我的麻烦
    • 当然a1 也是一个符号。但它是 另一个 符号。 Elisp 上的 symbol 是一个 object,很像一个记录/结构/元组,其中大部分有 4 个字段,可以通过 4 个访问器symbol-valuesymbol-function 访问, symbol-plistsymbol-name
    猜你喜欢
    • 2013-02-21
    • 2021-07-25
    • 2017-08-25
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多