Крайне давно, я использую замечательный консольный IRC клиент WeeChat. У него очень много достоинств, на пример для него можно написать расширения на пяти(!) языках: perl, ruby, python, lua, tcl). Русскоязычной документации по нему почти нету, и на хабре ни единого упоминания про него. Именно поэтому, я решил сделать копипасту со своего блога сюда, в хабрахабр.
Не так давно, после двух лет разработки, и принятия около 1000 патчей и улучшений, вышла версия 0.3. Все ждали появления jabber плагина, и он там появился, но крайне сырой. Кстати сам по себе weechat, не умеет работать с сетями (IRC/etc), он умеет выводить только информацию через ncurses (в разработке GUI на QT, GTK и Tcl). Все его возможности осуществляют плагины (IRC, aspell, charset etc обо всем этом чуть ниже).
И так приступим:
Weechat сейчас входит в состав почти всех распространенных дистрибутивов. Так что вы можете его установить оттуда. Если его в них нет, или вы хотите самую свежую версию, то можете скачать и собрать из git:
Для того, чтобы подключиться к irc сети, необходимо ее добавить:
Здесь я добавляю сервер irc.avtograd.ru с подключением к 6667 порту,
и даю ему имя dalnet.
Далее установим свои ники =)
Теперь имя пользователя, и ваше реальное имя
Если вы хотите автоматически подключатся к сети при включении, то пишем:
Для автовхода на каналы:
Если вам необходимо выполнить какую либо команду после подключения к серверу, на пример для идентификации ника NickServ используем команду:CE
Сохраняем:
После всего этого пишем /connect dalnet или если установили автоподключение при запуске, то перезапускаемся и радуемся! ;)
Кодировка это на мой взгляд сильная сторона этого клиента. В нем она настраивается легко, и не принужденно. При чем очень гибко.
Если сервер использует CP1251 (какой не православный сервер ;) ) то пишем:
Это установит для входящих и исходящих сообщений одну кодировку – CP1251.
Если необходимо разные кодировки для входящих и исходящих сообщений, то служат параметры decode и encode
А теперь главное: Чтобы установить кодировку для конкретного сервера, необходимо выполнить команду /charset в ее буфере. Допустим, чтобы установить глобальную кодировку, необходимо выполнить:.
Пожалуй, уже не один линуксоид не может жить без проверки орфографии :) В weechat для его настройки используется плагин aspell и требует установленного в системе aspell.
Посмотреть все словари которые есть в системе, можно командой:
Вывод команды будет показан в буфере сервера.
Чтобы глобально установить русскую проверку орфографии необходимо установить соответствующий параметр в нужное значение:
Чтобы в определенном буфере установить определенный словарь, необходимо в его буфере установить его. Т.е. допустим чтобы установить для англоязычного канала #awesome английский словарь, просто переходим в его буфер и пишем:
Кстати, вы всегда можете глобально установить несколько языков для проверки:
В weechat существуют буферы и окна (buffers\window). По умолчанию, когда вы подключитесь к серверу и зайдете на канал, то у вас будет одно окно, с одним буфером, и небольшое вертикальное окна со списком всех присутствующих. В каждом буфере, не более одного чата. Окно вы можете поделить на две или более частей как вам угодно. На пример, для разделения окна на половину по вертикали надо написать:
В каждом из окон может быть свой независимый буфер. Для перемещения между окон, используйте клавиши F7\F8.
Для перемещения между буферами, можно использовать команду /buffer и указать номер буфера. На пример команда /buffer 3 перейдет на третий буфер.
Как я уже выше писал, в weechat очень большая возможность к расширяемости. Написать дополнения к нему можно на пяти(!) языках: python, ruby, lua, perl и tcl! Сейчас плагинов существует не так много как хотелось бы, но их вполне достаточно. Посмотреть все существующие плагины можно на этой странице – weechat.org/plugins
Вообще, я бы рекомендовал скачать дополнение weeget.py С его помощью, можно просматривать и устанавливать дополнения прямо из самого weechat. И так, скачем и установим weeget. В консоли пишем:
Все плагины, weechat держит в своей папке в домашней директории. Для каждого языка своя папка. Для того, чтобы weechat загружал необходимые плагины при запуске, надо поместить еще и в папку autoload, что мы и сделали. У каждого языка своя папка autoload.Чтобы загрузить недавно добавленные в autoload плагины можно ввести имя языка, и следом команду autoload. На примере perl это может выглядеть так:
Чтобы загрузить какой либо плагин, необходимо в зависимости от языка на котором он сделан положить в директорию, и написать примерно следующую конструкцию:
На пример для плагина weeget.py
Так же можно просмотреть все доступные с помощью параметра list или выгрузить с помощью unload
Для «установки» плагинов я чуть выше рекомендовал weeget. Пользоваться ее крайне просто. Идем в «командный» буфер и пишем следующее:
Появиться список всех плагинов которые есть на сайте. Если вы хотите отсортировать по слову, или тэгу, то просто добавьте его. На пример game:
Чтобы установить плагин, необходимо использовать команду install:
На пример для плагина weetris.pl:
Для удаления служит параметр remove:
Для получения дополнительной информации напишите:
Кстати, крайне полезен плагин 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.
Напоследок скриншот:

