Weechat - Отличный консольный irc клиент

Очень давно я использую крайне удобный, настраиваемый и быстрый консольный irc клиент weechat. Сейчас актуальная версия 0.3 в которую почти после двух лет разработки добавили jabber плагин. В чем его прелесть? Прелесть его в очень многом. Во первых, в нем легко написать плагин, сделать это можно на одном из пяти удобных для вас языков: perl, ruby, lua, python и tcl. Еще, что крайне важно: в нем нет проблем с кодировками. Когда-то давно, я пытался использовать всеми так восхваляемый irssi и столкнулся именно с такой проблемой, которую у меня на на тот момент, так и не вышло побороть. Собственно, вот из-за этого, я и начал использовать weechat.

И так, обо всем по порядку.

Получение weechat

В archlinux эта программа есть в репозитариях, поэтому ее установка проста, и тривиальна:

sudo yaourt -S weechat

Если по каким-то причинам, в вашем любимом дистрибутиве нет ее, то вы можете скачать на официальном сайте - http://weechat.org или получить актуальную версию через git:

git clone git://git.sv.gnu.org/weechat.git

Добавление и настройка сервера

Для того что бы подключиться к irc сети, необходимо ее добавить

/server add dalnet irc.avtograd.ru/6667

Здесь я добавляю север irc.avtograd.ru с подключением к 6667 порту,
и даю ему имя dalnet.

Далее установим свои ники =)

/set irc.server.dalnet.nicks "ник1,ник2,ник3,ник4,ник5"

Теперь имя пользователя, и ваше реальное  имя

/set irc.server.dalnet.username "Имя_пользователя"
/set irc.server.dalnet.realname "Реальное_имя"

Если вы хотите автоматически подключатся к сети при включении то пишем:

/set irc.server.dalnet.autoconnect on

Для автовхода на каналы:

/set irc.server.dalnet.autojoin "#channel1,#channel2"

Если вам необходимо выполнить какую либо команду после подключения к серверу, на пример для идентификации ника NickServ используем команду:

/set irc.server.dalnet.command "/msg nickserv identify xxxxxx"

Сохраняем:

/save

Кстати WeeChat сам сохраняет при выходе из программы, но на всякий случай мы сохраним их сейчас.

После всего этого пишем /connect dalnet или если установили автоподключение при запуске, то перезапускаемся и радуемся! ;)

Настройка кодировки

Если на сервере используется отличная от weechat кодировка, то необходимо установить верную с помощью плагина charset.
Если сервер использует CP1251 (какой не православный сервер ;) ) то пишем:

/charset CP1251

Это установит для входящих и исходящих сообщений одну кодировку - CP1251.
Если необходимо разные кодировки для входящих и исходящих сообщений, то служат параметры decode и encode

/charset decode UTF-8
/charset encode CP1251

А теперь главное: Что бы установить кодировку для конкретного сервера, необходимо выполнить команду /charset в ее буфере. Для того, что бы установить глобальную кодировку, необходимо выполнить:

/set charset.default.decode UTF-8
/set charset.default.encode UTF-8

Не забываем сохранять с помощью команды /save !

Проверка орфографии

Пожалуй, уже не один линуксоид не может жить без проверки орфографии :) В weechat для его настройки используется плагин aspell и требует установленного в системе aspell.

Посмотреть все словари которые есть в системе, можно командой:

/aspell dictlist

Вывод команды будет показан в буфере сервера.

Что бы глобально установить русскую проверку орфографии необходимо установить соответствующий параметр в нужное значение:

/set aspell.check.default_dict "ru"

Что бы в определенном буфере установить определенный словарь, необходимо в его буфере установить его. Т.е. допустим что бы установить для англоязычного канала #awesome английский словарь, просто переходим в его буфер и пишем:

/aspell enable en

Кстати, вы всегда можете глобально установить несколько языков для проверки:

/set aspell.check.default_dict "ru, en"

Базовые понятия

