# Руководство &ksirc;

&Andrew.Stanley-Jones; &Andrew.Stanley-Jones.mail;
&Philip.Rodrigues; &Philip.Rodrigues.mail;
1997 Эндрю Стэнли-Джонс (Andrew Stanley-Jones)
2001 2002 2004 Филип Родригес (Philip Rodrigues)
Валя Ванеева

    fattie@altlinux.ru

Перевод на русский язык
Олег Баталов

    olegbatalov@mail.ru

Обновление перевода
2004-02-06
1.3.9
&FDLNotice;

Эта документация описывает &ksirc; версии 1.2.1, клиент &irc; для &kde;.

KDE KSirc irc чат

## Введение

&ksirc; — &irc;-клиент по умолчанию для &kde;. Он поддерживает работу со сценариями, написанными на Perl и по функциональности во многом сопоставим с &mirc;.

## Работа с &ksirc;

### Если вы никогда не пользовались &irc; раньше...

Попросту говоря, &irc; — специальный протокол для общения (чата), соответствующий стандартам Интернета и часто крадущий многие-многие часы вашей жизни. Чтобы пользоваться &irc;, вам нужно подключиться к серверу, а затем зайти на канал (эквивалент веб-чата).

Чтобы подключиться к серверу, откройте &ksirc; и выберите Соединения Новый сервер... или просто нажмите F2. В открывшемся окне из выпадающего списка слева выберите группу, а затем из выпадающего списка рядом — сервер. Порт (в поле справа) почти всегда должен быть 6667. Откроется новое окно, в котором вы увидите сообщения, отправляемые серверу. После того, как этот обмен данными завершится, вы можете выбрать канал. Чтобы увидеть список каналов, доступных на сервере, введите в строку приглашения ``/list``. Чтобы зайти на канал, введите ``/join` #имя_канала`. Чтобы уйти с канала, просто введите в его вкладке ``/part``.

Это основы. Если вы хотите узнать больше, читайте далее...

### Основы работы с &ksirc;

#### Серверы

&ksirc; позволяет подключаться к нескольким серверам. Соединения Новый сервер... или нажмите клавишуF2. Появится диалог Связаться с сервером, и вы можете выбрать Группу, затем Сервер, а также Порт, к которому хотите подключиться.

Заполнив все поля, просто нажмите кнопку Соединение, откроется новое окно. Вы можете отслеживать текущие подключения к серверам в окне Управление сервером.

Справку по основным &irc;-командам можно получить, введя в строке приглашения `/help имя_команды`. Если вы введёте просто `/help`, будет выведен список всех доступных команд.

#### Каналы

Вы можете зайти на канал с помощью стандартной &irc;-команды ``/join` #имя_канала` , выбрав Соединения Присоединиться к каналу... или нажав F3.

Каналы, на которых вы присутствуете, перечислены в списке окна Управление сервером под сервером, к которому они принадлежат. Чтобы покинуть канал, вы можете ввести команду `/part`, выбрать Канал Закрыть или нажать &Ctrl;W.

#### Свойства каналов

Меню Канал доступно во всех окнах каналов и содержит несколько важных пунктов:

&Ctrl;S Сохранять в журнале...

  Сохранять содержимое канала в файл.

Вставить время

  Если этот флажок установлен, каждая реплика будет предваряться меткой времени в формате [ЧЧ:ММ:СС].

Таблица ASCII

  Открыть таблицу ASCII-символов, из которой вы можете выбрать нужные вам символы.

&Alt;P Уведомлять при изменении

  Если этот флажок установлен, &ksirc; будет проигрывать звуковой сигнал каждый раз, когда на канале будет появляться новая реплика.

#### Параметры пользователя

В окне канала список пользователей отображается справа. Щелкнув по псевдониму (нику) пользователя, вы откроете всплывающее меню с такими элементами:

Обновить ники

  Отправить серверу сообщение с запросом списка пользователей. Так вы можете быть уверены, что список пользователей канала всегда отображает реальную ситуацию.

Follow

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

unFollow

  Больше не следовать за пользователем.

