2012-02-26 205 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 

免責聲明:我不是這個功能的作者,從互聯網複製。