В weechat существуют буферы и окна(buffers\window).  По умолчанию, когда вы подключитесь к серверу и зайдете на канал, то у вас будет одно окно, с одним буфером, и небольшое вертикальное окна со списком всех присутствующих. В каждом буфере, не более одного чата. Окно, вы можете поделить на две части или более частей как вам угодно. На пример, для разделения окна на половину по вертикали надо написать:

/window spitv 33

В каждом из окон может быть свой независимый буфер. Для перемещения между окон, используйте клавиши F7\F8.

Для перемещения между буферами, можно использовать команду /buffer и указать номер буфера. На пример команда /buffer 3 перейдет на третий буфер.

Плагины

Как я уже выше писал, в weechat очень большая возможность к расширяемости. Написать дополнения к нему можно на пяти(!) языках: python, ruby, lua, perl и tcl! Сейчас плагинов существует не так много как хотелось бы, но их вполне достаточно. Посмотреть все существующие плагины можно на этой странице - http://weechat.org/plugins/

Вообще, я бы рекомендовал скачать дополнение weeget.py С его помощью, можно просматривать и устанавливать дополнения прямо из самого weechat. И так, скачем и установим weeget. В консоли пишем:

cd ~/.weechat/python/autoload

wget http://weechat.org/files/scripts/weeget.py

Все плагины, weechat держит в своей папке в домашней директории. Для каждого языка своя папка. Для того, что бы weechat загружал необходимые плагины при запуске, надо поместить еще и в папку autoload, что мы и сделали. У каждого языка своя папка autoload.Что бы загрузить недавно добавленные в autoload плагины можно ввести имя языка, и следом команду autoload. На примере perl это может выглядеть так:

/perl autoload

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

/язык load имя_плагина.расширение

На пример для плагина weeget.py

/python load weeget.py

Так же можно просмотреть все доступные с помощью параметра list или выгрузить с помощью unload

/python list

/python unload weeget.py

Для "установки" плагинов я чуть выше рекомендовал weeget. Пользоваться ее крайне просто. Идем в "командный" буфер и пишем следующее:

/weeget list

Появиться список всех плагинов которые есть на сайте. Если вы хотите отсортировать по слову, или тэгу, то просто добавьте его. На пример game:

/weeget list game

Что бы установить плагин, необходимо использовать команду install:

/weeget install имя_плагина

На пример для плагина weetris.pl:

/weeget install weetris

Для удаления служит параметр remove:

/weeget remove weetris

Для получения дополнительной информации напишите

/help weeget

Кстати, крайне полезен плагин buffers который выводит слева, список всех буферов с номерами.

Быстрые клавиши и часто-используемые команды

Команды:

  • /join #канал  Войти на канал
  • /leave - покинуть текущий канал
  • /buffer close - закрыть текущий буффер
  • /buffer clear - очистить буффер
  • /connect имя_сервера - подключиться к определенному серверу
  • /connect -all - подключиться ко всем серверам
  • /disconnect -all - отключиться от всех серверов
  • /disconnect имя_сервера - отключиться от определенного сервера
  • /quit - выход

Быстрые клавиши:

  • ctrl+a - В начало строки
  • ctrl+e - В конец строки
  • ctrl+k - Удалить от позиции курсора, до конца командной строки
  • ctrl+u - Удалить от позиции курсора, до начала командной строки
  • ctrl+w - Удалить предыдущее слово командной строки
  • alt+d  - удалить следущее слово командной строки
  • alt+r  - Удалить все содержимое командной строки
  • ctrl-r - Поиск
  • ctrl+y - Вставить из буфера
  • alt+b  - К предыдущему слову командной строки
  • alf+f  - К следующему слову командной строки
  • alt+n  - Прокрутить к следующему подсвеченному сообщению
  • alt+p  - Прокрутить в предыдущему подсвеченному сообщению
  • alt+u  - Перейти к первому непрочитанному сообщению
  • ctrl+n(F6) - Следующий буфер
  • ctrl+p(F5) - Предыдущий буфер
  • F12 - на одну страницу ников вниз
  • F11 - на одну страницу ников вверх
  • Alt+1-9 - на буфер с номером
  • Alt+a - Перейти к буферу с активностью(где написали ваш ник к примеру)
  • PageUp - пролистать буфер вверх
  • PageDown - пролистать буфер вниз

Заключение

В заключении хочу написать что это еще далеко не все возможности weechat. Я просто описал то, что было бы не плохо настроить и знать перед использованием. К тому же в weechat крайне не плохая своя англоязычная справка которую легко вызвать, просто написав /help.

Ну и напоследок скриншот:

Image downloaded service ITmages

Полезные ссылки:

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

  1. Cmus - консольный музыкальный плеер с vim like управлением
  2. Qingy - "менеджер дисплеев", логин менеджер, и замена agetty
  3. Укорачиваем ссылки из консоли
  4. Liferea как desktop клиент Google Reader
  5. Терминальный оконный менеджер Tmux

{ 17 comments… read them below or add one }

Anonymous

Скринов бы налепил, чтоле.

Ответить

WindBlow

На хабре не стал комментировать, ибо заминусуют…
Нет ли похожего аналога под Windows? Давно ищу именно консольный, но все попадается не то…

Ответить

admin

2 WindBlow в разработке версия по Windows. Посмотри тут детальнее – http://wiki.flashtux.org/wiki/WeeChat_cygwin

Ответить

Сергей Шепелев

> В archlinux эта программа есть в репозитариях, поэтому ее установка проста, и не тривиальна

Наверное, вы хотели сказать, наоборот, тривиальна?

http://slovari.yandex.ru/dict/ushakov/article/ushakov/19/us479808.htm?text=тривиальный&stpar3=1.1

Ответить

admin

Сергей Шепелев: Ох да. Вы правы. Grammar Nazi негодуе.

Ответить

muster

Хороший клиент, и хорошая статья. Спасибо!

Ответить

Polprav

Hello from Russia!
Can I quote a post in your blog with the link to you?

Ответить

bosha

Hello =) Certainly you can =)

Ответить

Juev

Классно! Статейка оказалась в вики!! ;)

Ответить

bosha

В каком ВиКи? о_О

Ответить

x-demon

А как получить serverlist с channel-листом а-ля xchat?

Ответить

bosha

/server list или /server listfull что бы список серверов взять. /list выводит список всех каналов сервера с топиками, в буфере этого канала. Как в xchat не выйдет. Это же все таки не xchat ☺

Ответить

ixti

Отличная статья! Одного не хватило, какой опцией включить отображение буфферов в виде дерева как на скриншоте? :)) Или какой для этого используется плагин. Заранее благодарю! :))

Ответить

bosha

Кстати, крайне полезен плагин buffers который выводит слева, список всех буферов с номерами.

Всегда пожалуйста ;)

Ответить

ixti

Спасибо! Я видимо очень через строку читал :)) В итоге залез на #weechat и там тоже спросил :)) А по сему хотел бы также поделиться полученными знаниями. После установки плагина buffers.pl не помешает выполнить следующие настройки (они, в принципе, интересны не только с этим буффером но и вообще).

/set irc.look.open_channel_near_server on
/set irc.look.open_pv_near_server on
/set irc.look.server_buffer independent

Первые две заставлюят открываться новые буфферы рядом с «хозяйским» сервером. Последняя заставляет сервера открываться в отдельных буфферах а не мержиться с основным буффером.

Без последней опции новые буффера будут просто открываться рядышком друг с другом но сгруппированнеы по серверам. Допустим есть каналы #a, #b с сервера s1 и канал #c с сервера s2. Мы открыли буффера в следующей последовательности: #a, #c, #b. С Включёнными двумя верхними опциями, мы получим такой порядок буфферов:

weechat(core,s1,s2) | #a | #b | #c

с третьей опцией это будет так:

weechat | s1 | #a | #b | s2 | #c

Ну а с плагином buffers.pl это выглядит просто супер :))
Ещё раз спасибо, за ответ и за статью! :))

Ответить

bosha

И Вам спасибо, за весьма полезное дополнение :)

Ответить

ixti

Не удержался и сделал скриншот:
http://itmages.ru/image/view/47121/bc5fbf23

Ответить

Leave a Comment