Emacs “如何修复”;源文件比字节编译文件“更新”;错误?

Emacs “如何修复”;源文件比字节编译文件“更新”;错误?,emacs,elisp,Emacs,Elisp,我发现了错误 源文件`~/.emacs.d/elpa/cmake-mode-20110824/cmake mode.el'比字节编译文件更新 当我尝试在cmake模式下打开CMakeLists.txt文件时 My.emacs(部分)由以下部分组成: (setq load-path (cons (expand-file-name "~/.emacs.d/elpa/cmake-mode-20110824") load-path)) (requi

我发现了错误

源文件`~/.emacs.d/elpa/cmake-mode-20110824/cmake mode.el'比字节编译文件更新

当我尝试在cmake模式下打开CMakeLists.txt文件时

My.emacs(部分)由以下部分组成:

(setq load-path (cons 
             (expand-file-name "~/.emacs.d/elpa/cmake-mode-20110824") 
             load-path))
(require 'cmake-mode)
(setq auto-mode-alist
      (append '(("CMakeLists\\.txt\\'" . cmake-mode)
            ("\\.cmake\\'" . cmake-mode))
              auto-mode-alist))
回溯:

Debugger entered--Lisp error: (wrong-type-argument char-table-p nil)
  char-table-parent(nil)
  cmake-mode()
  set-auto-mode-0(cmake-mode nil)
  set-auto-mode()
  normal-mode(t)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer CMakeLists.txt> "~/CMakeLists.txt" nil nil   "~/CMakeLists.txt" (19923691 2049))
  find-file-noselect("~/CMakeLists.txt" nil nil t)
  find-file("~/CMakeLists.txt" t)
  call-interactively(find-file nil nil)
调试器已输入--Lisp错误:(错误的类型参数char-table-p nil)
字符表父项(无)
cmake-mode()
设置自动模式0(cmake模式零)
设置自动模式()
正常模式(t)
查找文件后(无)
find-file-noselect-1(#“~/CMakeLists.txt”nil-nil“~/CMakeLists.txt”(19923691 2049))
查找文件noselect(“~/CMakeLists.txt”nil nil t)
查找文件(“~/CMakeLists.txt”t)
交互调用(查找文件nil nil)

我不明白为什么会发生这种错误。免责声明:我是emacs和elisp noob

问题可能出在您的
cmake模式中,该模式已经过时。
以下是修复方法:

  • 从上面删除所有设置
  • 确保您有
    emacs24
  • ~/.emacs
    中:

    (package-initialize)
    (add-to-list 'package-archives
      '("melpa" . "http://melpa.milkbox.net/packages/"))
    
  • M-x
    包裹列表包裹
    。使用C-s查找
    cmake模式
    。 用i标记安装,用x标记安装


  • 你们的免责声明是多余的,因为“源文件更新…”是一个警告,而不是一个错误:)这对我来说是一个错误,该死!如果需要添加到列表
    ,这是cmake-mode.el中的一个错误。事实上,这是最近修复的。此外,您可能希望将
    加载首选较新的
    设置为非空值,以避免将来加载过时的字节码文件。