Whois

  Отправить &CTCP;-запрос пользователю, чтобы узнать о нем некоторую информацию: имя узла, с которого он подключен, имя используемого им сервера и т. д.

Ping

  Отправить &CTCP;-запрос пользователю, чтобы узнать какова задержка при общении с ним.

Version

  Отправить &CTCP;-запрос пользователю, чтобы узнать, каким &irc;-клиентом он пользуется.

Abuse

  Подшутить над пользователем.

Следующие команды доступны, только если вы являетесь оператором канала:

Kick

  Удалить пользователя с канала.

Ban

  Запретить пользователю подключаться к этому каналу.

unBan

  Снять запрет на подключение к этому каналу.

Op

  Дать привилегии оператора канала.

DeOp

  Снять привилегии оператора канала.

### Автосоединение

Если вы при каждом использовании &ksirc; подключаетесь к нескольким серверам и/или каналам, можете настроить &ksirc; автоматически подключаться к ним: в окне Управление сервером, выберите Настройки НастроитьKSirc..., и появится диалог, выберите страницу Автосоединение. Для добавление канала с сервера, заполните текстовые поля Сервер и Канал, затем нажмите кнопку Новый. Для добавление другого канала этого-же сервера, выберите сервер в дереве, введите имя канала в поле Канал и нажмите кнопку Добавить. Вы можете повторить этот процесс несколько раз если хотите добавить несколько серверов и каналов для подключения к ним при запуске &ksirc;.

## Настройка &ksirc;

### Введение в настройку

Окно настройки &ksirc; можно открыть, выбрав Настройка Настроить &ksirc;... в окне Управление сервером.

### Раздел Общие

#### Режим окон

Отдельные окна (старый вариант)

  Открывать для каждого канала и разговора `/query` отдельное окно.

Многооконный режим с вкладками (XChat)

  Причиной использования в &ksirc; многооконного интерфейса в стиле XChat, где каждый канал или окно `/query` расположены во вкладках основного окна &ksirc;. Каждая вкладка может быть сделана активной щелчком на ней мышкой, вы можете переключать вкладки используя &Alt;Стрелка влево и &Alt;Стрелка вправо.

#### Дополнительно

Автоматическое создание окон

  Если этот флажок установлен, &ksirc; будет автоматически создавать новые окна для каждого пользователя, отправившего вам сообщение командой `/msg`. Если он снят, такие сообщения будут отображаться в текущем окне, а для создания отдельного окна вы можете выполнить команду `/query имя_пользователя`.

Завершение ников

  Если этот флажок установлен, автоматическое завершение псевдонимов (ников) будет включено. Завершение ников работает так:

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

  2. Нажимаете TAB. Введенный текст будет дополняться до псевдонима, при необходимости регистр будет автоматически изменен. Пример: `phi<TAB>` может быть дополнен до `PhilRod`, если на канале есть пользователь с псевдонимом PhilRod.

  3. Если на канале присутствуют несколько пользователей, которым подходит введенный текст, подставляется первый совпавший псевдоним. По нажатию TAB еще раз, будет подставлен следующий подходящий псевдоним. Например, если на канале есть пользователи PhilA и PhilRod, а вы ввели `phi<TAB>`, текст будет дополнен до `PhilA`, а если вы нажмете TAB снова, будет подставлен псевдоним `PhilRod`.

Показывать тему в заголовке

  Отображать тему разговоров на текущем канале в строке заголовка окна. Если этот флажок снят, тема будет показана только внутри окна.

Вставлять время

  Если этот флажок установлен, каждая реплика будет предваряться меткой времени в формате [ЧЧ:ММ:СС].

Сигнал при уведомлении

  Если этот флажок установлен и пользователь из вашего списка `/notify` подключится к &irc;-серверу, программа будет воспроизводить звуковой сигнал.

Список выбора цветов

  Если этот флажок установлен и вы нажмете &Ctrl;K, будет открываться окно выбора цвета текста для ваших сообщений. Если флажок снят, коды цветов нужно вводить вручную. См. также .

