Ho la seguente funzione, leggermente adattata da qui :
;; 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)
Se poi seleziono una regione e applico la mia funzione, inserisce \end{code}
nel posto sbagliato:
\begin{code}while :; do
echo this is\end{code} a test
done