5

与问题相关:org-mode: fontify code blocks native

我有截至 2012 年 11 月 1 日的最新 org-mode 和 emacs 版本(org 存储在 org-20121105 中)。

我也有 emacs-24 附带的 sql-mode。

我已经字体化变成了一个:

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

然而,这并没有在我的组织文档中字体化。Java、bash 等都可以工作。

#+BEGIN_SRC SQL
   SELECT foo FROM bar
#+END_SRC 

当我打开文件 foobar.sql 时,模式指示器显示 SQL[ANSI](我也尝试将其作为源类型),并且字体锁定有效。

提前感谢您的任何提示。

4

2 回答 2

8

首先,SRC 块模式的名称区分大小写。它应该sql代替SQL.

#+BEGIN_SRC sql
   SELECT foo FROM bar
#+END_SRC

其次,sql-mode 的初始 font-lock 接缝不突出 SQL 关键字,(至少在我看来,无论你打开还是关闭它看起来都没有区别)。因此,您需要指定要突出显示的 SQL 类型。例如,如果您使用 MySQL:

(add-hook 'sql-mode-hook
          (lambda ()
            (sql-highlight-mysql-keywords)))

然后重启 Emacs。它现在应该可以工作了。

于 2012-11-15T22:40:39.743 回答
2

哦,等等,试着#+BEGIN_SRC sql输入小写。有关标识符,请参见此处


尝试通过重新解析块(破坏语法并撤消或其他方式)来刷新显示。python 或 bibtex 块经常发生在我身上,但这可以解决它。

我不明白为什么当你找到正确的模式时它不会内联字体化C-c '

另外,我担心字体化虽然是 org-mode 更好的功能之一,但并不能完全完美地处理。从邮件列表 :

字体化引擎不是很强大,很容易被愚弄。

于 2012-11-15T21:35:30.627 回答