输入代码时,Emacs会暂时突出显示匹配的支架或支架。使用现有代码,如果我突出显示它的双胞胎,有没有办法要求它突出显示匹配的支架或支架?
在处理编译器错误和警告时,我经常尝试进行健全性检查。在插入代码之前,我通常在编码时输入两个大括号,但在调试时注释掉代码时,有时会无意中注释掉一个大括号。
处理与Emacs匹配的支架和支架的任何建议?
操作系统主要是Linux / Unix,但我也在OS X和Windows上使用它。
答案 0 :(得分:10)
如果您正在使用支持它的语言,请认真对待ParEdit。如果你没有使用Lisp方言,那它就不那么有用了。
对于一般大括号/支架/突出显示,请查看highlight-parentheses模式(当point
在其中时,颜色会对多个大括号进行编码)。您还可以通过自定义设置(show-paren-mode
)启用M-x customize-variable show-paren-mode
;那一个强烈突出显示支点/支架/ paren匹配一个点(如果点上的一个不匹配任何东西,你得到一个不同的颜色)。
我的.emacs
目前包含(其中包括)
(require 'highlight-parentheses)
(define-globalized-minor-mode global-highlight-parentheses-mode highlight-parentheses-mode
(lambda nil (highlight-parentheses-mode t)))
(global-highlight-parentheses-mode t)
以及show-paren-mode
定制,这对我很有用(当然,我在lisping时也使用paredit,但这些仍然有用)。
答案 1 :(得分:2)
答案 2 :(得分:1)
答案 3 :(得分:0)
我是第二个ParEdit。对于lisp开发来说,它是非常好的。
FWIW我经常使用这个功能来匹配paren(来回)。
;; goto-matching-paren
;; -------------------
;; If point is sitting on a parenthetic character, jump to its match.
;; This matches the standard parenthesis highlighting for determining which
;; one it is sitting on.
;;
(defun goto-matching-paren ()
"If point is sitting on a parenthetic character, jump to its match."
(interactive)
(cond ((looking-at "\\s\(") (forward-list 1))
((progn
(backward-char 1)
(looking-at "\\s\)")) (forward-char 1) (backward-list 1))))
(define-key global-map [(control ?c) ?p] 'goto-matching-paren) ; Bind to C-c p
声明:我不是这个函数的作者,是从互联网上复制的。
答案 4 :(得分:0)
在emacs 26上尝试
(show-paren-mode 1)
(setq show-paren-style 'mixed)
要在两个位置之间切换光标位置/点,请将此脚本放入.emacs
(defun swcbrace ()(interactive)
(if (looking-at "(")(forward-list)
(backward-char)
(cond
((looking-at ")")(forward-char)(backward-list))
((looking-at ".)")(forward-char 2)(backward-list))
)))
(global-set-key (kbd "<C-next>") 'swcbrace)
通过按Control-Pgdn可以进行切换
答案 5 :(得分:0)
如果只想检查平衡的定界符(括号,方括号或花括号),则可以使用backward-sexp
(绑定到 Ctrl Alt B )和forward-sexp
(绑定到 Ctrl Alt F )来向前和向后跳过相应的定界符。这些命令非常易于浏览源文件,跳过结构和函数定义,而无需进行任何缓冲区修改。
答案 6 :(得分:0)
您可以在 init.el
中设置以下内容:
(setq show-paren-delay 0)
(show-paren-mode 1)
确保匹配的括号突出显示。
请注意,(setq show-paren-delay 0)
需要在 (show-paren-mode 1)
之前设置,以便根据 wiki 突出显示没有延迟。
如果要快速检查当前文件中的括号是否平衡:
M-x check-parens
两个选项都在 Emacs 27.1 上测试