2012-02-26 13 views
7

Quando si immette il codice, Emacs evidenzia in modo temporaneo la parentesi o la parentesi corrispondente. Con il codice esistente, tuttavia, c'è un modo per chiedergli di evidenziare una parentesi o parentesi corrispondente se evidenzi il suo gemello?Evidenziazione di brace e bracketing Emacs?

Sto spesso cercando di eseguire un controllo di integrità quando si tratta di errori e avvisi del compilatore. Inserisco solitamente entrambe le parentesi durante la codifica prima di inserire il codice nel mezzo, ma occasionalmente ho commentato involontariamente una parentesi quando si commentava il codice durante il debug.

Qualche consiglio con la gestione della parentesi graffa e della parentesi con Emacs?

Il sistema operativo è principalmente Linux/Unix, ma lo uso anche su OS X e Windows.

+2

possibile duplicato di [Qual è il comando per abbinare le parentesi in Emacs?] (Http://stackoverflow.com/questions/261522/what-is-the-command-to-match-brackets-in-emacs) –

risposta

10

Se hai a che fare con un linguaggio che lo supporta, dai uno sguardo serio a ParEdit. Se non stai usando con un dialetto Lisp, non è altrettanto utile però.

Per l'evidenziazione di parentesi graffa/parentesi/paren, esaminare la modalità highlight-parentheses (il cui colore codifica più livelli di controventi ogni volta che point è all'interno di essi). È inoltre possibile attivare show-paren-mode tramite personalizzazioni (ovvero M-x customize-variable show-paren-mode); quello evidenzia fortemente la parentesi graffa/parentesi graffa/parentesi che ne combina una al punto (se quella in corrispondenza del punto non corrisponde a nulla, si ottiene un colore diverso).

mia .emacs contiene attualmente (tra le altre cose)

(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) 

così come quella show-paren-mode personalizzazione, che mi serve bene (ovviamente, anche io uso paredit quando bleso, ma questi sono ancora marginalmente utile).

2

Oltre alla risposta direttamente dallo manual o wiki, dare anche un'occhiata a autopair.

1

BTW, per la domanda immediata: M-x blink-matching-open "riaccenderà" per un paren esistente esistente, come se lo aveste appena inserito. Un altro modo per vedere il paren corrispondente è usare M-C-b e M-C-f (che saltano sopra coppie di pared abbinati), che sono anche comandi di navigazione molto utili.

0

I secondo ParEdit. è molto buono per lo sviluppo frizzante.

FWIW Utilizzo spesso questa funzione per andare al paren di corrispondenza (avanti e indietro).

;; 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 

Declaimer: Io NON sono l'autore di questa funzione, copiata da Internet.

Problemi correlati