Автоматический вход на канал после отключения

  Автоматически подключаться к каналу после внезапного отключения.

Длина хронологии

  Сколько строк разговоров в каждом окне хранить для прокрутки.

#### Параметры Обоев

В группе параметров Обои вы можете изменить фоновое изображение окон &ksirc;. Вы можете ввести имя файла в поле вручную или просмотреть файлы, нажав на кнопку справа. Можно использовать файлы форматов &GIF;, JPEG или PNG. В правой части окна доступен предварительный просмотр выбранного изображения.

### Раздел Запуск

Здесь вы можете настроить запуск &ksirc;.

#### Идентификация

Ник

  Ваш псевдоним в &irc;.

Альтернативный ник

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

Реальное имя

  Ваше настоящее имя, которое будет видно другим пользователям, если они выполнят команду `/whois` для вашего псевдонима.

#### Список уведомлений

Здесь вы можете указать пользователей, которых нужно добавить в список `/notify`. Если кто-нибудь из них подключится к &irc;-серверу вашей сети, вы получите уведомление об этом.

### Вкладка Цвета

Здесь вы можете определить цветовые настройки &ksirc;.

#### Цвета чата

Укажите цвет каждого типа текста. Нажав кнопку с примером цвета справа от текстовой метки, вы откроете окно выбора цвета, где можно выбрать подходящий цвет.

#### Цвет ников

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

#### Коды цветов

Здесь вы можете решить, нужно ли &ksirc; использовать собственные коды цветов (см. ) и можно ли использовать коды цветов &mirc;.

## Цвета &ksirc;

&ksirc; следует цветовой схеме, используемой в &mirc;, но вносит в нее некоторые изменения для удобства пользователей.

    <fg> == текст
    <bg> == фон
    [] == дополнительно

### Совместимость с &mirc;

Формат:

- `0x03<fg>[,<bg>]` задает цвета текста и фона

- `0x03` возвращает параметры по умолчанию для текущей строки

### Собственные цвета &ksirc;

Формат:

- `˜<fg>[,<bg>]` задает цвета текста и фона

- `˜c` возвращает параметры по умолчанию

- `˜b` задает использование полужирного шрифта

- `˜u` задает использование подчеркивания

- `˜i` задает использование курсива

- `˜r` задает использование обратных цветов

Почему было сделано изменение с 0x03 (&Ctrl;C) на ˜? Мне кажется, что значение 0x03 сложнее использовать в сценариях, к тому же, не все C-функции могут обрабатывать его корректно. `˜буква` позволяет создавать дополнительные команды, не меняя функциональность, привычную пользователям &mirc;.

### Номера цветов

1. белый

2. черный

3. синий

4. зеленый

5. красный

6. коричневый

7. фиолетовый

8. оранжевый

9. желтый

10. светло-зеленый

11. голубой

12. светло-голубой

13. светло-синий

14. розовый

15. серый

16. светло-серый

### Изменение вида текста: полужирный шрифт, подчеркивания, обращения цвета и прочее

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

- &Ctrl;B — полужирный шрифт

- &Ctrl;U —подчеркивание

- &Ctrl;R — обращение цветов

- &Ctrl;K — расцвеченный текст

- &Ctrl;O — обычный текст

### Примеры

Чтобы подчеркнуть одно слово в предложении:

- нажмите &Ctrl;U;

- введите слово;

- нажмите &Ctrl;U еще раз.

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

Поведение &Ctrl;K немного отличается от остальных, так как вам нужно ещё указать номер цвета. Чтобы выделить цветом одно слово в предложении:

- нажмите &Ctrl;K;

- введите число между 0 и 15;

- введите слово;

- нажмите &Ctrl;K ещё раз.

Если вам также нужно изменить фон текста, нужно ввести два числа через заптую. Первое число задаёт цвет текста, а второе — цвет фона. Числа могут быть в промежутке от 0 до 15, их список приведен выше.

Вы можете использовать несколько последовательно вложенных друг в друга кодов. Например, вы можете выделить слово полужирным шрифтом, подчёркиванием и цветом.

