在Org-mode 8中为R代码块提供Fontify

Ada*_*dam 3 emacs elisp org-mode

我试图在Org-mode 8中更改R代码块的背景颜色.在Org-mode 7中,我能够使用:

(defface org-block-background
   '((t (:background "#dadada")))
   "Face used for the source block background.")
Run Code Online (Sandbox Code Playgroud)

但是org-block-background变量似乎在版本8中消失了......?

我试过了:

(defface org-block
   '((t (:background "#dadada")))
   "Face used for the source block background.")
Run Code Online (Sandbox Code Playgroud)

适用于:

#+BEGIN_SRC
#+END_SRC
Run Code Online (Sandbox Code Playgroud)

#+BEGIN_latex
#+END_latex
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,背景颜色消失,我指定语言的那一刻,例如..

#+BEGIN_SRC R
#+END_SRC
Run Code Online (Sandbox Code Playgroud)

我正在使用Mac运行Emacs 24.3并将org-mode升级到v8,使用:

cd ~/.emacs.d/lisp
git clone git://orgmode.org/org-mode.git
cd org-mode
make autoloads
make
make doc
Run Code Online (Sandbox Code Playgroud)

这是我的init.el文件中的配置:

;;;----- Startup ----------------------------;

;;; Add src directory to path
(add-to-list 'load-path "~/.emacs.d/lisp/")

;;;----- Org-Mode ---------------------------;

;;; Add upgraded org-mode to load path
(add-to-list 'load-path "~/.emacs.d/lisp/org-mode/lisp")
(add-to-list 'load-path "~/.emacs.d/lisp/org-mode/contrib/lisp" t)

;;; fontify code in code blocks
(setq org-src-fontify-natively t)

(defface org-block-begin-line
  '((t (:foreground "#666666" :background "#dadada")))
  "Face used for the line delimiting the begin of source blocks.")

(defface org-block
  '((t (:background "#dadada")))
  "Face used for the source block background.")

(defface org-block-end-line
  '((t (:foreground "#666666" :background "#dadada")))
  "Face used for the line delimiting the end of source blocks.")

(require 'org)

;;;----- ESS/R ------------------------------;

(add-to-list 'load-path "~/.emacs.d/lisp/ess/lisp/")
(load "ess-site")

;;;------ Babel ------------------------------;

;;; Support R
(org-babel-do-load-languages
  'org-babel-load-languages
  '((R . t)
    (latex . t)))

;;;----- Look & feel ----------------------------;

;;; Set default theme
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'solarized-light t)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢!

Joe*_*eli 5

仅供参考,这不适用于当前版本的Org Mode(来自Git master分支),在此提交之后http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=f8b42e8-至少直到某些变化.这是在这里宣布的(2014年7月),并继续对Org Mode用户有效,例如见这里(2015年4月).任何致力于在本地恢复旧行为的人都可以从提交的差异中做到这一点 - 我没有尝试过.未来版本的组织模式可以恢复该功能,可能以不同的方式进行.现在,这是你所能得到的:

在此输入图像描述

(上面的第一个SRC块从我的设置中获取背景org-block.)