Блокировка шрифтов для SQL-MODE внутри ORG-MODE, а не блокировка шрифтов
Связанный с вопросом: org-mode: исходный код блокирует код
У меня самые последние версии org-mode и emacs по состоянию на 1 ноября 2012 года (org хранится в org-20121105).
У меня также есть sql-режим, который поставляется с emacs-24.
Я получил справочную информацию:
;; 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] (который я также использовал в качестве типа источника), и блокировка шрифтов работает.
Заранее спасибо за любые советы.
2 ответа
Во-первых, имя режима блока 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. Это должно работать сейчас.
Ой, подождите, попробуйте положить #+BEGIN_SRC sql
в нижнем регистре. Смотрите здесь для идентификаторов.
Попробуйте обновить дисплей, сделав повторный анализ блока (нарушите синтаксис и отмените, или что-то еще). Это часто случается со мной с блоками Python или Bibtex, но это исправляет.
Я не понимаю, почему он не будет встроен, если он найдет правильный режим, когда вы нажмете Cc '.
Кроме того, я боюсь, что фонтификация, хотя и является одной из самых приятных функций в режиме org, не совсем идеально обрабатывается. Из списка рассылки:
Механизм фонификации не очень мощный и его легко одурачить.