jabber.el или джаббер-клиента емакса

    В последнее время я начал проводить много времени в редакторе среде Emacs, потому что после некоторого периода адаптации понял, что это очень удобная вещь. Конечно, вы можете спросить, мол а может я линуксойд-фанатик и на самом деле ничего удобного в Emacs-е нет. Попытаюсь аргументировать: разве неудобно когда все под рукой? Все в одном средстве: и тектовый редактор, и средство для планирования (например своего свободного времени на неделе), и почтовый клиент, и средство для работы с системами контроля версий, такими, как CVS или SVN, и даже небольшой, просто веб-браузер (большие сайты он конечно не всегда просматривает правильно, но почитать новости на ЛОР-е удобно вполне). По-моему, такой подход имеет право на существование. Да, и не стоит забывать, что среда Emacs имеет встроенный язык программирования elisp, что позволяет заточить среду под свои конкретные нужды или даже разработать свой собственный встроенный модуль и все это еще и OpenSource! В этой статье, я хочу познакомить читателей с jabber-клиентом Emacs-а, который называется jabber.el.

    Итак, хочется начать с того, что jabber.el разрабатывается отдельно от emacs-а, поэтому не входит в стандартную поставку, но его легко можно доустановить, например в Ubuntu установка сводится к одной строке в консоли:
    sudo aptitude install emacs-jabber
    Лично мне кажется, что в репозиториях различных линукс-дистрибутивов лежит достаточно старая версия jabber.el, поэтому я предпочитаю получать jabber-клиент с git репозитория Кирилла Коринского — одного из разработчиков jabber.el.
    Итак, после установки jabber.el нужно подключить его в файле конфигурации Emacs, который называется (.emacs). Дописываем туда следующую строку:
    (require 'jabber)
    После этого запускаем emacs. Итак, мы указали emacs-у, что надо загрузить модуль jabber.el при старте, теперь необходимо настроить jabber-аккаунт. В emacs-е набираем:
    M-x jabber-customize
    после этого мы попадаем на страницу настроек соединения с jabber-сервером.
    Настройка jabber.el
    После настройки мы можем подключиться к серверу с помощью команды
    M-x jabber-connect
    Или же с помощью нажатия клавиш С-x C-j C-c Не пугайтесь, эти огромные сочетания клавиш, естественно, можно сделать автоматическим, например подключаться к jabber-серверу при запуске редактора или же назначить это большое сочетание клавиш его какой-то, удобный вам шоткат, к примеру, назначим подключение на клавишу , для этого добавим в конфиг Emacs-а следующую строку:
    (global-set-key [f5] 'jabber-connect)
    После подключения можно переключиться на ростер (список контактов) с помощью команды
    M-x jabber-switch-to-roster-buffer
    Или сочетания клавиш C-x C-j C-r
    В верхней части ростера приведен краткий список команд. Например, чтобы зайти в конференцию, необходимо нажать клавишу j, а чтобы начать диалог с кем-нибудь из контактов — нужно подвести к нему курсор и нажать Enter.
    Еще одно интересное действие: допустим, что мы хотим переключиться в буффер, где у нас есть непрочитанные сообщения, для этого достаточно выполнить:
    M-x jabber-activity-switch-to
    Или же лучше добавим это дело в конфиг на на горячие клавиши C-x C-a:
    (global-set-key "\C-x\C-a" 'jabber-activity-switch-to)
    А также интересно было бы включать проверку орфографии в буферах сообщений, для этого добавим следующую строку в конфиг:
    (add-hook 'jabber-chat-mode-hook 'flyspell-mode)
    Это я обнаружил тут
    Как видно, тут используется интересный механизм емакса — ловушки (hooks), т.е. запуск некоторых заданных функций при наступлении какого-то события (в нашем примере при переключении в режим чата, а такой режим используется во всех окнах сообщений jabber.el включается проверка орфографии «на лету»).
    В своей короткой статье я, конечно же, не описал и сотую долю возможностей jabber.el, а уж тем более Emacs-а, — я ведь такой же новичок в Emacs-е, как и многие другие. Хотелось бы отметить, что многие вопросы, мне помогли решить люди из конференции [email protected] и я им очень за это благодарен.
    И в заключение, хочу сказать, что возможно, такой jabber-клиент покажется новичку неудобным, но поверьте, через несколько недель плотного общения с Emacs-ом, вы взглянете на него по-новому.

    Средняя зарплата в IT

    113 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 5 444 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 38

      +1
      1.спасибо за статью - все четко и по делу.
      2.а вобще, удобно юзать IM вкупе с редактором? от работы не отрывает?
      3.ЛОРу привет ))
        0
        Да нет, не мешает. Просто пореже открывать буфер с roster'ом.
          +1
          Самый класс. Не отрывает на переклацывание окна )
          Привет с лора )
            0
            Я вот что по этому вопросу думаю: если ты хочешь отвлечься от работы, то тут все равно будет, отдельным окном у тебя IM или совместно с редактором, а вот если ты не хочешь отвлечься, да и надо время от времени советоваться с коллегой, который сидит в другом конце комнаты или вообще в другом оффисе, то jabber.el будет очень кстати.
              0
              2. Есть такая хорошая программа, называется Intellij IDEA. Она тоже умеет jabber ;) Причем можно послать коллеге позицию в файле.
              +1

              Автор, исправьте, пожалуйста, в заголовке «дажббер» → «джаббер»
              + по мелочи: «контороля» → «контроля», «конифигурации» → «конфигурации», «естеснвенно» → «естественно», «буфферах» → «буферах»

              (но это уже по желанию — главное, что содержание хорошее)

              За материал спасибо:)

                0
                Извиняюсь за грамматические ошибки: ночью в пятницу писал, так что бывает :) Все поправил.
                0
                Btw на хабре есть полумёртвый блог emacs, может туда?
                  0
                  Хм, я в принципе не против. А можно ли на хабре одну статью сразу в два блога запостить?
                  0
                  А у меня всё руки не доходят... посмотреть... =(((
                    +1
                    > дажббер-клиента емакса
                    Превет, русская языка.

                    По теме: использую Emacs только ради jabber.el, так и не нашел другого юзабельного консольного Jabber-клиента. Может есть варианты?
                      +1
                      Mcabber?
                        0
                        «Консольность» есть, юзабельности нет. :)
                        0
                        centerim?
                          0
                          Тоже не юзабелен, иногда ломает ростер, что очень неприятно (контакты переименовываются в JID-ы и помещаются в одну группу, остальные группы убиваются). Да и вообще реализация XMPP там довольно странная, на сколько я помню...
                            0
                            finch(консольная часть Pidgin)
                              0
                              О, не смотрел. Посмотрю, но отношение к птицгыну намекает на качество...
                                0
                                мне их консольный вариант понравился, в свое время :)
                                а отношение к Pidgin у него можете считать такое же, как у Adium.
                                альтернативный интерфейс к libpurple
                        0
                        В jabber-el пару месяцев назад куда то отломали хистори по C-up. А так вообще вместе с electric buffers - это мегачудесная штука. Единственное что, с прокси приходится немного шаманить.
                          0
                          У нас с прокси в конторе как-то не очень строго: начали люди использовать джаббер, подошли к менеджеру, он написал запрос админам и теперь у нас джаббер без проксей =)
                            0
                            А они там разве были? Если да, опиши что было — будем чинить.
                            0
                            О! Лисп! я его 2 недели назад сдавал)
                              0
                              emacs lisp это один из вариантов lisp. Относительно clisp он очень другой.
                              0
                              Даешь блог о emacs!
                                0
                                Ой, он уже есть.
                                Ну тогда даешь в блог о emacs!
                                +1
                                а может я линуксойд-фанатик
                                ...действительно, а может?..
                                но почитать новости на ЛОР-е удобно вполне
                                ...а вот эта фраза уже выдала вас с головой :)
                                  0
                                  ничего не могу с собой поделать =)
                                  0
                                  Когнитивный диссонанс - Emacs ломает принципы юникса, но в то же время разработан идеологом GNU(Gnu's not UNIX) Ричардом Столлманом, который, несмотря на название "флага", который он несет, им(принципам) во многом следует.

                                  А вообще я люблю VIM(который недалеко ушел от Emacs в порождении этого самого диссонанса:)
                                    0
                                    >Emacs ломает принципы юникса
                                    Я использую Emacs в Линуксе, а не в юниксе и для меня в первую очередь имеет значение удобство, а уж потом всякие юникс-веи =)
                                      0
                                      Каким образом он ломает принципы юникса?
                                        0
                                        Известно каким: в юниксе принцип такой: каждая утилита должна делать только то, для чего она предназначена, например, текстовый редактор должен только позволять редактировать текст, почтовый клиент - только читать почту, плейер - только проигрывать музыку, а емакс, который изначально текстовый редактор, выполняет полно функций, которые не соответствуют занимаемой им должности. Поэтому емакс - не юникс вей.
                                          +1
                                          Это как посмотреть. Предлагаю попытаться "за лесом разглядеть деревья".

                                          Мне близка позиция описанная Реймондом в его "Искусстве Программирования для Юникс", в главе "13.3.3 Является ли Емакс доводом против Юникс-традиций?", где он предлагает рассматривать Емакс (по сути та часть, которая написана на си) как виртуальную машину или конструкцию вокруг лисп-скриптов, которые по отдельности "делают одну вещь, но делают ее хорошо" - этот скриптик делает подсветку/отступы ruby, этот выводит номера строк, тот - выводит тулбар со списком буферов и т.д. Чем не юникс-вей? Напрягает тетрис и гнус? Просто удалите их. Аналогия - shell и сотни тысяч скриптов, которые к нему написаны. Разница лишь в том, что дистрибьюторы не поставляют shell со всеми скриптами к нему.

                                          Дуг Макилрой, кстати, vi, как и Емакс, назвал уродливым. Но это же не повод переходить на ed. )
                                            0
                                            Емакс разрабатывался не как текстовый редактор, а как платформа для приложений на elisp.
                                            Первыми приложениями стали текстовый редактор и news-клиент, т.к. это были самые актуальные в то время приложения.
                                              0
                                              Emacs — не юникс вей, потому что GNU — не юникс.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                              +1
                                              Это все заурядность, Емакс сразит на повал любого возможностью хакать его, причем прям в рантайме.
                                              Хаки в студию!!
                                              Рекомендую побродить по http://www.emacswiki.org/cgi-bin/wiki
                                              И заглянуть на канал #emacs на freenode

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое