gpt4 book ai didi

emacs - Emacs Lisp 中 apply 的正确用法?

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

我不确定这里是否推荐使用apply。是否有更好/标准的解决方案来动态设置主要模式?我找不到其他的。

背景:

每当我得到

X有自动保存数据;考虑 M-x 恢复此文件

Emacs中的消息,我想知道当前文件和自动保存版本有什么区别。由于大多数时候我懒得去查找它,所以我尝试自动化该任务:

(defun ediff-auto-save ()
"Ediff current file and its auto-save pendant."
(interactive)
(let ((auto-file-name (make-auto-save-file-name))
(file-major-mode major-mode))
(ediff-files buffer-file-name auto-file-name)
(switch-to-buffer-other-window (file-name-nondirectory auto-file-name))
(apply file-major-mode '())
(other-window 1))) ;; back to ediff panel

代码执行了我想要的操作,它打开自动保存文件并启动 ediff。我还将自动保存文件的主要模式设置为原始文件的主要模式,以获得一致的字体锁定。

最佳答案

虽然 apply 当然可以用于此目的,但 funcall 可能更适合

(funcall file-major-mode)

它与 apply 的不同之处在于它不接受参数列表,而只接受参数。以下两者是等效的:

(funcall '+ 1 2)
(apply '+ '(1 2))

关于emacs - Emacs Lisp 中 apply 的正确用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3014810/

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