gpt4 book ai didi

ruby - 在 emacs 电动模式下抑制额外的大括号

转载 作者:数据小太阳 更新时间:2023-10-29 08:34:57 27 4
gpt4 key购买 nike

我开始使用 ruby​​-electric-mode。我喜欢它,除了我自己习惯于关闭左括号(其他配对对我仍然有用)。当我自己输入右括号时,如何让 emacs 抑制额外的括号?我现在每次都手动删除自动神奇插入的括号。

提前致谢,拉古。

最佳答案

听起来你想要的是让 跳转到(已经插入的)},或者简单地插入一个 } 并删除之前由电动模式插入的}

这段代码应该做你想做的,在 上做什么的选择由变量 my-ruby-close-brace-goto-close 切换。

;; assuming
;; (require 'ruby)
;; (require 'ruby-electric)
(defvar my-ruby-close-brace-goto-close t
"Non-nill indicates to move point to the next }, otherwise insert }
and delete the following }.")

(defun my-ruby-close-brace ()
"replacement for ruby-electric-brace for the close brace"
(interactive)
(let ((p (point)))
(if my-ruby-close-brace-goto-close
(unless (search-forward "}" nil t)
(message "No close brace found")
(insert "}"))
(insert "}")
(save-excursion (if (search-forward "}" nil t)
(delete-char -1))))))
(define-key ruby-mode-map "}" 'my-ruby-close-brace)

关于ruby - 在 emacs 电动模式下抑制额外的大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1760859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com