我想让用户选择将内容添加到列表中,然后将其保存以供进一步的会话使用。如何在elisp中执行此操作?
(setq smart-pair-alist
'(("(" . ")") ; key 0
("[" . "]") ; key 1
("{" . "}") ; key 2
("\"" . "\"") ; key 3
))
(defun smart-pair-adder (open close &optional mode)
(add-to-list 'smart-pair-alist `(,open . ,close) t)
)
(smart-pair-adder "a" "b")
smart-pair-alist评估为:
(("(" . ")") ("[" . "]") ("{" . "}") ("\"" . "\"") ("a" . "b"))
非常好,它增加了,但如何保存?
答案 0 :(得分:1)
通常,对于这样的事情,保存变量的内容并在将来的会话中加载它并不是最好的方法。 (做属于此类别的事情包括迷你缓冲区命令历史记录,搜索历史记录等。)
相反,用户通常会有一个 init文件,其中可以放置如下函数调用:
(smart-pair-adder "a" "b")
这有很多原因:
答案 1 :(得分:0)
如果用户使用savehist-mode
保存迷你缓冲区历史记录,您可以使用savehist-additional-variables
预先设定任意变量的值:
(add-to-list 'savehist-additional-variables 'smart-pair-alist)