J'ai la fonction suivante, légèrement adaptée d' ici :
;; Insert text around a region. In this case, it's
;; the LaTeX code environment from the listings package
(defun wrap-code (start end)
"Insert a \begin{code} and \end{code} around a region."
(interactive "r")
(save-excursion
(goto-char start) (insert "\\begin{code}")
(goto-char end) (insert "\\end{code}")
))
;; Assign its shortcut
(global-set-key (kbd "C-c p") 'wrap-code)
Si je sélectionne ensuite une région et applique ma fonction, cela insère \end{code}
le mauvais endroit:
\begin{code}while :; do
echo this is\end{code} a test
done