Захотелось автоматически заменять defvar на ∃, defun на ∃ƒ, lambda на λ и т.д. Я так понял этим занимается функция compose-region, однако она не работает если исходный регион заменяется несколькими символами как в случае с ∃ƒ. А именно оно выводитвсе символы в одно место т.е. (compose-region 1 5 «hello») по идее должно заменить первые пять символов в буфере на hello, но работает как будто удаляет первые пять символов и потом все буквы «hello» выводит в одну позицию точки один поверх другого...
В идеале так же было бы здорово заменять (not (foo)) на ¬(foo), но я не придумал как... :(
Кто-нибудь делал что-то подобное?