当我尝试在org-mode中突出显示SQL代码时,突出显示失败:
#+BEGIN_SRC SQL
SELECT *
FROM Production.Product
ORDER BY Name ASC;
#+END_SRC SQL
它适用于Python,shell等,但不适用于SQL。我想知道我是否使用了错误的关键字。
鉴于此:
答案 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))
例如,默认情况下会为C
(c-mode
)和C++
/ c++
(cpp-mode
)启用此类链接。