2012-02-26 207 views
7

输入代码时Emacs会瞬时突出显示匹配的大括号或括号。但是,现有的代码有没有办法让它突出显示一个匹配的支架或支架,如果我强调它的双胞胎?Emacs括号和括号突出显示?

我经常试图在处理编译器错误和警告时进行完整性检查。在插入代码之前,我通常在编码时输入两个大括号,但在调试时注释掉代码时偶尔会无意中注释掉一个大括号。

任何处理大括号和括号与Emacs匹配的意见?

OS主要是Linux/Unix,但我也在OS X和Windows上使用它。

+2

可能重复[在Emacs中匹配括号的命令是什么?](http://stackoverflow.com/questions/261522/what-is-the-command-to-match-brackets-in-emacs) – 2012-02-26 15:57:02

回答

10

如果您正在处理支持它的语言,请认真对待ParEdit。如果你没有使用Lisp方言,那么它并没有那么有用。

对于一般括号/括号/ paren高亮显示,请查看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定制,供应我很好(当然,我也口齿不清时使用paredit,但这些仍然是用处不大)。

1

顺便说一句,对于直接的问题:M-x blink-matching-open将对已有的关闭参数“重新眨眼”,就像刚插入它一样。看到匹配paren的另一种方法是使用M-C-b和M-C-f(它跳过匹配的parens对),这也是非常有用的导航命令。

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 

免责声明:我不是这个功能的作者,从互联网复制。