【问题标题】:Font-locking for SQL-MODE inside of ORG-MODE not font-lockingORG-MODE 内部 SQL-MODE 的字体锁定不是字体锁定
【发布时间】:2012-11-15 20:50:07
【问题描述】:

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

我有截至 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](我也尝试将其作为源类型),并且字体锁定有效。

提前感谢您的任何提示。

【问题讨论】:

  • setq 当然已经评估过了?你能在块中C-c '(C-c 引号)用正确的主模式在新缓冲区中打开它,看看它是否被正确检测到?

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


【解决方案1】:

首先,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。它现在应该可以工作了。

【讨论】:

  • 我不确定第二部分是否会影响 org 中的内联格式。
【解决方案2】:

哦,等等,尝试将#+BEGIN_SRC sql 输入小写。标识符见here


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

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

另外,我担心字体化虽然是 org-mode 更好的功能之一,但并不能完全完美地处理。来自the mailing list

字体化引擎不是很强大,很容易上当。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多