Софт

индекс
91,16

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-е, как и многие другие. Хотелось бы отметить, что многие вопросы, мне помогли решить люди из конференции emacs@conference.jabber.ru и я им очень за это благодарен.
И в заключение, хочу сказать, что возможно, такой jabber-клиент покажется новичку неудобным, но поверьте, через несколько недель плотного общения с Emacs-ом, вы взглянете на него по-новому.
+13
11 июля 2008, 22:33
13

комментарии (38)

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

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

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

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

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

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

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

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

Дуг Макилрой, кстати, vi, как и Емакс, назвал уродливым. Но это же не повод переходить на ed. )
0
Vyazovoi #
Емакс разрабатывался не как текстовый редактор, а как платформа для приложений на elisp.
Первыми приложениями стали текстовый редактор и news-клиент, т.к. это были самые актуальные в то время приложения.
0
lol2Fast4U #
Emacs — не юникс вей, потому что GNU — не юникс.
+2
alexott #
а вот тут есть статья не только про джаббер, но и другие средства коммуникации, поддерживаемые Емаксом - Yahoo Chat!, IRC, etc.
+1
alexott #
Да, еще - я добавил этот блог на "Русскую планету Emacs"
+1
alexott #
что-то с ссылками - вот правильные:
http://emacs.defun.ru - планета Emacs
http://xtalk.msk.su/~ott/ru/writings/emacs-im/ - статья про Emacs + средства коммуникации
+1
Vyazovoi #
Это все заурядность, Емакс сразит на повал любого возможностью хакать его, причем прям в рантайме.
Хаки в студию!!
Рекомендую побродить по http://www.emacswiki.org/cgi-bin/wiki
И заглянуть на канал #emacs на freenode

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