Полезные ссылки:
* Документация weechat на нескольких языках
* Страница с плагинами
* Weechat WiKi
* IRC: irc.freenode.net каналы #weechat и #weechat-fr
* Пописка на рассылку
* Архив рассылки
* Обратная связь с авторами – weechat-support@nongnu.org
* Оригинал в моем блоге
Публикую в своем личном блоге, т.к. подходящего не нашел, и не знаю уместен ли подобный пост здесь. Предложения по публикации в определенный блог уместны, и буду им крайне рад =)
Кстати, этот пост, меня попросил написать мой хороший знакомый renya. Он давно читает хабр, но у него нету аккаунта здесь. Если есть добрые люди с инвайтом, поделитесь с ним — renya-vad@yandex.ru =)
UPD: Перенес в *nix. Более подходящего блога не нашел.
Не так давно, после двух лет разработки, и принятия около 1000 патчей и улучшений, вышла версия 0.3. Все ждали появления jabber плагина, и он там появился, но крайне сырой. Кстати сам по себе weechat, не умеет работать с сетями (IRC/etc), он умеет выводить только информацию через ncurses (в разработке GUI на QT, GTK и Tcl). Все его возможности осуществляют плагины (IRC, aspell, charset etc обо всем этом чуть ниже).
И так приступим:
Получение weechat
Weechat сейчас входит в состав почти всех распространенных дистрибутивов. Так что вы можете его установить оттуда. Если его в них нет, или вы хотите самую свежую версию, то можете скачать и собрать из 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 используем команду:CE
/set irc.server.dalnet.command "/msg nickserv identify xxxxxx"
Сохраняем:
/save
После всего этого пишем /connect dalnet или если установили автоподключение при запуске, то перезапускаемся и радуемся! ;)
Настройка кодировки
Кодировка это на мой взгляд сильная сторона этого клиента. В нем она настраивается легко, и не принужденно. При чем очень гибко.
Если сервер использует 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
Проверка орфографии
Пожалуй, уже не один линуксоид не может жить без проверки орфографии :) В 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! Сейчас плагинов существует не так много как хотелось бы, но их вполне достаточно. Посмотреть все существующие плагины можно на этой странице – weechat.org/plugins
Вообще, я бы рекомендовал скачать дополнение weeget.py С его помощью, можно просматривать и устанавливать дополнения прямо из самого weechat. И так, скачем и установим weeget. В консоли пишем:
cd ~/.weechat/python/autoload
wget 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.
Напоследок скриншот:

Полезные ссылки:
* Документация weechat на нескольких языках
* Страница с плагинами
* Weechat WiKi
* IRC: irc.freenode.net каналы #weechat и #weechat-fr
* Пописка на рассылку
* Архив рассылки
* Обратная связь с авторами – weechat-support@nongnu.org
* Оригинал в моем блоге
Публикую в своем личном блоге, т.к. подходящего не нашел, и не знаю уместен ли подобный пост здесь. Предложения по публикации в определенный блог уместны, и буду им крайне рад =)
Кстати, этот пост, меня попросил написать мой хороший знакомый renya. Он давно читает хабр, но у него нету аккаунта здесь. Если есть добрые люди с инвайтом, поделитесь с ним — renya-vad@yandex.ru =)
UPD: Перенес в *nix. Более подходящего блога не нашел.