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

    Крайне давно, я использую замечательный консольный IRC клиент WeeChat. У него очень много достоинств, на пример для него можно написать расширения на пяти(!) языках: perl, ruby, python, lua, tcl). Русскоязычной документации по нему почти нету, и на хабре ни единого упоминания про него. Именно поэтому, я решил сделать копипасту со своего блога сюда, в хабрахабр.



    Не так давно, после двух лет разработки, и принятия около 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.

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

    Image downloaded service ITmages

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

    * Документация weechat на нескольких языках
    * Страница с плагинами
    * Weechat WiKi
    * IRC: irc.freenode.net каналы #weechat и #weechat-fr
    * Пописка на рассылку
    * Архив рассылки
    * Обратная связь с авторами – weechat-support@nongnu.org
    * Оригинал в моем блоге

    Публикую в своем личном блоге, т.к. подходящего не нашел, и не знаю уместен ли подобный пост здесь. Предложения по публикации в определенный блог уместны, и буду им крайне рад =)

    Кстати, этот пост, меня попросил написать мой хороший знакомый renya. Он давно читает хабр, но у него нету аккаунта здесь. Если есть добрые люди с инвайтом, поделитесь с ним — renya-vad@yandex.ru =)

    UPD: Перенес в *nix. Более подходящего блога не нашел.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 18
    • 0
      еще есть irssi — хороший клиент, уже несколько лет им пользуюсь.
      • 0
        Я если честно irssi не осилил. Там надо было слишком много пилить что бы все работало так как мне нужно =)
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            То же самое можно сделать используя weechat. Он тоже на ncurses.
        • 0
          Я тоже ни за что не слезу с irssi =)
          • 0
            ну вы напишите как им пользоваться, и как там с кодировкой разобраться. Может я тоже так буду думать )
            • 0
              Насчёт кодировок не знаю — мне кроме UTF-8 ничего не нужно, она и установлена как системная локаль.

              Вообще можно последовательно прочитать доки раз на несколько и на этом проникнуться.
              • 0
                Я пожалуй пока посижу на weechat. Зачем переходить на irssi если weechat устраивает? )
        • –1
          Один я считаю что IRC умер? Я по нему очень скучаю.
          • +1
            IRC живет и крайне не плохо. Вот все так почему-то думают.
            • +1
              irc умер? не говорите таких глупостей!
            • 0
              если вы уж написали статью…

              ...Alt+1-9 – на буфер с номером…

              А как перейти на 11й, 12й… 21й… 41й и так далее буферы?
              • 0
                я не думаю что реально одновременно сидеть в 41 буфере =) Но если нужда есть, то пишешь /bu жимкаешь Tab, и дальше номер нужного буфера =)

                Я лично переключаю с помощью Ctrl-n\p ибо привык уже после емакса )
                • 0
                  ну 41 это я к примеру. на данный момент 23 открыто вкладки в Хчат… хотя было и по 40)

                  спасибо за информацию)
              • –1
                Pidgin и не париться.
                • 0
                  он разве консольный? ;)
                  • 0
                    finch? хотя вероятно не совсем корректное сравнение…
                    • 0
                      Я знаю про finch. Но по мне, это ужасно неудобное поделие. К тому же я предпочитаю для каждой задачи, использовать свое приложение. Исключение — jabber.el

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