Emacs 看到具有新 org-mode 版本的目录,但加载旧版本
Emacs sees the directory with the new org-mode version, but loads the old version
我的 Emacs
(24.5.2) 版本附带的 org-mode
版本是 8.2.10
。我已经从 ELPA 安装了 8.3.1
版本并将其添加到我的初始文件中:
(add-to-list 'load-path "~/.emacs.d/org-20150803")
(require 'org)
当我在 Emacs 中检查 org
的版本时,它显示:
Org-mode version 8.2.10 (release_8.2.10 @ /home/meir/.emacs.d/elpa/org-20150803/)
即报旧版本和新目录...(内置版本位于/usr/local/share/emacs/24.5/lisp/org
)
我已经尝试了建议的解决方案 here and here。
这是我的初始化文件的相关部分(这部分之前没有任何内容):
(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
肯定看不到内置版本。但是,它仍然显示旧版本号!..
我建议您通过删除任何个人安装的 org 版本重新开始:
rm -rf ~/.emacs.d/elpa/org-* # your installation path _may_ vary.
然后
- 确保当你从 elpa 构建 org 时你还没有加载 org.
- 决定你想要哪个版本的 org 以及它来自哪个包存档。
例如,如果您像我一样想要 http://orgmode.org/elpa 的 org-plus-contrib,首先您应该:
> 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 并重新启动来确认成功:
> emacs -q -eval "(progn (require 'package) (package-initialize))"
meta-x org-version
备注:
- 如果您不包含
-eval "(progn (require 'package) (package-initialize))"
那么 org-version 可能会从您在 .../site-lisp 中安装的任何内容自动加载 - 可能是旧版本
- 常规的 'org 包也可在 http://orgmode.org/elpa - c.f 获得。 http://orgmode.org/elpa.html 差异
我的 Emacs
(24.5.2) 版本附带的 org-mode
版本是 8.2.10
。我已经从 ELPA 安装了 8.3.1
版本并将其添加到我的初始文件中:
(add-to-list 'load-path "~/.emacs.d/org-20150803")
(require 'org)
当我在 Emacs 中检查 org
的版本时,它显示:
Org-mode version 8.2.10 (release_8.2.10 @ /home/meir/.emacs.d/elpa/org-20150803/)
即报旧版本和新目录...(内置版本位于/usr/local/share/emacs/24.5/lisp/org
)
我已经尝试了建议的解决方案 here and here。
这是我的初始化文件的相关部分(这部分之前没有任何内容):
(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
肯定看不到内置版本。但是,它仍然显示旧版本号!..
我建议您通过删除任何个人安装的 org 版本重新开始:
rm -rf ~/.emacs.d/elpa/org-* # your installation path _may_ vary.
然后
- 确保当你从 elpa 构建 org 时你还没有加载 org.
- 决定你想要哪个版本的 org 以及它来自哪个包存档。
例如,如果您像我一样想要 http://orgmode.org/elpa 的 org-plus-contrib,首先您应该:
> 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 并重新启动来确认成功:
> emacs -q -eval "(progn (require 'package) (package-initialize))"
meta-x org-version
备注:
- 如果您不包含
-eval "(progn (require 'package) (package-initialize))"
那么 org-version 可能会从您在 .../site-lisp 中安装的任何内容自动加载 - 可能是旧版本 - 常规的 'org 包也可在 http://orgmode.org/elpa - c.f 获得。 http://orgmode.org/elpa.html 差异