Emacs使用新的org-mode版本查看目录,但加载旧版本

时间:2015-08-06 12:33:44

标签: org-mode

我的org-mode版本(24.5.2)附带的Emacs版本为8.2.10。我已从ELPA安装了版本8.3.1并将其添加到我的init文件中:

(add-to-list 'load-path "~/.emacs.d/org-20150803")
(require 'org)

当我在Emacs中检查org的版本时,它会说:

  

组织模式8.2.10(release_8.2.10 @ /home/meir/.emacs.d/elpa/org-20150803 /)

即报告旧版本和新目录...(内置版本位于/usr/local/share/emacs/24.5/lisp/org

我尝试过提出的解决方案herehere

这是我的init文件的相关部分(此部分之前没有任何内容):

(require 'cl)

;; Org-mode that was shipped with Emacs
(setq load-path (remove-if (lambda (x) (string-match-p "org$" x)) load-path))
;; ELPA
(setq load-path (remove-if (lambda (x) (string-match-p "org-20" x)) load-path))

(add-to-list 'load-path "~/.emacs.d/org-20150803")

(require 'package)
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)

(require 'org)

如何让Emacs加载新版本的org-mode

更新:我将/usr/local/share/emacs/24.5/lisp/org重命名为/usr/local/share/emacs/24.5/lisp/org1,因此Emacs肯定无法看到内置版本。但是,它仍然显示旧版本号!..

1 个答案:

答案 0 :(得分:6)

我建议您重新开始删除任何个人安装的org版本:

string s=System.IO.Path.Combine (Environment.GetFolderPath  (Environment.SpecialFolder.Personal), "Library");

System.IO.File.Copy ("myfile.rtf", s + "//Application Support//kk.rtf"); 

然后

  • 确保您从elpa构建org时尚未加载org。
  • 决定您想要的组织版本以及它所来自的软件包存档。

例如,如果你像我一样想要http://orgmode.org/elpa的org-plus-contrib,首先应该:

rm -rf ~/.emacs.d/elpa/org-* # your installation path _may_ vary.

然后,通过退出emacs确认成功并重新启动为:

> emacs -Q -batch -eval "(progn (require 'package) (add-to-list 'package-archives '(\"org\" . \"http://orgmode.org/elpa/\"))  (package-initialize) (package-refresh-contents) (package-install 'org-plus-contrib))"

注意:

  • 如果您不包含> emacs -q -eval "(progn (require 'package) (package-initialize))" meta-x org-version ,那么org-version可能会从您安装的任何内容中自动加载... / site-lisp - 可能是旧版本
  • 常规'org包也可在http://orgmode.org/elpa - c.f.获取。 http://orgmode.org/elpa.html差异