sql-mode如何格式话代码


#1

打开sql文件,自动使用了sql-mode,但是没法格式化代码.

看了一下sql layer文档http://develop.spacemacs.org/layers/+lang/sql/README.html#install, 里面提到format with sqlfmt,后面也提到快捷键 SPC m = c 问题是sqlfmt怎么配置?里面没提到,快捷键也有 SPC m = c设置。。。


#2
(add-hook 'sql-mode-hook (lambda ()
  (sql-highlight-sqlite-keywords)
  (format-all-mode)
))

python安装pip install sqlparse 然后有一个sqlformat.exe,看format-all-mode的文档,是保存sql文件时自动格式化代码,不过我不用spacemacs


#3

貌似没有效果:sob:


#4

通常major mode会设置indent-region-functionindent-line-function,所以你在任何major mode里使用indent-line indent-region或者indent插件如evil-nerd-commentor应该都能正常工作(因为它们会按convention去调前述两个变量的值),除非major mode作者没有设置好。


#5

好像没说清楚,我是melpa安装了format-all这个包 https://github.com/lassik/emacs-format-all-the-code 不过好多功能都没用过,只用到格式化json和sql


#6

SQL有太多方言了,暂时还真没找到一个好的(我用Postgres为主)。感觉相对较好的是 sqlformat,这是我的配置 https://github.com/zhenwenc/.emacs.d/blob/master/lisp/zc-sql-funcs.el#L5