在org-mode中突出显示语法。语言清单?

时间:2014-03-18 15:56:47

标签: emacs org-mode

当我尝试在org-mode中突出显示SQL代码时,突出显示失败:

#+BEGIN_SRC SQL
SELECT *
FROM Production.Product
ORDER BY Name ASC;
#+END_SRC SQL

它适用于Python,shell等,但不适用于SQL。我想知道我是否使用了错误的关键字。

鉴于此:

  • 如何突出显示SQL代码?
  • 我在哪里可以找到支持的语言列表?

2 个答案:

答案 0 :(得分:9)

SQL应为小写sql,您无需在END_SRC行重复语言名称:

#+BEGIN_SRC sql
  SELECT *
  FROM Production.Product
  ORDER BY Name ASC;
#+END_SRC

org-mode只是将-mode附加到给定的语言名称,并尝试查找主要模式函数。 Emacs Lisp函数名称区分大小写,因此sql-mode存在SQL-mode,而-mode$则不存在。

您可以通过键入 Ch a -mode来获取所有此类函数的列表,即搜索以{{1}}结尾的所有函数,但结果列表包含许多不是编程语言主要模式的模式。

答案 1 :(得分:3)

另一个选择是告诉org-mode sql-mode应该使用SQL代码段。这可以使用变量org-src-lang-modes

来完成
(add-to-list 'org-src-lang-modes (cons "SQL" 'sql))

例如,默认情况下会为Cc-mode)和C++ / c++cpp-mode)启用此类链接。