Создание emacs для выделения синтаксиса postgresql по умолчанию

Я использую emacs для редактирования моего кода sql. Я работаю 99% времени на postgresql plpgsql код. Все мои файлы с расширением .sql содержат postgresql. Мне любопытно, есть ли способ установить sql-highlight-postgres-keywords SQL, выделяя по умолчанию вместо ANSI SQL, потому что он очень раздражает переключать режим каждый раз, когда я открываю файл.

Ответы

Ответ 1

Обычно в emacs, если вы хотите изменить настройки каждый раз, когда открывается какой-либо режим, вы используете крючок. Нечто похожее на это должно работать:

(add-to-list 'auto-mode-alist
             '("\\.psql$" . (lambda ()
                              (sql-mode)
                              (sql-highlight-postgres-keywords))))

Ответ 2

Если вам нужно работать с разными базами данных, вместо того чтобы использовать крючок, чтобы всегда переключаться на выделение PostgreSQL при открытии файла .sql, вы можете использовать функцию переменных файла Emacs для установки продукта в файл за файлом основа.

Например, если первая строка вашего файла .sql

-- -*- mode: sql; sql-product: postgres; -*-

sql-mode будет автоматически использовать подсветку PostgreSQL.

Подробные сведения о переменных файла Emacs здесь (вы также можете установить их в блоке в любом месте файла) и список имен продуктов Вероятно, eeeest найден, выполнив M-x sql-set-product, отменив значение ansi по умолчанию и нажав TAB, чтобы увидеть список завершения. Примерами являются "mysql", "oracle", "sqlite" и т.д. (Около десятка в моей установке).