## Фильтры

### Правила фильтрации и работа с ними

Если вы не совсем понимаете, о чём идёт речь, потерпите немного. Я собираюсь добавить в программу удобный модуль создания фильтров, в котором всё можно делать нажатиями на кнопки. Однако это займёт некоторое время.

Фильтр пытается найти соответствующую ему строку, а затем выполнить подстановку выражения От выражением К. Всё это (основной шаблон и выражения для подстановки) — регулярные выражения Perl. Правила применяются в том порядке, в котором они перечислены в списке. Сначала проверяется первое правило, затем второе и т. д. Все строки интерпретируются так:

`$имя` заменяется значением переменной окружения с именем `имя`. Это делается сразу после добавления правила, и более значение не меняется. Так что, возможно, это не так уж и важно.

`$$имя` заменяется значением переменной Perl с именем `имя` во время проверки правила. Это могут быть подстроки `$1`, `$2` в замене или обычные переменные sirc, например, `$nick`, `$channel` и т. д.

последовательность `˜имя˜`, встречающаяся только раз в начале строки, отправит эту строку в окно имя. Если окна с таким именем нет, строка будет отправлена в последнее активное окно. Есть несколько особых окон, чьи имена начинаются на `!`:

`!default`

  Текущее окно. Всегда существует.

`!all`

  Все окна. Сообщение может появляться не во всех окнах. Например, в окнах каналов не будут отображаться команды `/part` или `/quit`, если пользователь не присутствует на канале.

`!discard`

  Удалить текст.

Всё остальное соответствует синтаксису обычных регулярных выражений Perl. Умению работать с `perlre` можно научиться и с помощью man-страницы, но базовые навыки работы с регулярными выражениями всё равно необходимы.

### Примеры:

1. Изменить во всех сообщениях слова boren на BoreN.

       Совпадение: .*
       От: boren
       К: BoreN

   Это довольно просто: мы проверяем все строки и заменяем в них все вхождения подстроки boren на BoreN.

2. Вы можете все сообщения, содержащие boren, отправлять в окно boren.

       Совпадение: boren
       От: ˆ
       К: ˜boren˜

   Если найдена строка, содержащая подстроку boren, её начало (ˆ) заменяется на последовательность ˜boren˜.

3. Хотя предыдущий пример работоспособен, если в начале строки уже была последовательность `˜окно˜`, у вас получится `˜boren˜˜somewindow˜...`. Поэтому сделаем так:

       Совпадение: boren
       От: ^(?:˜\S+˜)
       К: ˜boren˜

   Это уже немного сложнее. Значение поля От расшировывается так: искать совпадения 0 или более раз с выражением `˜\S+˜`. Само это выражение значит 1 тильду, следующие за ней несколько непробельных символов и еще одну тильду. Если хотите быть уверенными на все сто процентов, можете написать `(*:˜\S+˜)`, это значит: искать совпадение с выражением `˜\S+˜` любое число раз.

