> А, ну такое и в виме вполне можно устроить. Афаик, плагины вполне
> учитывают существование наиболее популярных из собратьев.Ну тут весь вопрос: кто и с какой стороны должен это существование учитывать.
> Язык же как раз не помеха — лишь бы функции из плагинов
> экспортировались в главное вимовское окружение vimscript'а, а оттуда их можно вызывать
> опять же любым из поддерживаемых языков.
Прежде, чем ответить, хочу всё-таки уточнить: плагины импортируют свои функции в некое общее окружение, а другие модули проверяют, есть ли эти функции в окружении, и если есть, то расширяют свой функционал ими?
Если я всё понял правильно, и всё так, как я только что уточнил выше, то в emacs ситуация прямо противоположная. Каждый плагин помимо основного функционала, предоставляет некоторое количество хуков - грубо говоря, мест, где можно складировать функции. Когда происходит какое-то действие, связанное с хуком, все функции хука последовательно выполняются.
Таким образом gnus ничего не знает о существовании bbdb, и со стороны gnus никакой поддержки не требуется. А вот bbdb знает о существовании gnus и вставляет свои функции в его хуки. Эти функции, как правило, добавляют какому-нибудь режиму работы (с которым связан хук) дополнительные клавиатурные сочетания. Я это к тому, что не gnus проверяет, доступны ли функции, предоставляемые bbdb, а bbdb подставляет свои функции в gnus.
Гибкость проявляется вот ещё в чём: даже если бы bbdb и gnus ничего друг о друге не знали бы, пользователь всегда может сам вставить нужную функцию в нужный хук.