Emacs jabber

За время использование операционной системой Linux я перепробовал массу jabber-клиентов. И в конце концов остановился на jabber-el.

Как все созданное для Emacs, этот модуль обладает массой возможностей и потрясающей гибкостью. При работе я сам столкнулся с тем, что некоторые вещи выполняются не так тривиально, как хотелось бы и ответа на эти вопросы в интернете я так и не нашел. Поэтому решился написать эту статью, с описанием некоторых моментов, которые могут пригодиться в работе с jabber-el.

Сначала jabber-el необходимо установить. В Archlinux это тривиально, причем существует два пакета emacs-jabber и emacs-jabber-git. Первый является стабильной версией, которая представлена на офсайте, а вот второй пакет, это более новая версия jabber-el от Кирилла Коринского (одного из разработчиков jabber-el). В новой версии появляются группы в ростере, это то, что первым бросается в глаза при использование данной версии. Вот ее и установим:

$yaourt -S emacs-jabber-git

После чего нужно в файл конфигурации .emacs прописать:

(require 'jabber)

В главном меню появляется Jabber, где есть пункт Customize. Выбрав который, можно настроить все необходимые параметры или воспользовавшись командой:

M-x jabber-customize

То есть нажимаем Alt-x и набираем jabber-customize, завершая ввод нажатием на RET. Все необходимые параметры можно найти в открывшемся буфере.

Первым делом необходимо задать свою учетную запись, которая будет использоваться. Это же можно сделать добавив в .emacs следующие строки:

(setq  jabber-account-list
    (quote (
           ("user@jabber.ru/emacs" (:password . "mypassword") (:network-server . "jabber.ru") (:connection-type . starttls))
           ("username@gmail.com" (:password . "gmailpassword") (:network-server . "talk.google.com") (:connection-type . ssl))
           )
    )
)

В данном случае прописаны два аккаунта, один на jabber.ru, второй на gtalk. Вместо значений user, username, password и gmailpassword необходимо внести свои.

Рекомендую для того, чтобы убрать из ростера отображение отключенных пользователей и справки по работе с ростером, прописать в .emacs следующее:

(jabber-roster-toggle-binding-display)
(jabber-roster-toggle-offline-display)

В дальнейшем, для вызова списка отключенных пользоваталей используется клавиша o в буфере ростера, а справка вызывается клавишей H.

Для проверки правописания в буферах jabber и для назначения некоторых комбинаций клавиш используем:

(add-hook 'jabber-chat-mode-hook 'flyspell-mode)
(global-set-key "\C-x\C-a" 'jabber-activity-switch-to)
(global-set-key (kbd "<f12>") 'jabber-switch-to-roster-buffer)

В данном случае используется комбинация Ctrl+x Ctrl+A для перехода к буферу, в котором было получено новое сообщение. Клавиша F12 используется для быстрого открытия ростера.

На этом простейшая настройка jabber-el заканчивается.

Для установки jabber-el вручную из git Кирилла Коринского (в случае, если используется дистрибутив линукса, в репозитории которого нет новой версии) выполняем следующие действия:

$cd Temp
$git clone git://catap.ru/emacs-jabber/emacs-jabber.git
$cd emacs-jabber
$autoreconf -i
$./configure --prefix=/usr --with-gconf-schema-file-dir=/etc/gconf/schemas \
 --libexecdir=/usr/lib/emacs-jabber
$make
#make install

После чего повторяем действия по конфигурации файла .emacs, что было описано выше.

Установив и отконфигурировав, запускаем jabber-el, используя команду:

M-x jabber-connect

Эта запись значит, что нажимаем сочетание клавиш Alt-x и вводим строку jabber-connect, или просто жмем комбинацию клавиш Ctrl+x Ctrl+j Ctrl+c. Вообще практически все комбинации клавиш начинающиеся с Ctrl+x Ctrl+j закреплены за модулем  jabber, если конечно он используется.

Теперь несколько тонкостей при работе с jabber-el.

  1. Добавление нового пользователя в ростер. Для этого в ростере используется комбинация клавиш Ctrl-c Ctrt-r, после чего жмем 1 (единица). Затем в минибуфере отвечаем на вопросы, то есть вводим JID добавляемого пользователя и выбираем, как он будет показываться в ростере, под каким именем.
    Как подсказали в комментариях, можно то же самое сделать, нажав на s в буфере ростера.
  2. Авторизация пользователя. Когда другой человек добавляет нас к себе, приходит запрос авторизации. При этом в Emacs открывается новый буфер чата с приглашением авторизации, в котором будут прописаны несколько действий, типа Mutual, One-way и Decline. Эти действия, как я недавно выяснил есть не что иное, как обычные кнопки. И для того, чтобы выполнить нужно действие, просто наводим курсор на необходимый пункт и жмем RET.
    Decline – отклонить запрос авторизации.
    One-way – односторонняя подписка.
    Mutual – авторизовать собеседника.
  3. Редактирование данных в ростере. Выбрав нужного нам пользователя, нажимаем клавишу e и отвечаем на ряд вопросов, таких как уточнение, кого именно будем редактировать, как он будет отображаться в ростере, то есть его имя и в какой группе он будет располагаться.

Вот как раз про эти элементарные операции в интернете нет ни слова. Надеюсь начинающим пользователям Emacs эти сведения не покажутся лишними…

Похожие записи:

  1. Emacs Tramp-mode
  2. emacs –daemon
  3. Emacs keymap
  4. mcabber – консольный jabber клиент
  5. Emacs Password Manager

Метки: ,

Отзывов (16) на «Emacs jabber»

  • Огромное вам спасибо. Очень полезная информация. Если можно то сразу вопрос. А как вставлять многосторочные тексты? а то я отказался от него только из-за того, что этот тект отправляется собеседнику по одной строке кучей сообщения. :(

  • Если вы вставляете текст из буфера, он будет вставлен уже многострочным, то есть в том виде, что был… Если вы пишете самостоятельно многострочный текст, то для перехода на новую строку нужно вместо Enter использовать комбинацию Ctrl+j.

  • Про то как написать много сточный я знаю, но как победить отсылание собеседнику 20 сообщений если я отправил ему 20 строчный кусок текста?

  • Каким образом вы вставляете текст в буфер емакса? И еще вопрос, отправка сообщения у вас получается сразу при вставке или уже после нажатия на RET?

  • Очень плохая статья, вводящая в заблуждение :-)

    Не указано, что почти всё продемонстрированное легко делается через Customize. Рецепт установки из гит нерабочий. Добавление нового пользователя: просто «s» в ростере. One-way – это односторонняя подписка на presence. Всё это, а также многое другое отлично описано в info jabber. Актуальная документация это один из приоритетов проекта.

  • Попробуйте jabber-compose.

    Что делать при вставке многострочников, это вопрос. Тут ведь не отличишь от просто последовательного набора многих строк вручную. Предлагайте варианты.

  • Чем же конкретно статья плохая? В чем она вводит в заблуждение?
    Да, этот момент не указал, поправлю в будущем. Рецепт установки из гит рабочий, сам так долгое время ставил, пока в ауре не обратил внимание на гитовский пакет… Добавление нового пользователя, как впрочем и много другое реализуется несколькими способами, описал тот, что использую сам.
    Спасибо за уточнение по One-way, долго думал, как это точно охарактеризовать…

  • $make install в /usr/lib/? Уточнение, как и многое другое… ну, вы понимаете :-)

    Читайте доки, люди, они рулез! :-)

  • да, про make install ошибся, я им не пользовался… всегда использовал сам каталог репозитория, в котором проводил компиляцию… прописывая пути до него, в систему не устанавливал…
    тут вы правы… судо не помешает…
    что еще?

  • Поправить статью? :-)

  • Да, уже вношу изменения…

  • А как можно сделать автоконнект при загрузки емакса?

  • После описания аккаунтов jabber в файле .emacs, просто прописать строку
    jabber-connect-all
    Теперь при загрузке емакса jabber будет запускаться автоматом…

  • небольшое дополнение, или точнее забыл заключить команду в круглые скобки… должно быть так:
    (jabber-connect-all)

  • Спасибо за статью. Не нахожу варианта решения следующей проблемы: во время использования jabber-транспорта серьезно раздражают многострочные статусы в ростере. Каким образом их можно отключить?

  • Я давно уже не использую emacs для работы с jabber, потому не могу припомнить уже варианта решения вашей проблемы.

Вы можете оставить свой комментарий...

Имя (required)
Почта (обязательно)
Сайт