【问题标题】:Making emacs to highlight postgresql syntax by default让emacs默认高亮postgresql语法
【发布时间】:2011-01-25 13:09:45
【问题描述】:

我使用 emacs 来编辑我的 sql 代码。我 99% 的时间都在使用 postgresql plpgsql 代码。我所有扩展名为 .sql 的文件都包含 postgresql。我很好奇有没有办法设置 sql-highlight-postgres-keywords SQL 高亮默认而不是 ANSI SQL,因为每次打开文件时切换模式很烦人。

【问题讨论】:

  • sql-highlight-postgres-keywords 是变量吗?我在 Emacs 23 中找不到它。我使用了 M-x sql-mode,它似乎可以工作,但这只是一次性的。
  • 我在 sql-mode 中使用 sql-highlight--keywords 来根据 DB 更改语法高亮。如果您不在 sql-mode 中,您将无法使用它。
  • ^ 谢谢。是的,它在 sql 模式下工作 :)

标签: emacs plpgsql postgresql


【解决方案1】:

如果您需要使用不同的数据库,而不是使用钩子在打开 .sql 文件时始终切换到 PostgreSQL 突出显示,您可以使用 Emacs 的文件变量功能来逐个文件设置产品基础。

例如,如果您的 .sql 文件的第一行是

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

sql-mode 会自动使用 PostgreSQL 高亮显示。

有关 Emacs 文件变量 here 的完整详细信息(您也可以将它们设置在文件中的任何位置的块中),并且产品名称列表可能最容易通过执行 M-x sql-set-product 找到,退格 ansi 默认值,并点击 TAB 以查看完成列表。例如“mysql”、“oracle”、“sqlite”等(在我的安装中大约有十几个)。

【讨论】:

    【解决方案2】:

    通常在 emacs 中,如果您想在每次打开某些模式时更改设置,则使用挂钩。类似的东西应该可以工作:

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

    【讨论】:

    • 谢谢,看起来就是我要找的东西。
    猜你喜欢
    • 2015-01-02
    • 2010-10-26
    • 2012-07-01
    • 2011-02-11
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    相关资源
    最近更新 更多