我使用emacs编辑我的sql代码。我99%的时间都在postgresql plpgsql代码上工作。扩展名为.sql的所有文件都包含postgresql。我很好奇有没有办法设置 sql-highlight-postgres-keywords SQL突出显示默认值而不是ANSI SQL,因为每次打开文件时切换模式都很烦人。
答案 0 :(得分:19)
如果您需要使用不同的数据库,而不是使用挂钩在打开.sql文件时始终切换到PostgreSQL突出显示,则可以使用Emacs的文件变量功能在逐个文件中设置产品基础。
例如,如果.sql文件的第一行是
-- -*- mode: sql; sql-product: postgres; -*-
sql-mode将自动使用PostgreSQL突出显示。
有关Emacs文件变量here的完整详细信息(您也可以在文件中的任何位置设置它们),并且通过执行M-x sql-set-product
可能最简单地找到产品名称列表,退回{ {1}}默认,然后点击TAB查看完成列表。例如“mysql”,“oracle”,“sqlite”等(我的安装中大约有十几个)。
答案 1 :(得分:16)
通常在emacs中,如果要在每次打开某个模式时更改设置,请使用挂钩。类似的东西应该有效:
(add-to-list 'auto-mode-alist
'("\\.psql$" . (lambda ()
(sql-mode)
(sql-highlight-postgres-keywords))))