Emacs - 特定括号行为自定义

Emacs - 特定括号行为自定义

在 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)

相关内容