我编写了一个 emacs 次要模式,除了次要模式之外,它还应该使一些函数可用于显式调用。在模式的文件中,定义模式和函数后,我提供
模式:
(provide 'xcode-dired-mode)
其中,在我的.emacs
中,我需要
:
(setq load-path (cons "~/Documents/Local Projects/xcode-emacs" load-path))
(require 'xcode-dired-mode "xcode-dired")
现在,当缓冲区处于这种模式时,我希望有一些额外的功能可用。如果我 defun
lisp 文件中的一个函数用于次要模式,例如:
(defun xcode-build()
"Build the default target in the Xcode project."
;; ...
)
这些函数在文件外部不可用,例如M-x xcode-build
将不起作用。我认为提供
文件是不合适的事情,因为我不想要求
所有文件都在.emacs<中
。我看过神奇的评论 ;;; ###autoload
但据我所知,它仅在编译 emacs 本身时使用。
如何安排当我的次要模式应用于缓冲区时,可以使用该模式的 lisp 文件中定义的函数?
最佳答案
为了通过 M-x
调用 xcode-build
,您需要确保函数实现调用 interactive
特殊形式将函数声明为可交互调用。
我相信这是相关的 emacs 文档:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Using-Interactive.html
http://www.gnu.org/software/emacs/manual/html_node/elisp/Interactive-Call.html
关于function - 使 emacs 模式中的函数在模式文件之外可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366750/