![Emacs - 特定括号行为自定义](https://linux22.com/image/1365439/Emacs%20-%20%E7%89%B9%E5%AE%9A%E6%8B%AC%E5%8F%B7%E8%A1%8C%E4%B8%BA%E8%87%AA%E5%AE%9A%E4%B9%89.png)
在 emacs 中,我更喜欢括号和方括号的电气对模式行为,而不是看似“跳跃”的默认行为。
但是,我目前使用自动换行符,并且喜欢使用花括号插入的自动换行符(我使用 BSD 样式缩进)。
我想弄清楚的是如何最好地结合这些行为,以便当我输入一个左花括号时,会跟着出现一个缩进行和右括号。
我尝试在 Google 上寻找可能的解决方案,但却无法准确表达出我所寻找的内容。
答案1
我找不到一个简单的方法来做你想做的事,但最终electric-layout-mode
可能会有帮助。所以我提供以下技巧:
(defun c-open-brace ()
(interactive)
(let ((electric-pair-mode nil))
(c-electric-brace nil)
(save-excursion (newline) (insert ?}) (indent-according-to-mode))))
(define-key c-mode-map (kbd "{") 'c-open-brace)