Пакет Gnus

Gnus — это пакет Emacs, разработанный в первую очередь для чтения и отправки новостей Usenet. Его также можно использовать для чтения и написания ответов на сообщения из многих других источников — почты, удалённых каталогов, дайджестов и других источников данных. Большой набор заметок о Gnus вы сможете найти в соответствующем разделе EmacsWiki.

Буфера Gnus

Для показа информации и получения команд Gnus использует несколько разных буферов. Большую часть времени пользователи проводят в трех буферах — буфере групп, буфере резюме и буфере статьи.

Буфер групп содержит перечень групп. Это первый буфер, который Gnus показывает после запуска. Обычно в нем показаны только те группы, на которые вы подписаны, и в которых есть непрочитанные статьи. Используйте этот буфер для выбора конкретной группы.

Буфер резюме построчно перечисляет статьи одной группы. По умолчанию для каждой статьи показываются автор, заголовок и число строк, но это можно настроить по своему вкусу, как и большую часть того, что отображает Gnus. Буфер резюме создается, когда вы выбираете группу в буфере групп, и уничтожается, когда вы покидаете эту группу. Используйте этот буфер для выбора статьи.

Буфер статьи отображает саму статью. При обычном использовании Gnus вы не выбираете этот буфер — все полезные команды, предназначенные для работы над статьей, прекрасно работают и из буфера резюме. Но вы можете выбрать буфер статьи и выполнять все команды Gnus из него, если вы этого хотите.

Запуск Gnus

Для запуска Gnus просто наберите M-x gnus. При запуске Gnus считывает ваш файл инициализации новостей .newsrc и пытается установить связь с локальным сервером новостей, который служит хранилищем статей. Сервер новостей не обязан быть тем же компьютером, на который вы вошли.

Если вы запустили Gnus и соединились с сервером, но не видите в буфере групп ни одной группы, наберите L или A k, чтобы получить список всех доступных групп. Затем нажимайте u на нужной вам группе, чтобы переключать подписку на данную группу.

Когда вы запускаете Gnus первый раз, он подписывает вас на несколько избранных групп. Все остальные группы сначала невидимы для вас; вы можете получить их список с помощью последовательности клавиш A k. Все новые группы, появляющиеся в дальнейшем на сервере, становятся для вас «зомбированными»; чтобы получить их перечень наберите A z. Вы можете подписаться на группы, показанные в этих списках, используя команду u.

Когда вы покидаете Gnus при помощи команды q, то он автоматически записывает в ваших файлах инициализации .newsrc и .newsrc.eld статус подписки всех групп. Обычно вам не стоит редактировать эти файлы вручную, но вы можете это сделать, если точно уверены в том, что надо в них писать.

Работа с Gnus

Для чтения статей из конкретной группы, надо просто установить курсор на нужную группу и нажать на клавишу пробела. При этом будет открыт буфер резюме, в котором будет отображен список непрочитанных статей и отображена первая непрочитанная вами статья. Если непрочитанных статей слишком много, то Gnus выдаст запрос о том, сколько статей необходимо отобразить. Переменная gnus-large-newsgroup определяет пороговое значение, при превышении которого группа будет считаться большой и будет выдаваться предупреждение.

Если вам необходимо увидеть и прочитанные статьи, то для их выбора вам нужно использовать комбинацию C-u space. Кроме того, после префиксной комбинации вы можете указать число, которое определит количество выбираемых статей. Положительное число N выбирает N самых последних статей, а отрицательное число — N самых старых статей. Например, C-u - 5 0 space выберет 50 самых старых статей.

Настройка Gnus для работы с электронной почтой

Gnus обрабатывает почту точно также, как и новости Usenet. Для того чтобы читать электронную почту в Gnus, надо просто задать метод для обработки почты и источники её получения. Это определяется с помощью следующего кода в вашем файле ~/.emacs или ~/.gnus (этот файл используется только для инициализации Gnus):

        (setq gnus-secondary-select-methods '((nnml "")))
        (setq mail-sources
        '((file :path "/var/spool/mail/user-name")
        (pop :server "pop3.mail.server"
        :user "user-name"
        :port "pop3"
        :password "secret")))

Первая строка задает список вторичных методов получения новостей для Gnus. В нашем примере этот список состоит только из одного элемента — nnml, который задает метод для чтения почты. Вторая и последующая строки перечисляют источники получения почты. Переменная mail-sources содержит список, каждый элемент которого является списком, в котором первый элемент указывает на тип источника почты, а затем идет список ключевых слов и значений для них. Список ключевых слов зависит от типа источника почты и полное их описание вы можете найти в справке по Gnus. В нашем примере задаётся два источника почты. Первый — это локальный файл с почтой, который задается путем /var/spool/mail/user-name, а второй источник — это POP3-сервер, для которого указывается большее количество ключевых слов, описывающих параметры подключения к данному серверу. Будьте внимательны, помещая пароль для доступа к почте в ваш файл настройки Emacs: если вы хотите хранить в нём ваш пароль, то запретите чтение этого файла для всех остальных пользователей вашей системы.

Gnus обладает очень богатыми возможностями по разбиению почты на группы. Его возможности позволяют разбить почту по множеству признаков. Разбиение почты на группы зависит от содержимого переменной nnmail-split-methods, которая содержит список списков, состоящих из пар строк — имени группы и регулярного выражения, при соответствии которому сообщение помещается в соответствующую группу. Следующий код продемонстрирует простой пример обработки входящей почты:

        (setq nnmail-split-methods '(
        ("ALT-sisyphus" "^\\(To\\|From\\|Cc\\):.*sisyphus@altlinux\\.ru.*")
        ("ALT-devel" "^\\(To\\|From\\|Cc\\):.*devel@altlinux\\.ru.*")
        ("inbox" "")))

В этом примере создается три группы. В первые две группы помещаются сообщения только из списков рассылки ALTLinux Sisyphus и ALTLinux Devel. В группу inbox помещаются все остальные сообщения, для которых не было совпадения по регулярным выражениям.

Чтобы создать новое почтовое сообщение просто нажмите на клавишу m в буфере групп или буфере резюме. При этом будет отображено новое окно, в котором вы можете ввести адрес получателя и тему сообщения, а также сам текст сообщения. Текст сообщения должен идти после строки

--text follows this line--

Все, что находится до этой строки, рассматривается как заголовки. Это позволяет вам вручную задавать дополнительные заголовки, такие как Bcc. Часть заголовков может подставляться автоматически. К примеру, чтобы все отправляемые сообщения складывались в отдельную группу, вам необходимо вписать в ваш файл инициализации следующий код:

(setq gnus-outgoing-message-group "nnml:sent")

После установки этой переменной, все отправляемые сообщения будут помещаться в группу sent, доступ к которой осуществляется с помощью метода nnml.

Другие возможности Gnus

В предыдущем тексте была описана лишь малая часть возможностей Gnus. Кроме обычных групп для почты и новостей, Gnus позволяет создавать виртуальные группы, которые состоят из частей других групп. Также можно отображать в виде групп новостей результаты поиска в Интернете, серверы каталогов и прочее.

Кроме того, Gnus обладает мощными средствами по фильтрации и удалению ненужных вам сообщений. Работа этого средства основана на подсчёте весов сообщения (Scoring). Веса могут добавляться или удаляться в зависимости от текста и заголовка сообщения, его авторов и многих других параметров. Это позволяет эффективно работать с новостями, читая только то, что необходимо.

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