gpt4 book ai didi

emacs - 使 php-mode(和其他 cc-mode 派生模式)与 Emacs 23 兼容

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

我正在使用 Emacs 23 和 php-mode.el 1.5.0。当我在 .emacs 中有这个时:

(require 'php-mode)

当 Emacs 启动时,我收到此错误消息:

Warning (initialization): An error occurred while loading `/Users/kdj/.emacs':

error: `c-lang-defconst' must be used in a file

To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the `--debug-init' option to view a complete error backtrace.



如果我评估 (require 'php-mode) Emacs 启动后,我没有收到任何错误消息。

我找到了一个 blog entry这表明这个问题是 Emacs 23 特有的(即 Emacs 22.x 没有错误),但它没有给出任何解决方案。

我不知道这是否重要,但我使用的是 Mac OS X,我使用 ./configure --with-ns 从当前的 CVS 源构建了 Emacs。 .

这里发生了什么,和/或我该如何解决?

最佳答案

我在尝试启动并运行 csharp 模式时遇到了同样的问题。在深入研究 csharp-mode 的实际 Emacs Lisp 文件时,我终于找到了解决方案:

;;   This code doesn't seem to work when you compile it, then
;; load/require in the Emacs file. You will get an error (error
;; "`c-lang-defconst' must be used in a file") which happens because
;; cc-mode doesn't think it is in a buffer while loading directly
;; from the init. However, if you call it based on a file extension,
;; it works properly. Interestingly enough, this doesn't happen if
;; you don't byte-compile cc-mode.

因此,放入 .emacs 的快速而肮脏的修复方法是在扩展时自动加载而不是放入 (require 'php-mode)(load "php-mode")在那里。无需再费周折,
(autoload 'php-mode "php-mode" "Major mode for editing php code." t)
(add-to-list 'auto-mode-alist '("\\.php$" . php-mode))
(add-to-list 'auto-mode-alist '("\\.inc$" . php-mode))

我希望这有帮助!现在我只需要让 PHP/HTML 模式切换工作。祝我好运。

关于emacs - 使 php-mode(和其他 cc-mode 派生模式)与 Emacs 23 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898063/

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