4. Некоторые сообщения серверов очень длинные и поэтому очень раздражают. Вот пример сообщения от сервера сети dalnet:

       *** Notice -- Received KILL message for
       BOBO!ANDY@line82-basel.datacomm.ch from NickServ
       Path: empire.ny.us.dal.net[209.51.168.14]!trapdoor.ca.us.dal.net
       [206.86.127.252]!caris.ca.us.dal.net[208.1.222.221]
       !services.dal.net[2008.1.222.222]!services.dal.net
       (NickServ Enforcement)

   Если у вас стоит режим `+s`, вы будете получать их буквально пачками. Если вам это не нравится, вы можете создать три правила, которые будут последовательно выполняться. Можно использовать и меньшее число правил, но этот пример, по-моему, проще для понимания того, как разбираются многострочные сообщения. Прежде всего удалим строку, начинающуюся с `Path`:

       Совпадение: ^\*\*\*.* KILL message for.*
       От:  Path: \S+
       К: .

   Фильтр будет искать сообщения, начинающиеся с `***`, причем в шаблоне символ `*` нужно экранировать обратной наклонной чертой `\`, так как звездочки значат повторение 0 или более раз. `.*` значит любая подстрока до последовательности `KILL message for`. Так мы можем не вводить `-- Received...` и все остальное. `.*` в конце значит все, что угодно до конца строки. Может, эта часть шаблона и не нужна.

   В следующем поле мы заменяем " Path: " и все непробельные символы значением поля К. А это `"."`, то есть все выражение заменяется на единственную точку.

   Теперь выражение будет выглядеть так:

       *** Notice -- Received KILL message for BOBO!ANDY@line82-basel.datacomm.ch
       from NickServ. (NickServ Enforcement)

   Видите `"."` после `NickServ`?

5. Хорошо, теперь уже лучше. Но такие сообщения на самом деле не очень важны, поэтому давайте мы их просто удалим, то есть направим в окно `!discard`.

       Совпадение: ^\*\*\*.*KILL message.*\(NickServ Enforcement\)
       От: ^(?:˜\S+˜)
       К:  ˜!discard˜

   Это правило ищет сообщение, содержащее KILL, и убеждается в том, что оно получено от NickServ. В регулярном выражении используются `\(` and `\)`, поэтому нам пришлось их экранировать. Это очень похоже на то, что мы делали в примерах выше.

6. Теперь мы не будем получать сообщения от nickserv, но читать сообщения от сервера мельком все еще сложновато. Попробуем сделать так:

       *** [KILL] КТО; killed КОГО; (ПРИЧИНА)

       Совпадение: \*\*\*.*KILL message
       От: \*\*\*.*for (.*?) from (.*?)\. \((.*?)\).*
       К: *** [KILL] $$2 killed $$1 ($$3)

   Итак, теперь ищутся строки, содержащие `***что-то KILL message`. Мы не можем использовать `ˆ`, так как мы могли уже использовать перенаправление в окно: `˜<окно>˜`.

   Правила получаются все интереснее. Последовательность `"for (.*?) "` значит, что мы ищем "for" с последующим текстом. `.*?` значит, что нам подходит все, что угодно, кроме символа новой строки. Правило останавливается, когда найдено первое условие завершения, но не последнее. Другими словами, мы принимаем все, что угодно, пока не встретим пробел. Скобки `()` значат сохранить содержимое. В каждых скобках сохраняются совпавшие данные, которые затем можно использовать как переменные `$#`, где `#` начинается с 1 и значит первое сохраненное совпадение. В этом случае `$1` будет содержать псевдоним того, кто был удален из сети. `$2` будет содержать псевдоним администратора, удалившего пользователя из сети. В скобках также указана причина удаления. Здесь `(` и `\(` могут немного смутить вас. Помните, что `\(` означает просто символ `(`.

7. Раскрасьте свою жизнь

   Хорошо, теперь добавим немного цвета в &ksirc;. О цветах вообще можно подробнее узнать в соответствующем разделе, сейчас же мы сделаем так, чтобы все псевдонимы в последовательности `<НИК>` подсвечивались на каждой строке:

       Совпадение: ^(?:˜\S+˜)<\S+>
       От: <(\S+)>
       К: <˜4$$1˜c>

   Мы берем псевдоним и добавляем цвет #4 между символами `<>`. `˜c` возвращает настройки цвета по умолчанию.

## Клавиши

Вот список привязок клавиш для &ksirc;.

Комбинации клавиш

Комбинация | Действие
--- | ---
&Ctrl;N | Открыть новое окно канала или разговора.
&Ctrl;Q | Завершить работу с &ksirc;.
&Ctrl;Enter | Начать сообщение последнему пользователю, отправившему вам сообщение.
&Ctrl;&Shift;Enter | Начать сообщение предпоследнему пользователю, отправившему вам сообщение.
&Ctrl;K | Раскрасить текст в указанный цвет.
&Ctrl;U | Начать или завершить подчеркивание текста. Текст после первого и до второго нажатия этой комбинации будет подчеркнут.
&Ctrl;I | Начать или завершить выделение текста курсивом. Текст после первого и до второго нажатия этой комбинации будет выделен курсивом.
&Ctrl;B | Начать или завершить выделение текста полужирным шрифтом. Текст после первого и до второго нажатия этой комбинации будет выделен полужирным шрифтом.
&Ctrl;R | Начать или завершить выделение текста обратными цветами. Текст после первого и до второго нажатия этой комбинации будет выделен обратными цветами.
TAB | Попытаться дополнить последовательность символов до полного псевдонима какого-либо пользователя на текущем канале. Возможно, вы знакомы с этой функцией по работе в терминале, хотя здесь она ведет себя немного по-другому. См. .

