再分享一个:
(defun ins-c++-curly ()
"Insert {}.
Threat is as function body when from endline before )"
(interactive)
(if (looking-back "\\()\\|try\\|else\\|const\\|:\\)$")
(progn
(insert " {\n\n}")
(indent-according-to-mode)
(forward-line -1)
(indent-according-to-mode))
(insert "{}")
(backward-char)))
(add-hook 'c-mode-common-hook 'my-c-common-hook)
(defun my-c-common-hook ()
(define-key c-mode-base-map "{" 'ins-c++-curly))
这是我刚入坑的时候急切寻找的另一个function,输入大括号并换行并把光标放在中间(我绑了个<C-return>然后把if去掉了)。来源在这里:cc mode - New line and autoindent braces in ccmode in Emacs - Stack Overflow
题外话:
逗号的话,因为在行尾输入之后没有要跑回前面括号里这样的问题,我竟然一直没想到它可以和分号一样简化一下
这次抛砖引玉我给自己打9.9分