यहां मेरे 5 सेंट भी हैं।
(defadvice delete-backward-char (before delete-empty-pair activate)
(if (eq (cdr (assq (char-before) skeletons-alist)) (char-after))
(and (char-after) (delete-char 1))))
अगला सलाह backward-kill-word
कर देगा (मेरे लिए एम बैकस्पेस है)> अब - ख | एक():
(setq skeleton-pair t)
(defvar skeletons-alist
'((?\(. ?\))
(?\" . ?\")
(?[ . ?])
(?{ . ?})
(?$ . ?$)))
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\'") 'skeleton-pair-insert-maybe)
अगला सलाह जोड़े को हटा देता है के लिए बैकस्पेस सक्षम हो जाएगा मिलान पाठ को हटाने के लिए भले ही यह अन्य पाठ से अलग हो; बेहद सुविधाजनक।
(defadvice backward-kill-word (around delete-pair activate)
(if (eq (char-syntax (char-before)) ?\()
(progn
(backward-char 1)
(save-excursion
(forward-sexp 1)
(delete-char -1))
(forward-char 1)
(append-next-kill)
(kill-backward-chars 1))
ad-do-it))
मैं अब paredit है, हालांकि स्थानांतरित करने के लिए कोशिश कर रहा हूँ।
मैंने पहले ऐसा मैक्रो इस्तेमाल किया था, लेकिन आज मैं कई अलग-अलग संपादकों का उपयोग करता हूं (emacs, vs, eclipse, pn) कि मैं इस तरह की सुविधा पर भरोसा नहीं कर सकता। इसके बजाय मैंने इस व्यवहार को आंतरिक बना दिया और बिना किसी संतुलित चरित्र को रिफ्लेक्सिव रूप से डाले बिना बाएं तरफ वाले चरित्र को मुश्किल से टाइप कर सकते हैं। गैर-प्रोग्रामर जो मुझे ऐसा सोचते हुए देखते हैं मैं अजीब हूं। – Zano