当我试图在org-mode中突出显示SQL代码时,突出显示失败:
#+BEGIN_SRC SQL
SELECT *
FROM Production.Product
ORDER BY Name ASC;
#+END_SRC SQL
它对于Python、Shell等非常有效,但对于SQL不起作用。我想知道我是否使用了错误的关键字。
考虑到这一点:
- 我如何突出显示SQL代码?
- 在哪里可以找到支持的语言列表?
当我试图在org-mode中突出显示SQL代码时,突出显示失败:
#+BEGIN_SRC SQL
SELECT *
FROM Production.Product
ORDER BY Name ASC;
#+END_SRC SQL
它对于Python、Shell等非常有效,但对于SQL不起作用。我想知道我是否使用了错误的关键字。
考虑到这一点:
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
。
您可以通过键入C-h a -mode$
来获取所有这些函数的列表,即搜索所有以-mode
结尾的函数,但结果列表包含许多不是用于编程语言的主要模式的模式。
另一种选项是告诉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
)。