为什么在编写sql文件时小括号内缩进是7个空格

为什么在编写sql文件时小括号内缩进是7个空格,我已经修改了

(setq-default indent-tabs-mode nil)
(setq-default tab-width 2)

但是在括号内完全不起作用

而且我要怎样设置才能实现括号内按下回车键后自动缩进,就像nvim一样

根据回答

Emacs does not come anything useful for sql indenting.

所以需要这个 or sql-treesit

自动缩进可以看 electric-pair-modeelectric-indent-mode

2 个赞

谢谢,但是感觉还是没有nvim的自动缩进好用,我先用nvim写sql吧

我找到这个问题的答案了,并且知晓了Emacs的魅力所在。先说答案,Emacs默认tab按键绑定的是 indent-for-tab-command 上

见上图,但是这个命令在某些情况的缩进过于古怪或者说错乱,当然也许是我的理解还不够也许它能够被改写,但是我需要的仅仅是一个tab按键然后它插入几个空格那么简单,我需要掌控我的tab按键而不是每次按下它都是意料之外的结果,所以

(global-set-key (kbd "TAB") (lambda () (interactive) (insert "  ")))

我设置的简单粗暴,全局生效,这样不管到哪里它只是两个空格。

2 个赞

类似函数的缩进,默认是对齐了第一个单词加后面的空格,select 是 6 个字符,你换一个其他长度的关键字试一下就知道了

1 个赞

多谢,为什么Emacs默认的缩进会这么奇怪,我看了有关缩进的命令,确实很多,但是我没找到一条好用的