## Советы

### Вход на каналы &kde;

Каналы &irc; &kde; работают в сети Freenode. На вкладке Сервер и канал или Автоподключение в диалоге Настройки KSirc можно добавить эти каналы. Сеть - это `irc.freenode.org`, порт -`6667`. Ниже приведен список популярных каналов &kde; и их целей. Выберите интересующие вас каналы.

Советы о том, как задавать вопросы на каналах &kde;, приведены в wiki сообщества &kde;.

Каналы KDE IRC

Канал | Цель
--- | ---
#kde | Помощь пользователям
#kde-devel | Разработчики &kde;
#kdevelop | Вопросы по KDevelop
#kontact | Вопросы по Kontact (&kmail;, &korganizer;, &knotes; и другие)
#amarok | Сообщество amaroK, вопросы, разработка
#debian-kde | Вопросы по KDE в debian
#kde-freebsd | Вопросы по KDE в FreeBSD

### Автоматическая идентификация

Если вы хотите часто работать с &irc;, то ваш ник лучше зарегистрировать. Тогда он будет защищён, и пользоваться им сможете только вы сами. В сети DALnet после входа ник можно зарегистрировать командой ``/msg` nickserv register PASSWORD`, где PASSWORD - пароль. Сервер подтвердит регистрацию ника.

После этого при входе в сеть DALnet всякий раз нужно будет идентифицироваться. Введите команду ``/msg nickserv identify PASSWORD``.

&ksirc; может выполнять автоматическую идентификацию при входе на канал. Для этого добавьте следующий сценарий Perl в свой домашний каталог:

Этот сценарий будет работать для Freenode. Сохраните его под именем `.sircrc.pl` в своём домашнем каталоге. При запуске &ksirc;, этот сценарий позволит выполнить автоматическую идентификацию.

    sub hook_nick_notice {
    my $n = shift;
    my $m = shift;

    if($who =~ /NickServ/){
    if($m =~ /If this is your nickname/){
    &msg("nickserv", "identify XXXXXX");
    }
    }
    }
    &addhook("notice", "nick_notice");   # join on the "end of MOTD" numeric

Замените XXXXXX своим паролем.

Вышеприведённый сценарий будет работать не только на Freenode, где nickserv отправляет запрос "identify", но в других сетях, таких как Undernet, может потребоваться другой сценарий:

    sub hook_connected {
    if($server =~ /undernet.org$/){
            &msg("X\@channels.undernet.org", "login YOUR_NAME XXXX");
                    &docommand("umode +x");
    }
    }
    &addhook("255", "connected");   # join on the "end of MOTD" numeric

Вместо YOUR_NAME укажите свой ник, а вместо XXXXXX - пароль.

Подробнее о программировании SIRC читайте здесь: http://www.iagora.com/~espel/sirc/PROGRAMMING

## Авторские права и лицензирование

Авторские права на программу &ksirc; принадлежат её разработчикам, 1997–2002.

Авторское право на части документации 1997, &Andrew.Stanley-Jones;

Документация обновлена для &kde; 3.0, &Philip.Rodrigues; &Philip.Rodrigues.mail;.

Автор: &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail;.

Перевод на русский - Валя Ванеева fattie@altlinux.ru

Обновление перевода - Олег Баталовolegbatalov@mail.ru

&underFDL; &underGPL;

## Установка

### Как получить &ksirc;

&install.intro.documentation;

### Компиляция и установка

&install.compile.documentation;
&documentation.index;