Постарался разобраться в коде не читая ваших объяснений. А ведь круто же вышло. Вроде простая задача, но элегантное решение.
Не жалею, что я год назад перешел на Emacs. И да lisp — сила!
>Хотя для этого нужно выйти из редактора, да.
У одного моего знакомого в одной панели emacs-а находится сам редактор, а в другой панели — jabber-клиент… :)
Очень удобно, кстати. Когда у тебя чат на том же расстоянии, что и код, который ты тут правишь — это даже проще, чем на Mac между spaces переключаться.
Если заметить, что практически в любом месте foo можно вставлять любой код и вызов любой другой функции и полученная функция foo будет практически одноранговой частью текстового редактора в котором всё это и делается набирается, — то получается, что такие вещи есть не везде.
Плюс, каждый «чих» в emacs имеет свою функцию с именем, точнее каждую функцию можно вызвать.
Ещё одна возможность, которая меня поразила: Wdired mode, не знаю получится ли увидеть то, не *что* становится возможно сделать с её помощью (это можно сделать ещё тысячами способов), а то *как* это можно сделать: lazy редактор каталогов файловой системы.
Текстовый редактор не держит же вас в плену?
Если в нём что-то не делается или делается сложно, то всегда можно и следует воспользоваться другим более подходящим инструментом.
Конечно, в emacs текст редактировать не сложно. Сложно после него пользоваться другими программами. IMHO, это минус emacs.
Но если редактировать текст перлом, должно быть другими программами будет пользоваться ещё сложнее.
Работа с умом, а не руками: пример увеличения производительности редактирования текста в Emacs