2012-11-15 34 views
5

相关的问题:org-mode: fontify code blocks natively字体锁定为SQL-MODE ORG-MODE的内部不FONT-锁定

我已经得到了最新的组织模式和emacs的版本在2012年11月1日(ORG存储在ORG-20121105)。

我也得到了emacs-24附带的sql模式。

我有fontification开启一个:

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

然而,这并不在我的组织文件fontify。 Java,bash等都有效。

#+BEGIN_SRC SQL 
    SELECT foo FROM bar 
#+END_SRC 

当我打开一个文件foobar.sql,模式指示器说SQL [ANSI](我还试图作为源类型),和字体锁定的工作方式。

在此先感谢您的任何提示。

+0

'setq'已被评估当然?你可以在块中使用C-c'(C-c quote)在新缓冲区中打开它,并使用正确的主模式,并查看它是否被正确检测到? –

回答

8

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

#+BEGIN_SRC sql 
    SELECT foo FROM bar 
#+END_SRC 

其次,SQL模式接缝的初始字体锁不突出SQL关键字,(至少对我来说,这看起来没有什么区别,无论你打开或关闭)。因此,您需要指定要突出显示哪种SQL。如果你正在使用MySQL,例如:

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

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

+0

我不确定第二部分是否会影响组织中的内联格式。 –

+0

太棒了!作品! – justingordon

2

哦,等一下,试试#+BEGIN_SRC sql小写。有关标识符,请参阅here


尝试刷新显示,使块被重新分区(破坏语法和撤消,或其他)。它经常发生在我身上的是python或bibtex块,但是这可以解决它。

我不明白为什么它不会内联,如果它找到正确的模式,当你C-c'

另外,我认为,作为组织模式更好的特征之一的分身并不完美。从the mailing list

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