Par exemple, je veux que tout le texte entre parenthèses, (), soit en majuscules. Il est trivial de faire ce qui suit de manière interactive :
M-x query-replace-regexp
replace: "(\(.+?\))"
with : "(\,(upcase \1))"
Au lieu de cela, je veux écrire un defun
qui le fera :
(defun upcs ()
(interactive)
(goto-char 1)
(while (search-forward "(\\(.+?\\))" nil t) (replace-match "(\\,(upcase \\1))" t nil)))
mais ça ne marche pas ! Alors que la méthode suivante fonctionne (elle ajoute foo
y bar
aux textes entre parenthèses) :
(defun HOOK ()
(interactive)
(goto-char 1)
(while (search-forward-regexp "(\\(.+?\\))" nil t) (replace-match "(foo \\1 bar)" t nil)))