如何在Emacs org-mode中禁用electric-pair-mode的尖括号自动配对功能
解决org-mode中electric-pair-mode与org-tempo的尖括号配对冲突
你可以直接在Emacs配置中添加如下org-mode钩子,仅针对org-mode缓冲区修改electric-pair规则,其余模式的配对功能完全不受影响:
(add-hook 'org-mode-hook (lambda () ;; 移除尖括号配对规则,解决输入<自动补全>的问题 (setq-local electric-pair-pairs (seq-remove (lambda (pair) (equal pair '(?< . ?>))) electric-pair-pairs)) ;; 禁止选中区域时用< >包裹选中内容 (setq-local electric-pair-wrap-predicate (lambda (open _close) (not (equal open ?<))))))
如果使用的是Emacs 27及更早版本,没有electric-pair-wrap-predicate变量,可以使用兼容写法,同时覆盖两个问题场景:
(add-hook 'org-mode-hook (lambda () (setq-local electric-pair-inhibit-predicate (lambda (char) ;; 输入尖括号时不触发electric-pair逻辑 (or (= char ?<) (electric-pair-default-inhibit char))))))
配置生效后,org-mode下的括号、引号等配对功能保持正常,仅尖括号不会触发自动配对和选中包裹逻辑,不会干扰org-tempo的模板展开。
内容的提问来源于stack exchange,提问作者HPF
相关产品推荐
相关产品推荐

