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

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

2 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам