ORG-MODE内部的SQL-MODE字体锁定不是字体锁定

时间:2012-11-15 20:50:07

标签: emacs org-mode dot-emacs emacs24 sql-mode

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

截至2012年11月1日,我已获得最新的org-mode和emacs版本(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](我也尝试作为源类型),并且字体锁定有效。

提前感谢任何提示。

2 个答案:

答案 0 :(得分:8)

首先,SRC块模式的名称区分大小写。它应该是sql而不是SQL

#+BEGIN_SRC sql
   SELECT foo FROM bar
#+END_SRC

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

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

然后重新启动Emacs 。它现在应该工作。

答案 1 :(得分:2)

哦,等等,尝试将#+BEGIN_SRC sql放在小写字母中。有关标识符,请参阅here


尝试刷新显示块,方法是重新组合块(中断语法和撤消或其他内容)。它经常发生在python或bibtex块上,但这解决了它。

我无法理解为什么当你 C-c'找到合适的模式时,它不会内联。

另外,我害怕fontification,而作为org-mode的一个更好的功能,并不完全处理。来自the mailing list

  

fontification引擎不是很强大,很容易被愚弄。