My 5 cents is here.
(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)
The following tip will allow backspace to remove pairs: a (|) b โ ab
(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))))
The following tip will make backward-kill-word (for me M-backspace ) remove the corresponding pair, even if it is separated by other text; very comfortably.
(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))
Now I'm trying to move to work.
VitoshKa
source share