From 7adc70a97728eef030f2ec1ae38422b390829461 Mon Sep 17 00:00:00 2001 From: tomo Date: Fri, 25 Sep 1998 23:17:27 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create tag 'gnus-5_6_44'. --- ChangeLog | 986 ---- README.semi | 95 - lisp/gnus-i18n.el | 95 - lisp/pop3-fma.el | 311 -- lisp/smtp.el | 457 -- lisp/smtpmail.el | 285 -- texi/TRANSLATION.ja | 27 - texi/gnus-ja.texi |13309 --------------------------------------------------- texi/gnus-terms.ja | 177 - 9 files changed, 15742 deletions(-) delete mode 100644 ChangeLog delete mode 100644 README.semi delete mode 100644 lisp/gnus-i18n.el delete mode 100644 lisp/pop3-fma.el delete mode 100644 lisp/smtp.el delete mode 100644 lisp/smtpmail.el delete mode 100644 texi/TRANSLATION.ja delete mode 100644 texi/gnus-ja.texi delete mode 100644 texi/gnus-terms.ja diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index ee05b87..0000000 --- a/ChangeLog +++ /dev/null @@ -1,986 +0,0 @@ -1998-07-19 Tatsuya Ichikawa - - * lisp/pop3-fma.el: Change version No to 1.00. - -1998-06-30 Keisuke Mori - - * texi/gnus-ja.texi: Add "Scroing". - -1998-06-30 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "Scoring". - -1998-06-30 Tatsuya Ichikawa - - * Sync up with Gnus 5.6.22 - * lisp/gnus.el (gnus-version-number): Update to 6.7.8. - * lisp/pop3-fma.el : Enable to get localhost mail spool. - -1998-06-29 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.7.7. - - * lisp/gnus-art.el (gnus-article-prepare): Set up - `gnus-article-current-summary' of gnus-article-buffer. - (gnus-request-article-this-buffer): Don't set up - `gnus-article-current-summary'. - -1998-06-27 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.7.6. - -1998-06-27 MORIOKA Tomohiko - - * lisp/gnus-art.el (gnus-mime-preview-quitting-method): Renamed - from `mime-preview-quitting-method-for-gnus'. - -1998-06-27 MORIOKA Tomohiko - - * lisp/gnus-sum.el (gnus-summary-preview-mime-message): New - implementation. - - * lisp/gnus-art.el (mime-preview-quitting-method-for-gnus): Use - `gnus-article-show-summary' is `gnus-show-mime' is not nil. - -1998-06-27 MORIOKA Tomohiko - - * texi/ChangeLog, texi/gnus.texi, texi/message.texi, - lisp/ChangeLog, lisp/gnus.el, lisp/nngateway.el, lisp/nnfolder.el, - lisp/message.el, lisp/gnus-sum.el, lisp/gnus-soup.el: Sync up with - Gnus 5.6.20. - -1998-06-26 MORIOKA Tomohiko - - * README, texi/ChangeLog, texi/gnus.texi, texi/message.texi, - lisp/ChangeLog, lisp/nnweb.el, lisp/nnmail.el, lisp/nndoc.el, - lisp/message.el, lisp/lpath.el, lisp/gnus.el, lisp/gnus-util.el, - lisp/gnus-topic.el, lisp/gnus-sum.el, lisp/gnus-score.el, - lisp/gnus-group.el, lisp/gnus-ems.el, lisp/gnus-demon.el, - lisp/gnus-art.el: Sync up with Gnus 5.6.16. - -1998-06-26 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.7.3. - - * lisp/gnus-sum.el (gnus-summary-move-article): Use - `gnus-request-article-this-buffer'. - (gnus-request-partial-message): Likewise. - - * lisp/gnus-art.el (gnus-article-prepare): Use - `gnus-request-article-this-buffer'. - (gnus-request-article-this-buffer): Renamed from - `gnus-request-original-article'; abolish conventional - implementation. - - Abolish unused setting for `mime-view-show-summary-method'. - -1998-06-26 MORIOKA Tomohiko - - * readme, texi/ChangeLog, texi/gnus.texi, texi/message.texi, - lisp/ChangeLog, lisp/gnus.el, lisp/nnmail.el, lisp/nnheader.el, - lisp/nngateway.el, lisp/nnfolder.el, lisp/nnagent.el, - lisp/message.el, lisp/gnus-sum.el, lisp/gnus-score.el, - lisp/gnus-salt.el, lisp/gnus-msg.el, lisp/gnus-cus.el, - lisp/gnus-cache.el, lisp/gnus-art.el: Sync up with Gnus 5.6.15. - -1998-06-24 MORIOKA Tomohiko - - * texi/gnus.texi, texi/message.texi, texi/ChangeLog: Sync up with - Gnus 5.6.13. - -1998-06-14 Tatsuya Ichikawa - - * Sync up with Gnus 5.6.13. - -1998-06-24 MORIOKA Tomohiko - - * lisp/gnus-art.el (gnus-article-display-mime-message): Don't - `save-excursion'. - (gnus-article-prepare): Use `mime-fetch-field' instead of - `mime-entity-fetch-field'. - -1998-06-19 MORIOKA Tomohiko - - * lisp/gnus-art.el (gnus-article-display-mime-message): Use - `mime-display-message' instead of `mime-view-buffer'. - (gnus-article-display-traditional-message): Set - `gnus-article-buffer'. - (gnus-article-display-message-with-encoded-word): Modify for - `gnus-article-display-traditional-message'. - (gnus-article-prepare): Use `mime-parse-buffer' and - `mime-entity-fetch-field'; don't set gnus-article-buffer. - -1998-06-19 MORIOKA Tomohiko - - * lisp/gnus-sum.el (gnus-summary-move-article): Use - `gnus-request-original-article' instead of - `gnus-request-article-this-buffer'. - -1998-06-19 MORIOKA Tomohiko - - * texi/gnus-ja.texi, texi/gnus.texi (Using MIME): Modify - description about new display mechanism. - -1998-06-19 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.6.0. - (gnus-version): Modify for this branch. - - * lisp/gnus-art.el (gnus-article-display-method-for-mime): New - variable; abolish `gnus-show-mime-method'. - (gnus-article-display-method-for-encoded-word): New variable; - abolish `gnus-decode-encoded-word-method'. - (gnus-article-display-method-for-traditional): New variable. - (gnus-article-display-mime-message): New function; abolish - `gnus-article-preview-mime-message'. - (gnus-article-display-traditional-message): New function. - (gnus-article-display-message-with-encoded-word): New function; - abolish `gnus-article-decode-encoded-word'. - (gnus-article-prepare): Change display mechanism; use - `gnus-request-original-article' instead of - `gnus-request-article-this-buffer'. - (gnus-request-original-article): New function. - -1998-06-22 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.6.0. - (gnus-version): Modify for SEMI 1.8. - - * lisp/gnus-sum.el: Modify for interface change in SEMI 1.8 about - automatic message/partial combining. - -1998-06-19 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.5.0. - (gnus-version): Modify for SEMI 1.7. - - * lisp/gnus-sum.el: Rename - `mime-method-to-combine-message/partial-pieces' to - `mime-combine-message/partial-pieces-automatically'. - - * lisp/gnus-art.el (gnus-article-preview-mime-message): Use - `mime-view-buffer'. - (gnus-article-decode-encoded-word): Fix DOC-string. - (gnus-article-header-presentation-method): New function; abolish - `gnus-content-header-filter'. - Modify for SEMI 1.7. - -1998-06-18 Keisuke Mori - - * texi/gnus-ja.texi: Add "Select Methods". - -1998-06-18 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "Select Methods". - -1998-06-17 Tatsuya Ichikawa - - * lisp/pop3-fma.el: Small bug fix. - - * lisp/pop3-fma.el: Delete variable pop3-fma-cypher-key - Use base64-encode-string , base64-decode-string instead. - Both change by Yasuo OKABE - -1998-06-13 Tatsuya Ichikawa - - * lisp/pop3-fma.el: New function pop3-fma-cypher-string - New variable pop3-fma-cypher-key - -1998-06-07 MORIOKA Tomohiko - - * lisp/gnus-art.el: Delete setting for - `article-de-quoted-unreadable' and - `article-mime-decode-quoted-printable' because they have been - already abolished. - -1998-06-07 MORIOKA Tomohiko - - * texi/gnus-ja.texi: Sync up with latest gnus.texi. - - * texi/gnus.texi: Modify for Semi-gnus 6.4.0. - -1998-06-06 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-extract-address-components): Add - `std11-extract-address-components' as a choice. - -1998-06-06 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "Composing Messages". - -1998-06-04 MORIOKA Tomohiko - - * lisp/gnus-ems.el (gnus-ems-redefine): Must require 'path-util - before call `module-installed-p'. - - * lisp/gnus.el (gnus-version-number): Update to 6.4.0. - (gnus-version): Modify for SEMI 1.5. - - * lisp/gnus-art.el: Modify for SEMI 1.5 API. - -1998-06-04 Tatsuya Ichikawa - - * lisp/pop3-fma.el: New file. To handle multiple POP account. - - * lisp/gnus.el (gnus-version-number): Update to 6.3.4. - And fix typo 5.6.10 -> 5.6.11. - -1998-06-03 Shuhei KOBAYASHI - - * lisp/gnus.el (gnus-version-number): Update to 6.3.3. - - * Sync up with Gnus 5.6.11. - -1998-06-03 Keisuke Mori - - * texi/gnus-ja.texi: Add "The Article Buffer". - -1998-06-03 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "The Summary Buffer". - -1998-06-02 Tatsuya Ichikawa - - * lisp/gnus.el (gnus-version-number): Update to 6.3.2. - - * Sync up with Gnus 5.6.10. - -1998-05-30 Shuhei KOBAYASHI - - * README.semi: Add description of `shuhei-k' branch. - -1998-05-17 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.3.1. - -1998-05-17 MORIOKA Tomohiko - - * lisp/gnus-util.el (gnus-output-to-rmail): Guard as binary. - - * lisp/gnus-util.el (gnus-output-to-mail): Guard as binary. - -1998-04-24 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "The Active File". - -1998-05-04 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.3.0. - (gnus-version): Modify for SEMI 1.4. - - * lisp/gnus-sum.el: Use 'mime-add-condition to set up - acting-condition. - -1998-05-04 MORIOKA Tomohiko - - * lisp/lpath.el: Must add "flim" instead of "mel" to load-path. - -1998-05-03 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.2.5. - - * texi/gnus.texi, lisp/ChangeLog: Sync up with Gnus v5.6.9. - - * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el, - lisp/gnus-msg.el, lisp/gnus-draft.el, lisp/gnus-agent.el: Sync up - with Gnus v5.6.9. - -1998-04-30 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.2.4. - - * texi/gnus.texi, lisp/ChangeLog: Sync up with Gnus 5.6.7. - - * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el, - lisp/gnus-msg.el, lisp/gnus-cache.el, lisp/gnus-art.el: Sync up - with Gnus 5.6.7. - -1998-04-28 Shuhei KOBAYASHI - - * lisp/gnus.el (gnus-version-number): Update to 6.2.3. - - * Sync up with Gnus 5.6.6. - -1998-04-27 MORIOKA Tomohiko - - * lisp/nnheader.el: Sync up with Gnus 5.6.5. - -1998-04-26 Shuhei KOBAYASHI - - * lisp/gnus.el (gnus-version-number): Update to 6.2.2. - - * Sync up with Gnus 5.6.5. - - * texi/custom.texi, texi/widget.texi: Removed from Semi-gnus. - -1998-04-25 MORIOKA Tomohiko - - * README.semi (How to get? (via CVS)): Modify descriptions about - TAG. - -1998-04-23 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.2.1. - -1998-04-23 MORIOKA Tomohiko - - * lisp/message.el (message-make-forward-subject): Use - `eword-decode-unstructured-field-body' for subject. - - * lisp/gnus-msg.el (gnus-summary-mail-forward): Make local - variable `default-mime-charset' of `gnus-original-article-buffer' - and set up by `default-mime-charset' of `gnus-summary-buffer'. - -1998-04-23 MORIOKA Tomohiko - - * texi/gnus-ja.texi: Fix typos. - - * texi/gnus.texi: Modify for Semi-gnus. - -1998-04-23 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "Auto Save". - -1998-04-22 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "Startup Files". - -1998-04-21 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.2.0. - (gnus-version): Modify for SEMI 1.3. - - * lisp/gnus-sum.el: Use 'ctree-set-calist-strictly instead of - 'set-atype to set up for 'mime-acting-condition. - -1998-04-21 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "Changing Servers". - -1998-04-20 MORIOKA Tomohiko - - * texi/gnus-ja.texi: Modify styles. - - * texi/gnus.texi: Modify for Semi-gnus (sync up with - gnus-ja.texi). - -1998-04-20 Yoshiki Hayashi - - * texi/gnus-ja.texi: Add "New Groups". - -1998-04-20 Yoshiki Hayashi - - * texi/gnus-ja.texi: Modify styles. - -1998-04-18 MORIOKA Tomohiko - - * texi/gnus-ja.texi: Check and modify for Semi-gnus. - -1998-04-18 Yoshiki Hayashi - - * texi/gnus-ja.texi: New file. - -1998-04-19 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.1.3. - -1998-04-19 MORIOKA Tomohiko - - * lisp/gnus-art.el (gnus-following-method): New function; set up - for 'mime-view-following-method-alist. - -1998-04-18 MORIOKA Tomohiko - - * texi/gnus.texi: Add and modify description for Semi-gnus. - -1998-04-16 MORIOKA Tomohiko - - * texi/gnus.texi: "Gnus 5.6.4" -> "Semi-gnus 6.1.2". - (Top): "Gnus" -> "gnus". - (Starting Up): "Gnus" -> "gnus". - -1998-04-10 Shuhei KOBAYASHI - - * lisp/ChangeLog, lisp/gnus-agent.el: Sync up with Gnus 5.6.4. - -1998-04-08 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.1.2. - (gnus-version): Include corresponding SEMI version. - - * lisp/gnus.el, lisp/nnkiboze.el, lisp/message.el, - lisp/gnus-sum.el, lisp/gnus-agent.el: Sync up with Gnus 5.6.4. - -1998-03-27 Shuhei KOBAYASHI - - * README.semi: Change descriptions of sending bug report. - -1998-03-20 Shuhei KOBAYASHI - - * lisp/gnus.el (gnus-version-number): Update to 6.1.1. - (gnus-version): Include corresponding SEMI version. - - * Sync up with Gnus 5.6.3. - -1998-03-15 Shuhei KOBAYASHI - - * lisp/gnus-agent.el (gnus-agent-crosspost): Use - `nnheader-insert-file-contents'. - (gnus-agent-braid-nov): Ditto. - (gnus-agent-expire): Ditto. - - * lisp/gnus-cache.el (gnus-cache-request-article): Ditto. - (gnus-cache-retrieve-headers): Ditto. - (gnus-cache-change-buffer): Ditto. - (gnus-cache-braid-nov): Ditto. - - * lisp/gnus-sum.el (gnus-summary-import-article): Ditto. - - * lisp/nnkiboze.el (nnkiboze-retrieve-headers): Ditto. - - * lisp/message.el (message-generate-headers): Fix regexp. - (cf. [semi-gnus-ja:107]) - -1998-03-14 MORIOKA Tomohiko - - * lisp/gnus-art.el: Add setting for - `mime-raw-buffer-coding-system-alist'. - -1998-03-13 MORIOKA Tomohiko - - * lisp/gnus-art.el: Rename `mime-view-quitting-method-for-gnus' -> - `mime-preview-quitting-method-for-gnus'. - - * lisp/gnus-art.el: Rename `mime-view-quitting-method-alist' -> - `mime-preview-quitting-method-alist'. - - * lisp/gnus-art.el: Rename `mime-view-kill-buffer' -> - `mime-preview-kill-buffer'. - - * lisp/gnus.el (gnus-version-number): Update to 6.0.10. - - * lisp/gnus-sum.el: Add code to check latest SEMI. - (mime-acting-condition): Separate type and subtype; rename - `mime-combine-message/partials-automatically' -> - `mime-method-to-combine-message/partial-pieces'. - -1998-03-08 Shuhei KOBAYASHI - - * lisp/gnus.el (gnus-version-number): Update to 6.0.9. - - * README.semi (How to get?): Add description of daily snapshot. - (How to join development): Change mailing list command address. - - * Sync up with Gnus 5.6.2. - -1998-03-01 Tatsuya Ichikawa - - * lisp/gnus-ems.el: Change variable name - gnus-bdf-image-file to gnus-mule-bitmap-image-file. - -1998-02-28 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.0.8. - - * lisp/gnus.el: Sync up with qgnus-0.34. - -1998-02-28 MORIOKA Tomohiko - - * lisp/message.el: Sync up with qgnus-0.33. - - * lisp/gnus-ems.el (gnus-bdf-image-file): New variable; moved from - gnus.el. - (gnus-mule-group-startup-message): New function; moved and renamed - from `gnus-group-startup-message' of gnus.el. - - * lisp/gnus.el, lisp/gnus-sum.el, lisp/gnus-art.el, - lisp/gnus-agent.el: Sync up with qgnus-0.33. - -1998-02-28 Tatsuya Ichikawa - - * lisp/gnus.el (gnus-bdf-image-file): New variable. - (gnus-mule-group-startup-message): Display bitmap image using - bitmap.el running with Emacs 20. - - * lisp/gnus-agent.el (gnus-agent-fetch-headers): Fix problem when - Xref field is not exist. - -1998-02-26 MORIOKA Tomohiko - - * README.semi (How to join development): Modify for Semi-gnus - mailing list. - - * lisp/gnus.el (gnus-version-number): Update to 6.0.7. - - * lisp/gnus.el (gnus-article-display-hook): Delete - `gnus-article-de-quoted-unreadable' from options. - - * lisp/gnus-sum.el (gnus-article-make-menu-bar): Delete key for - `gnus-article-de-quoted-unreadable'. - (gnus-summary-make-menu-bar): Delete menu for - `gnus-article-de-quoted-unreadable'. - - * lisp/gnus-art.el (gnus-article-make-menu-bar): Delete menu for - `gnus-article-de-quoted-unreadable'. - -1998-02-24 MORIOKA Tomohiko - - * lisp/gnus.el, lisp/message.el: Sync up with qgnus-0.32. - -1998-02-23 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.0.6. - - * lisp/message.el (message-fill-references): Abolish unused local - variables. - - * lisp/pop3.el, lisp/message.el, lisp/gnus.el, lisp/gnus-sum.el, - lisp/gnus-art.el: Sync up with qgnus-0.31. - - * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el, - lisp/gnus-art.el: Sync up with qgnus-0.30. - -1998-02-20 Christophe Broult - - * README.semi (How to get?): The command `update' must come before - `-r semi-gnus'. (cf. [tm-en:1559]) - -1998-02-17 MORIOKA Tomohiko - - * lisp/gnus.el: Sync up with qgnus-0.29. - - * lisp/gnus.el, lisp/message.el: Sync up with qgnus-0.28. - - * lisp/message.el: Abolish variable - `message-references-generator'. Abolish function - `message-generate-filled-references', - `message-generate-folded-references' and - `message-generate-unfolded-references'. - (message-reply): Don't use `message-references-generator'. - (message-followup): Don't use `message-references-generator'. - - (message-fill-references): New function. - (message-header-format-alist): Use `message-fill-references' for - References. - -1998-02-17 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to 6.0.5. - -1998-02-17 MORIOKA Tomohiko - - * lisp/gnus-sum.el: Check SEMI-0.118.2 (Otomaru) or later. - (gnus-structured-field-decoder): Use - `eword-decode-and-unfold-structured-field'. - - * lisp/gnus-art.el (gnus-article-decode-rfc1522): Use charset - conversion option of `eword-decode-header'. - (gnus-article-decode-encoded-word): Use charset conversion option - of `eword-decode-header'; use `gnus-run-hooks'. - (gnus-content-header-filter): Use charset conversion option of - `eword-decode-header'. - - * README.semi (How to get?): Should specify "-r semi-gnus". - -1998-02-16 MORIOKA Tomohiko - - * lisp/gnus-art.el (gnus-article-decode-rfc1522): Decode header by - localized code. - -1998-02-16 MORIOKA Tomohiko - - * lisp/gnus-msg.el: Delete commented-out function - `gnus-inews-insert-mime-headers'. - - * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el, - lisp/gnus-art.el: Sync up with qgnus-0.27. - -1998-02-16 MORIOKA Tomohiko - - * lisp/nnheader.el: Use original. - - * lisp/gnus.el, lisp/pop3.el, lisp/message.el, lisp/gnus-sum.el, - lisp/gnus-msg.el, lisp/gnus-draft.el, lisp/gnus-art.el: Sync up - with qgnus-0.26. - -1998-02-15 MORIOKA Tomohiko - - * lisp/nnmail.el, lisp/nnmh.el: Use original. - - * lisp/gnus.el, lisp/gnus-draft.el, lisp/gnus-sum.el, - lisp/message.el, lisp/gnus-art.el: Sync up with qgnus-0.25. - -1998-02-11 Shuhei Kobayashi - - * texi/message.texi, texi/gnus.texi, texi/ChangeLog, - lisp/message.el, lisp/gnus.el, lisp/gnus-uu.el, - lisp/gnus-topic.el, lisp/gnus-sum.el, lisp/gnus-start.el, - lisp/gnus-score.el, lisp/gnus-group.el, lisp/gnus-art.el, - lisp/gnus-agent.el, lisp/ChangeLog: Importing qgnus-0.24 - -1998-02-10 MORIOKA Tomohiko - - * lisp/gnus-art.el (gnus-article-prepare): Don't bind coding - systems. - - * lisp/gnus.el (gnus-version-number): Update to 6.0.4. - (gnus-version): Sync with qgnus-0.23. - - * lisp/pop3.el, lisp/nnmh.el, lisp/nnheader.el, lisp/message.el, - lisp/gnus-sum.el, lisp/gnus-msg.el, lisp/gnus-draft.el, - lisp/gnus-art.el: Merge qgnus-0.23. - -1998-02-09 Shuhei Kobayashi - - * texi/message.texi, texi/gnus.texi, texi/ChangeLog, lisp/nntp.el, - lisp/nnheader.el, lisp/message.el, lisp/gnus.el, - lisp/gnus-xmas.el, lisp/gnus-sum.el, lisp/gnus-start.el, - lisp/gnus-msg.el, lisp/gnus-group.el, lisp/gnus-draft.el, - lisp/gnus-art.el, lisp/gnus-agent.el, lisp/ChangeLog: Importing - qgnus-0.23 - -1998-02-04 MORIOKA Tomohiko - - * lisp/message.el (message-references-generator): New variable. - (message-generate-filled-references): New function. - (message-generate-folded-references): New function. - (message-generate-unfolded-references): New function. - (message-reply): Refer `message-references-generator'. - (message-followup): Refer `message-references-generator'. - -1998-01-17 MORIOKA Tomohiko - - * lisp/message.el (message-send-mail-with-sendmail): Guard - `coding-system-for-write' by binary. - (message-send-mail-with-qmail): Likewise. - -1998-01-16 MORIOKA Tomohiko - - * lisp/lpath.el: Require path-util; add load-path of APEL, MEL and - SEMI. - -1998-01-12 MORIOKA Tomohiko - - * lisp/message.el: Require smtp.el when compile. - - * lisp/message.el (message-send-mail-with-smtp): Use - `(current-buffer)' instead of `tembuf'; rename - `smtp-recipient-address-list' -> `recipient-address-list'. - -1998-01-12 MORIOKA Tomohiko - - * lisp/smtp.el (smtp-deduce-address-list): Don't use - `smtp-recipient-address-list' as global variable. - - * lisp/message.el (message-send-mail-with-smtp): Don't use - `smtp-recipient-address-list' as global variable. - - * lisp/smtpmail.el (smtpmail-recipient-address-list): New - variable; renamed from `smtp-recipient-address-list'. - (smtpmail-send-it): Remove `(not (null ...))'. - (smtpmail-send-queued-mail): Likewise. - -1998-01-12 MORIOKA Tomohiko - - * lisp/message.el (message-send-mail-with-smtp): Don't generate - temporary buffer for message; don't generate and kill - `smtp-address-buffer' for `smtp-deduce-address-list'. - - * lisp/smtpmail.el (smtpmail-send-it): Don't generate and kill - `smtp-address-buffer' for `smtp-deduce-address-list'. - - * lisp/smtp.el (smtp-deduce-address-list): Bind and generate - `smtp-address-buffer' in itself. - -1998-01-12 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to version 6.0.3. - -1998-01-11 MORIOKA Tomohiko - - * lisp/smtp.el: New file. - - * lisp/smtpmail.el: Split basic features into smtp.el. - - * lisp/message.el (message-send-mail-function): Add - `message-send-mail-with-smtp' as an item. - (message-send-mail-with-smtp): New function. - - * ChangeLog: New file. - -1998-01-08 MORIOKA Tomohiko - - * lisp/smtpmail.el (smtpmail-via-smtp): Bind - `coding-system-for-read' by `smtpmail-coding-system' to avoid - dead-locking in Emacs 20. - - * lisp/gnus.el: gnus.el (gnus-version-number): Update to version - 6.0.2. - -1998-01-07 MORIOKA Tomohiko - - * lisp/nnmail.el, lisp/message.el: Sync with Quassia Gnus v0.22. - - * lisp/gnus.el: Delete autoload setting for `metamail-buffer'. - - * lisp/gnus.el, lisp/gnus-sum.el: Sync with Quassia Gnus v0.22. - - * lisp/gnus-msg.el: Abolish function - `gnus-inews-insert-mime-headers'. - - * lisp/gnus-msg.el, lisp/gnus-draft.el, lisp/gnus-art.el: Sync - with Quassia Gnus v0.22. - - * lisp/smtpmail.el (smtpmail-coding-system): New variable; abolish - `smtpmail-code-conv-from'. - (smtpmail-via-smtp): Guard `coding-system-for-write' by - `smtpmail-coding-system'. - - * lisp/smtpmail.el: Imported from Emacs 20.2. - - * lisp/pop3.el (pop3-movemail-file-coding-system): Change default - value to `binary'. - (pop3-open-server): Guard `coding-system-for-read' by `binary'. - -1998-01-06 Shuhei Kobayashi - - * texi/message.texi, texi/gnus.texi, texi/ChangeLog, lisp/nnoo.el, - lisp/nnml.el, lisp/message.el, lisp/gnus.el, lisp/gnus-sum.el, - lisp/gnus-start.el, lisp/gnus-ems.el, lisp/gnus-draft.el, - lisp/gnus-agent.el, lisp/ChangeLog: Importing qgnus-0.22 - - * texi/message.texi, texi/gnus.texi, lisp/gnus.el, lisp/ChangeLog: - Importing qgnus-0.21 - - * texi/message.texi, texi/gnus.texi, texi/ChangeLog, - lisp/nnvirtual.el, lisp/nnsoup.el, lisp/nnoo.el, lisp/nnmh.el, - lisp/nnmail.el, lisp/nndraft.el, lisp/gnus.el, lisp/gnus-xmas.el, - lisp/gnus-sum.el, lisp/gnus-start.el, lisp/gnus-score.el, - lisp/gnus-msg.el, lisp/gnus-group.el, lisp/gnus-draft.el, - lisp/gnus-art.el, lisp/ChangeLog: Importing qgnus-0.20 - - * texi/message.texi, texi/gnus.texi, texi/ChangeLog, lisp/pop3.el, - lisp/nntp.el, lisp/nnml.el, lisp/nnmail.el, lisp/nndoc.el, - lisp/message.el, lisp/gnus.el, lisp/gnus-uu.el, - lisp/gnus-topic.el, lisp/gnus-sum.el, lisp/gnus-start.el, - lisp/gnus-score.el, lisp/gnus-group.el, lisp/gnus-cache.el, - lisp/gnus-agent.el, lisp/ChangeLog: Importing qgnus-0.19 - -1997-12-27 MORIOKA Tomohiko - - * lisp/gnus.el (gnus-version-number): Update to version 6.0.1. - - * lisp/message.el (message-resend): Enclose `message-setup' with - `(let (message-setup-hook) ...)' to avoid to `turn-on-mime-edit'; - must setup `message-encoding-buffer' and `message-edit-buffer' for - `message-send-mail'. - -1997-12-08 Shuhei Kobayashi - - * lisp/pop3.el, lisp/message.el, lisp/gnus.el, lisp/gnus-sum.el, - lisp/gnus-art.el, lisp/ChangeLog: Synch'ed up to qgnus-0.18. - - * texi/message.texi, texi/gnus.texi, texi/ChangeLog, - lisp/smiley.el, lisp/pop3.el, lisp/nnweb.el, lisp/nntp.el, - lisp/nnml.el, lisp/nnmail.el, lisp/nnheader.el, lisp/nndraft.el, - lisp/message.el, lisp/lpath.el, lisp/gnus.el, lisp/gnus-util.el, - lisp/gnus-sum.el, lisp/gnus-start.el, lisp/gnus-picon.el, - lisp/gnus-nocem.el, lisp/gnus-mh.el, lisp/gnus-group.el, - lisp/gnus-ems.el, lisp/gnus-cite.el, lisp/gnus-art.el, - lisp/gnus-agent.el, lisp/dgnushack.el, lisp/ChangeLog: Importing - qgnus-0.18 - -1997-11-29 MORIOKA Tomohiko - - * README.semi: New file. - - * lisp/gnus.el (gnus-version): Rename to "Semi-gnus". - -1997-11-28 MORIOKA Tomohiko - - * lisp/gnus-draft.el (gnus-draft-decoding-function): New variable. - (gnus-draft-setup): Use `gnus-draft-decoding-function'. - -1997-11-27 MORIOKA Tomohiko - - * lisp/nnmail.el, lisp/nnheader.el, lisp/message.el, lisp/gnus.el, - lisp/gnus-sum.el, lisp/gnus-msg.el, lisp/gnus-art.el: sync with - qgnus-0.17. - - * texi/message.texi, texi/gnus.texi, lisp/smiley.el, lisp/nnoo.el, - lisp/nnml.el, lisp/nnmail.el, lisp/nnheader.el, - lisp/messagexmas.el, lisp/message.el, lisp/gnus.el, - lisp/gnus-xmas.el, lisp/gnus-util.el, lisp/gnus-sum.el, - lisp/gnus-start.el, lisp/gnus-spec.el, lisp/gnus-score.el, - lisp/gnus-picon.el, lisp/gnus-move.el, lisp/gnus-msg.el, - lisp/gnus-kill.el, lisp/gnus-group.el, lisp/gnus-draft.el, - lisp/gnus-demon.el, lisp/gnus-cite.el, lisp/gnus-art.el, - lisp/ChangeLog: Quassia Gnus v0.17. - - * lisp/gnus-i18n.el: New file. - - * lisp/nnmail.el (nnmail-file-coding-system): Use `raw-text' in - default. - - * lisp/nnheader.el (nnheader-file-coding-system): Use `raw-text' - in default. - - * lisp/message.el (message-encode-function): New variable. - (message-forward-start-separator): Modify for mime-edit. - (message-forward-end-separator): Modify for mime-edit. - (message-setup-hook): Use `(message-maybe-setup-default-charset - turn-on-mime-edit)' in default. - (message-header-hook): Use `(eword-encode-header)' in default. - - (message-send): Use local variable `message-encoding-buffer', - `message-edit-buffer' and `message-mime-mode' as public variables; - use `message-encode-function'. - (message-send-mail): Use `message-encoding-buffer' to get contents - of body; abolish `message-encode-mail-hook'; use - `mime-edit-maybe-split-and-send'; use `message-edit-buffer' to - refer original editing buffer. - (message-send-news): Use `message-encoding-buffer' to get contents - of body; abolish `message-encode-news-hook'; use - `mime-edit-maybe-split-and-send'; use `message-edit-buffer' to - refer original editing buffer. - (message-check-news-syntax): Call `message-check-news-body-syntax' - in `mime-edit-buffer'. - (message-do-fcc): Use `message-encoding-buffer' to get contents; - run `message-header-hook'. - (message-cancel-news): Use `std11-extract-address-components' - instead of `mail-extract-address-components'; bind - `message-encoding-buffer' and `message-edit-buffer'. - - (message-maybe-setup-default-charset): New function. - (message-maybe-encode): New function. - (message-mime-insert-article): New function. - Add setting for mime-view. - - * lisp/gnus.el (gnus-version-number): for version number for Open - gnus. - (gnus-version): Modify for Open gnus. - - * lisp/gnus-sum.el: Autoload gnus-i18n. - - (gnus-show-mime): `t' in default. - (gnus-structured-field-decoder): Use - `eword-decode-structured-field-body' in default. - (gnus-unstructured-field-decoder): Use - `eword-decode-unstructured-field-body' in default. - - (gnus-parse-headers-hook): Use - `(gnus-set-summary-default-charset)' in default. - - (gnus-summary-mode-map): Add binding for - `gnus-summary-scroll-down' and - `gnus-summary-preview-mime-message'. - - (gnus-summary-preview-mime-message): New function. - (gnus-mime-partial-preview-function): New function. - Add setting for mime-view. - - * lisp/gnus-msg.el (gnus-summary-cancel-article): Display - `gnus-article-buffer' instead ofb `gnus-original-article-buffer'. - (gnus-extended-version): Don't return version of emacsen. - (gnus-inews-do-gcc): Refer `message-encoding-buffer'. - - * lisp/gnus-art.el (gnus-show-mime-method): Use - `gnus-article-preview-mime-message' instead of `metamail-buffer' - in default. - (gnus-decode-encoded-word-method): Use - `gnus-article-decode-encoded-word' instead of - `gnus-article-de-quoted-unreadable' in default. - - Abolish `gnus-hack-decode-rfc1522', `gnus-decode-rfc1522', - `article-decode-rfc1522', `article-de-quoted-unreadable', - `article-mime-decode-quoted-printable-buffer' and - `article-mime-decode-quoted-printable'. - (gnus-article-decode-rfc1522): New implementation (use - `eword-decode-header'). - - (gnus-article-preview-mime-message): New function. - (gnus-article-decode-encoded-word): New function. - (gnus-content-header-filter): New function. - (mime-view-quitting-method-for-gnus): New function. - Add setting for mime-view. - - * lisp/message.el: Abolish `message-max-size' because it is not - used. - - * lisp/message.el: sync with qgnus-0.16. - - * texi/Makefile, texi/message.texi, texi/gnus.texi, lisp/nnweb.el, - lisp/nnmh.el, lisp/nnheader.el, lisp/nnfolder.el, lisp/message.el, - lisp/gnus.el, lisp/gnus-xmas.el, lisp/gnus-uu.el, - lisp/gnus-sum.el, lisp/gnus-srvr.el, lisp/gnus-picon.el, - lisp/gnus-group.el, lisp/gnus-cite.el, lisp/gnus-art.el: Quassia - Gnus v0.16. - - * lisp/nnmh.el (nnmh-request-list-1): fix maybe. - - * lisp/message.el (message-do-fcc): Guard - `coding-system-for-write' by `raw-text'; run - `message-before-do-fcc-hook'. - - * lisp/gnus-msg.el (gnus-inews-do-gcc): Guard - `coding-system-for-write' by `raw-text'; run - `gnus-before-do-gcc-hook'. - - * texi/message.texi, texi/gnus.texi, texi/ChangeLog, lisp/nntp.el, - lisp/nnoo.el, lisp/nnml.el, lisp/nndraft.el, lisp/nnbabyl.el, - lisp/message.el, lisp/gnus.el, lisp/gnus-xmas.el, lisp/gnus-uu.el, - lisp/gnus-util.el, lisp/gnus-sum.el, lisp/gnus-start.el, - lisp/gnus-spec.el, lisp/gnus-soup.el, lisp/gnus-score.el, - lisp/gnus-msg.el, lisp/gnus-gl.el, lisp/gnus-ems.el, - lisp/gnus-draft.el, lisp/gnus-cache.el, lisp/gnus-audio.el, - lisp/gnus-art.el, lisp/gnus-agent.el, lisp/ChangeLog: Quassia Gnus - v0.15. - - * lisp/message.el, lisp/ChangeLog: sync with qgnus-0.14. - - * texi/Makefile, texi/gnus.texi: Quassia Gnus v0.14. - - * texi/dir: New file. - - * texi/dir, lisp/pop3.el, lisp/nntp.el, lisp/nnml.el, - lisp/nnmail.el, lisp/nnfolder.el, lisp/message.el, lisp/lpath.el, - lisp/gnus.el, lisp/gnus-win.el, lisp/gnus-util.el, - lisp/gnus-topic.el, lisp/gnus-sum.el, lisp/gnus-start.el, - lisp/gnus-score.el, lisp/gnus-msg.el, lisp/gnus-mh.el, - lisp/gnus-cus.el, lisp/gnus-art.el, lisp/gnus-agent.el, - lisp/ChangeLog: Quassia Gnus v0.14. - - * lisp/message.el, lisp/ChangeLog: sync with qgnus-0.13. - - * texi/gnus.texi, texi/ChangeLog, lisp/pop3.el, lisp/nnweb.el, - lisp/nnmail.el: Quassia Gnus v0.13. - - * lisp/nnlistserv.el: New file. - - * lisp/nnlistserv.el, lisp/message.el, lisp/md5.el, lisp/lpath.el, - lisp/gnus.el, lisp/gnus-topic.el, lisp/gnus-sum.el, - lisp/gnus-score.el, lisp/gnus-picon.el, lisp/gnus-msg.el, - lisp/gnus-group.el, lisp/gnus-art.el, lisp/gnus-agent.el, - lisp/dgnushack.el, lisp/ChangeLog, GNUS-NEWS: Quassia Gnus v0.13. - - * lisp/message.el: sync with qgnus-0.12. - - * texi/message.texi, texi/gnus.texi, texi/gnus-faq.texi, - texi/ChangeLog, lisp/nntp.el, lisp/nnmh.el, lisp/nnmail.el, - lisp/nndraft.el, lisp/messcompat.el, lisp/message.el, - lisp/gnus.el, lisp/gnus-xmas.el, lisp/gnus-uu.el, - lisp/gnus-sum.el, lisp/gnus-score.el, lisp/gnus-salt.el, - lisp/gnus-msg.el, lisp/gnus-int.el, lisp/gnus-group.el, - lisp/gnus-demon.el, lisp/gnus-cache.el, lisp/gnus-art.el, - lisp/gnus-agent.el, lisp/ChangeLog, GNUS-NEWS: Quassia Gnus v0.12. - - * lisp/message.el (message-send-news-function): Use - `message-send-news-with-gnus' in default. - (message-send-via-news): Use `message-send-news' instead of - `message-send-news-function'. - (message-send-mail): Don't avoid text properties; run - `message-encode-mail-hook'. - (message-send-news): Don't avoid text properties; run - `message-encode-news-hook'; use `message-send-news-function'. - (message-send-news-with-gnus): New function. - (message-cancel-news): Use `message-send-news' instead of - `message-send-news-function'. diff --git a/README.semi b/README.semi deleted file mode 100644 index b297fe7..0000000 --- a/README.semi +++ /dev/null @@ -1,95 +0,0 @@ -This package contains Semi-gnus. - -What is Semi-gnus? -================== - - Semi-gnus is a replacement of Gnus with gnus-mime for SEMI. It has -all features of Gnus and gnus-mime, so there are no need to install -Gnus to use it, and you must not use gnus-mime for SEMI. - - It requires SEMI package, so please get and install SEMI package -before to install it. - - -How to get? (via CVS) -===================== - -(0) cvs login - - % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \ - login - - CVS password: [CR] # NULL string - -(1) checkout - - % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \ - checkout [-r TAG] gnus - -(2) compile - - % cd gnus - % make EMACS= - -(3) update - - % cvs update [-r TAG] - -Major tags are following: - - semi-gnus assigned to the latest stable version. It is - very conservative. - - for-semi-N1_N2 assigned to the latest stable version for SEMI - API N1.N2 (N1 and N2 are natural number). - (e.g. `for-semi-1_3' is for SEMI API 1.3) - - gnus-N1_N2_N3 assigned to gnus(Gnus) N1.N2.N3 - (e.g. `gnus-6_2_1' means gnus 6.2.1). - - larsi Original Gnus - - himi himi branch - - ichikawa ichikawa branch - - akr akr branch - - shuhei-k shuhei-k branch - Mail-Followup-To/Mail-Reply-To, gnus-cache fix. - - -How to get? (via ftp) -===================== - - Semi-daily snapshots are also available from - - ftp://ftp.jaist.ac.jp/pub/GNU/elisp/semi-gnus/ - - NOTE: These snapshots are automatically created from our repository -if something was changed within a day, and will usually not be tested. - - -How to join development -======================= - - If you have found a bug in Gnus proper, please do `M-x gnus-bug' and -send a bug report to the Gnus maintainers. - - If you have found a bug in Semi-gnus, or if you're not sure whether it -is a Gnus proper, please send a bug report to the Semi-gnus mailing list: - - semi-gnus-en@meadow.scphys.kyoto-u.ac.jp (English) - semi-gnus-ja@meadow.scphys.kyoto-u.ac.jp (Japanese) - -Suggestions for Semi-gnus improvements are also welcome. - - Via the Semi-gnus ML, you can report Semi-gnus related bugs, obtain -the latest release of Semi-gnus, and discuss future enhancements to -Semi-gnus. To join the Semi-gnus ML, send an empty e-mail to - - semi-gnus-en-help@meadow.scphys.kyoto-u.ac.jp (English) - semi-gnus-ja-help@meadow.scphys.kyoto-u.ac.jp (Japanese) - - In addition, we need developers. If you would like to develop it, -please send mail to cvs@chamonix.jaist.ac.jp. diff --git a/lisp/gnus-i18n.el b/lisp/gnus-i18n.el deleted file mode 100644 index 3737fb9..0000000 --- a/lisp/gnus-i18n.el +++ /dev/null @@ -1,95 +0,0 @@ -;;; gnus-i18n.el --- Internationalization for Gnus - -;; Copyright (C) 1996,1997 Free Software Foundation, Inc. - -;; Author: MORIOKA Tomohiko -;; Created: 1997/11/27 -;; Keywords: internationalization, news, mail - -;; This file is not part of GNU Emacs yet. - -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation; either version 2, or (at -;; your option) any later version. - -;; This program is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;; Code: - -;;; @ newsgroup default charset -;;; - -(defvar gnus-newsgroup-default-charset-alist - '(("^\\(fj\\|tnn\\|japan\\)\\." . iso-2022-jp-2) - ("^han\\." . euc-kr) - ("^relcom\\." . koi8-r) - ("^alt\\.chinese\\.text\\.big5" . cn-big5) - ("^hk\\(star\\)?\\." . cn-big5) - ("^tw\\." . cn-big5) - ("^alt\\.chinese" . hz-gb-2312) - ) - "Alist of newsgroup patterns vs. corresponding default MIME charset. -Each element looks like (REGEXP . SYMBOL). REGEXP is pattern for -newsgroup name. SYMBOL is MIME charset or coding-system.") - -(defun gnus-set-newsgroup-default-charset (newsgroup charset) - "Set CHARSET for the NEWSGROUP as default MIME charset." - (let* ((ng-regexp (concat "^" (regexp-quote newsgroup) "\\($\\|\\.\\)")) - (pair (assoc ng-regexp gnus-newsgroup-default-charset-alist)) - ) - (if pair - (setcdr pair charset) - (setq gnus-newsgroup-default-charset-alist - (cons (cons ng-regexp charset) - gnus-newsgroup-default-charset-alist)) - ))) - - -;;; @ localization -;;; - -(defun gnus-set-summary-default-charset () - "Set up `default-mime-charset' of summary buffer. -It is specified by variable `gnus-newsgroup-default-charset-alist' -\(cf. function `gnus-set-newsgroup-default-charset')." - (if (buffer-live-p gnus-summary-buffer) - (let ((charset - (catch 'found - (let ((group - (save-excursion - (set-buffer gnus-summary-buffer) - gnus-newsgroup-name)) - (alist gnus-newsgroup-default-charset-alist)) - (while alist - (let ((pair (car alist))) - (if (string-match (car pair) group) - (throw 'found (cdr pair)) - )) - (setq alist (cdr alist))) - )))) - (when charset - (save-excursion - (set-buffer gnus-summary-buffer) - (make-local-variable 'default-mime-charset) - (setq default-mime-charset charset) - ) - (make-local-variable 'default-mime-charset) - (setq default-mime-charset charset) - )))) - - -;;; @ end -;;; - -(provide 'gnus-i18n) - -;;; gnus-i18n.el ends here diff --git a/lisp/pop3-fma.el b/lisp/pop3-fma.el deleted file mode 100644 index 1dbad4c..0000000 --- a/lisp/pop3-fma.el +++ /dev/null @@ -1,311 +0,0 @@ -;; pop3-fma.el.el --- POP3 for Multiple Account for Gnus. -;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. , Tatsuya Ichikawa -;; Yasuo Okabe -;; Author: Tatsuya Ichikawa -;; Yasuo OKABE -;; Version: 1.00 -;; Keywords: mail , gnus , pop3 -;; -;; SPECIAL THANKS -;; Keiichi Suzuki -;; Katsumi Yamaoka -;; -;; This file is not part of GNU Emacs. - -;; GNU Emacs is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;; Commentary: -;; -;; Note. -;; -;; This file store pop3 password in variable "pop3-fma-password". -;; Please take care by yourself to treat pop3 password. -;; -;; How to use. -;; -;; add your .emacs following codes. -;; -;; (require 'pop3-fma) -;; (setq pop3-fma-spool-file-alist -;; '( -;; "po:username0@mailhost0.your.domain0" -;; "po:username1@mailhost1.your.domain1" -;; : -;; : -;; )) -;; -;; Variables -;; -;; pop3-fma-spool-file-alist ... Spool file alist of POP3 protocol -;; pop3-fma-movemail-type ... Type of movemail program. -;; 'lisp or 'exe -;; 'lisp use pop3.el -;; 'exe use movemail -;; pop3-fma-movemail-arguments ... List of options of movemail program. -;; -;;; Code: - -(require 'cl) -(require 'custom) - -(unless (and (condition-case () - (require 'custom) - (file-error nil)) - (fboundp 'defgroup) - (fboundp 'defcustom)) - (require 'backquote) - (defmacro defgroup (&rest args)) - (defmacro defcustom (symbol value &optional doc &rest args) - (` (defvar (, symbol) (, value) (, doc)))) - ) - -(unless (and (fboundp 'pop3-fma-encode-string) - (fboundp 'pop3-fma-decode-string)) - (require 'mel-b) - (fset 'pop3-fma-encode-string 'base64-encode-string) - (fset 'pop3-fma-decode-string 'base64-decode-string)) - -(defgroup pop3-fma nil - "Multile POP3 account utility for Gnus." - :prefix "pop3-fma-" - :group 'mail - :group 'news) - -(defconst pop3-fma-version-number "1.00") -(defconst pop3-fma-codename -;; "Feel the wind" ; 0.10 -;; "My home town" ; 0.11 -;; "On the road" ; 0.12 -;; "Rock'n Roll city" ; 0.13 -;; "Money" ; 0.20 -;; "Still 19" ; 0.21 - "J boy" ; 1.00 -;; "Blood line" ; 0.xx -;; "Star ring" ; 0.xx -;; "Goodbye Game" ; 0.xx - ) -(defconst pop3-fma-version (format "Multiple POP3 account utiliy for Gnus v%s - \"%s\"" - pop3-fma-version-number - pop3-fma-codename)) - -(defcustom pop3-fma-spool-file-alist nil - "*Spool file to get mail using pop3 protocol. -You should specify this variable like - '( - \"po:user1@mailhost1\" - \"po:user2@mailhost2\" - )" - :group 'pop3-fma - :type 'alist) - -(defcustom pop3-fma-local-spool-file-alist nil - "*List of Local spool file to get mail." - :group 'pop3-fma - :type 'alist) - -(defcustom pop3-fma-movemail-type 'lisp - "*Type of movemail program. -Lisp means `nnmail-movemail-program' is lisp function. - Exe means `nnmail-movemail-program' is external program. - Please do not use exe if you do not use Meadow." - :group 'pop3-fma - :type '(choice (const lisp) - (const exe))) - -(defcustom pop3-fma-movemail-arguments '("-pf") - "*Options for movemail." - :group 'pop3-fma - :type '(repeat (string :tag "Argument"))) - -;;; Internal variables. -(defvar pop3-fma-password nil - "*POP3 password , user , mailhost information for Gnus.") - -(defvar pop3-fma-movemail-program "movemail.exe" - "*External program name your movemail. -Please do not set this valiable non-nil if you do not use Meadow.") - -;; Temporary variable -(defvar hdr nil) -(defvar passwd nil) -(defvar str nil) -(defvar pop3-fma-movemail-options pop3-fma-movemail-arguments) -(defvar spool nil) - -(defun pop3-fma-init-message-hook () - (add-hook 'message-send-hook 'pop3-fma-message-add-header)) - -(eval-after-load "message" - '(pop3-fma-init-message-hook)) - -(add-hook 'gnus-after-exiting-gnus-hook - '(lambda () (setq pop3-fma-password nil))) -(add-hook 'gnus-before-startup-hook 'pop3-fma-set-pop3-password) - -;; -;; -;; Gnus POP3 additional utility... -;; -(defun pop3-fma-movemail (inbox crashbox) - "Function to move mail from INBOX on a pop3 server to file CRASHBOX." - (if (string-match "^po:" inbox) - (progn - (let ((pop3-maildrop - (substring inbox (match-end (string-match "^po:" inbox)) - (- (match-end (string-match "^.*@" inbox)) 1))) - (pop3-mailhost - (substring inbox (match-end (string-match "^.*@" inbox))))) - (let ((pop3-password - (pop3-fma-read-passwd pop3-mailhost))) - (message "Checking new mail user %s at %s..." pop3-maildrop pop3-mailhost) - (if (and (eq system-type 'windows-nt) - (eq pop3-fma-movemail-type 'exe)) - (progn - (setenv "MAILHOST" pop3-mailhost) - (if (and (not (memq pop3-password pop3-fma-movemail-arguments)) - (not (memq (concat "po:" pop3-maildrop) pop3-fma-movemail-arguments))) - (progn - (setq pop3-fma-movemail-arguments nil) - (setq pop3-fma-movemail-arguments - (append pop3-fma-movemail-options - (list - (concat "po:" pop3-maildrop) - crashbox - pop3-password))))) - (apply 'call-process (concat - exec-directory - pop3-fma-movemail-program) - nil nil nil - pop3-fma-movemail-arguments)) - (pop3-movemail crashbox))))) - (message "Checking new mail at %s ... " inbox) - (call-process (concat exec-directory pop3-fma-movemail-program) - nil - nil - nil - inbox - crashbox) - (message "Checking new mail at %s ... done." inbox))) -;; -;; -(defun pop3-fma-read-passwd (mailhost) - (setq passwd (nth 2 (assoc mailhost pop3-fma-password))) - (pop3-fma-decode-string passwd)) - -(setq pop3-read-passwd 'pop3-fma-read-passwd) -;; -;; Set multiple pop3 server's password -(defun pop3-fma-store-password (passwd) - (interactive - (list (pop3-fma-read-noecho - (format "POP Password for %s at %s: " pop3-maildrop pop3-mailhost) t))) - (if (not (assoc pop3-mailhost pop3-fma-password)) - (setq pop3-fma-password - (append pop3-fma-password - (list - (list - pop3-mailhost - pop3-maildrop - (pop3-fma-encode-string passwd))))) - (setcar (cdr (cdr (assoc pop3-mailhost pop3-fma-password))) - (pop3-fma-encode-string passwd))) - (message "POP password registered.") - (pop3-fma-encode-string passwd)) -;; -;;;###autoload -(defun pop3-fma-set-pop3-password() - (interactive) - (mapcar - (lambda (x) - (let ((pop3-maildrop - (substring x (match-end (string-match "^po:" x)) - (- (match-end (string-match "^.*@" x)) 1))) - (pop3-mailhost - (substring x (match-end (string-match "^.*@" x))))) - (call-interactively 'pop3-fma-store-password))) - pop3-fma-spool-file-alist) - (setq nnmail-movemail-program 'pop3-fma-movemail) -;; (setq nnmail-spool-file pop3-fma-spool-file-alist)) - (setq nnmail-spool-file (append - pop3-fma-local-spool-file-alist - pop3-fma-spool-file-alist))) -;; -(defun pop3-fma-read-noecho (prompt &optional stars) - "Read a single line of text from user without echoing, and return it. -Argument PROMPT ." - (let ((ans "") - (c 0) - (echo-keystrokes 0) - (cursor-in-echo-area t) - (log-message-max-size 0) - message-log-max done msg truncate) - (while (not done) - (if (or (not stars) (string-equal "" ans)) - (setq msg prompt) - (setq msg (concat prompt (make-string (length ans) ?*))) - (setq truncate - (1+ (- (length msg) (window-width (minibuffer-window))))) - (and (> truncate 0) - (setq msg (concat "$" (substring msg (1+ truncate)))))) - (message msg) - (setq c (read-char-exclusive)) - (cond ((= c ?\C-g) - (setq quit-flag t - done t)) - ((or (= c ?\r) (= c ?\n) (= c ?\e)) - (setq done t)) - ((= c ?\C-u) - (setq ans "")) - ((and (/= c ?\b) (/= c ?\177)) - (setq ans (concat ans (char-to-string c)))) - ((> (length ans) 0) - (setq ans (substring ans 0 -1))))) - (if quit-flag - (prog1 - (setq quit-flag nil) - (message "Quit") - (beep t)) - (message "") - ans))) -;; -;; -(defun pop3-fma-message-add-header () - (if (message-mail-p) - (pop3-fma-add-custom-header "X-Ya-Pop3:" pop3-fma-version))) - -;; -;; Add your custom header. -;; -(defun pop3-fma-add-custom-header (header string) - (let ((delimline - (progn (goto-char (point-min)) - (re-search-forward - (concat "^" (regexp-quote mail-header-separator) "\n")) - (point-marker)))) - (goto-char (point-min)) - (or (re-search-forward (concat "^" header) delimline t) - (progn - (goto-char delimline) - (forward-line -1) - (beginning-of-line) - (setq hdr (concat header " ")) - (setq str (concat hdr string)) - (setq hdr (concat str "\n")) - (insert-string hdr))))) -;; -(provide 'pop3-fma) -;; -;; pop3-fma.el ends here. diff --git a/lisp/smtp.el b/lisp/smtp.el deleted file mode 100644 index 7dde447..0000000 --- a/lisp/smtp.el +++ /dev/null @@ -1,457 +0,0 @@ -;;; smtp.el --- basic functions to send mail with SMTP server - -;; Copyright (C) 1995, 1996, 1998 Free Software Foundation, Inc. - -;; Author: Tomoji Kagatani -;; ESMTP support: Simon Leinen -;; Keywords: SMTP, mail - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;; Code: - -(defgroup smtp nil - "SMTP protocol for sending mail." - :group 'mail) - -(defcustom smtp-default-server nil - "*Specify default SMTP server." - :type '(choice (const nil) string) - :group 'smtp) - -(defcustom smtp-server - (or (getenv "SMTPSERVER") smtp-default-server) - "*The name of the host running SMTP server." - :type '(choice (const nil) string) - :group 'smtp) - -(defcustom smtp-service 25 - "*SMTP service port number. smtp or 25 ." - :type 'integer - :group 'smtp) - -(defcustom smtp-local-domain nil - "*Local domain name without a host name. -If the function (system-name) returns the full internet address, -don't define this value." - :type '(choice (const nil) string) - :group 'smtp) - -(defcustom smtp-debug-info nil - "*smtp debug info printout. messages and process buffer." - :type 'boolean - :group 'smtp) - -(defcustom smtp-coding-system 'binary - "*Coding-system for SMTP output." - :type 'coding-system - :group 'smtp) - - -(defun smtp-fqdn () - (if smtp-local-domain - (concat (system-name) "." smtp-local-domain) - (system-name))) - -(defun smtp-via-smtp (recipient smtp-text-buffer) - (let ((process nil) - (host smtp-server) - (port smtp-service) - response-code - greeting - process-buffer - (supported-extensions '()) - (coding-system-for-read smtp-coding-system) - (coding-system-for-write smtp-coding-system)) - (unwind-protect - (catch 'done - ;; get or create the trace buffer - (setq process-buffer - (get-buffer-create - (format "*trace of SMTP session to %s*" host))) - - ;; clear the trace buffer of old output - (save-excursion - (set-buffer process-buffer) - (erase-buffer)) - - ;; open the connection to the server - (setq process (open-network-stream "SMTP" process-buffer host port)) - (and (null process) (throw 'done nil)) - - ;; set the send-filter - (set-process-filter process 'smtp-process-filter) - - (save-excursion - (set-buffer process-buffer) - (make-local-variable 'smtp-read-point) - (setq smtp-read-point (point-min)) - - (if (or (null (car (setq greeting (smtp-read-response process)))) - (not (integerp (car greeting))) - (>= (car greeting) 400)) - (throw 'done nil) - ) - - ;; EHLO - (smtp-send-command process (format "EHLO %s" (smtp-fqdn))) - - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (progn - ;; HELO - (smtp-send-command process (format "HELO %s" (smtp-fqdn))) - - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil))) - (let ((extension-lines (cdr (cdr response-code)))) - (while extension-lines - (let ((name (intern (downcase (substring (car extension-lines) 4))))) - (and name - (cond ((memq name '(verb xvrb 8bitmime onex xone - expn size dsn etrn - help xusr)) - (setq supported-extensions - (cons name supported-extensions))) - (t (message "unknown extension %s" - name))))) - (setq extension-lines (cdr extension-lines))))) - - (if (or (member 'onex supported-extensions) - (member 'xone supported-extensions)) - (progn - (smtp-send-command process (format "ONEX")) - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil)))) - - (if (and smtp-debug-info - (or (member 'verb supported-extensions) - (member 'xvrb supported-extensions))) - (progn - (smtp-send-command process (format "VERB")) - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil)))) - - (if (member 'xusr supported-extensions) - (progn - (smtp-send-command process (format "XUSR")) - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil)))) - - ;; MAIL FROM: - (let ((size-part - (if (member 'size supported-extensions) - (format " SIZE=%d" - (save-excursion - (set-buffer smtp-text-buffer) - ;; size estimate: - (+ (- (point-max) (point-min)) - ;; Add one byte for each change-of-line - ;; because or CR-LF representation: - (count-lines (point-min) (point-max)) - ;; For some reason, an empty line is - ;; added to the message. Maybe this - ;; is a bug, but it can't hurt to add - ;; those two bytes anyway: - 2))) - "")) - (body-part - (if (member '8bitmime supported-extensions) - ;; FIXME: - ;; Code should be added here that transforms - ;; the contents of the message buffer into - ;; something the receiving SMTP can handle. - ;; For a receiver that supports 8BITMIME, this - ;; may mean converting BINARY to BASE64, or - ;; adding Content-Transfer-Encoding and the - ;; other MIME headers. The code should also - ;; return an indication of what encoding the - ;; message buffer is now, i.e. ASCII or - ;; 8BITMIME. - (if nil - " BODY=8BITMIME" - "") - ""))) -; (smtp-send-command process (format "MAIL FROM:%s@%s" (user-login-name) (smtp-fqdn))) - (smtp-send-command process (format "MAIL FROM: <%s>%s%s" - user-mail-address - size-part - body-part)) - - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil) - )) - - ;; RCPT TO: - (let ((n 0)) - (while (not (null (nth n recipient))) - (smtp-send-command process (format "RCPT TO: <%s>" (nth n recipient))) - (setq n (1+ n)) - - (setq response-code (smtp-read-response process)) - (if (or (null (car response-code)) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil) - ) - )) - - ;; DATA - (smtp-send-command process "DATA") - - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil) - ) - - ;; Mail contents - (smtp-send-data process smtp-text-buffer) - - ;;DATA end "." - (smtp-send-command process ".") - - (if (or (null (car (setq response-code (smtp-read-response process)))) - (not (integerp (car response-code))) - (>= (car response-code) 400)) - (throw 'done nil) - ) - - ;;QUIT -; (smtp-send-command process "QUIT") -; (and (null (car (smtp-read-response process))) -; (throw 'done nil)) - t )) - (if process - (save-excursion - (set-buffer (process-buffer process)) - (smtp-send-command process "QUIT") - (smtp-read-response process) - -; (if (or (null (car (setq response-code (smtp-read-response process)))) -; (not (integerp (car response-code))) -; (>= (car response-code) 400)) -; (throw 'done nil) -; ) - (delete-process process)))))) - -(defun smtp-process-filter (process output) - (save-excursion - (set-buffer (process-buffer process)) - (goto-char (point-max)) - (insert output))) - -(defun smtp-read-response (process) - (let ((case-fold-search nil) - (response-strings nil) - (response-continue t) - (return-value '(nil ())) - match-end) - - (while response-continue - (goto-char smtp-read-point) - (while (not (search-forward "\r\n" nil t)) - (accept-process-output process) - (goto-char smtp-read-point)) - - (setq match-end (point)) - (setq response-strings - (cons (buffer-substring smtp-read-point (- match-end 2)) - response-strings)) - - (goto-char smtp-read-point) - (if (looking-at "[0-9]+ ") - (let ((begin (match-beginning 0)) - (end (match-end 0))) - (if smtp-debug-info - (message "%s" (car response-strings))) - - (setq smtp-read-point match-end) - - ;; ignore lines that start with "0" - (if (looking-at "0[0-9]+ ") - nil - (setq response-continue nil) - (setq return-value - (cons (string-to-int - (buffer-substring begin end)) - (nreverse response-strings))))) - - (if (looking-at "[0-9]+-") - (progn (if smtp-debug-info - (message "%s" (car response-strings))) - (setq smtp-read-point match-end) - (setq response-continue t)) - (progn - (setq smtp-read-point match-end) - (setq response-continue nil) - (setq return-value - (cons nil (nreverse response-strings))) - ) - ))) - (setq smtp-read-point match-end) - return-value)) - -(defun smtp-send-command (process command) - (goto-char (point-max)) - (if (= (aref command 0) ?P) - (insert "PASS \r\n") - (insert command "\r\n")) - (setq smtp-read-point (point)) - (process-send-string process command) - (process-send-string process "\r\n")) - -(defun smtp-send-data-1 (process data) - (goto-char (point-max)) - - (if smtp-debug-info - (insert data "\r\n")) - - (setq smtp-read-point (point)) - ;; Escape "." at start of a line - (if (eq (string-to-char data) ?.) - (process-send-string process ".")) - (process-send-string process data) - (process-send-string process "\r\n") - ) - -(defun smtp-send-data (process buffer) - (let - ((data-continue t) - (sending-data nil) - this-line - this-line-end) - - (save-excursion - (set-buffer buffer) - (goto-char (point-min))) - - (while data-continue - (save-excursion - (set-buffer buffer) - (beginning-of-line) - (setq this-line (point)) - (end-of-line) - (setq this-line-end (point)) - (setq sending-data nil) - (setq sending-data (buffer-substring this-line this-line-end)) - (if (/= (forward-line 1) 0) - (setq data-continue nil))) - - (smtp-send-data-1 process sending-data) - ) - ) - ) - -(defun smtp-deduce-address-list (smtp-text-buffer header-start header-end) - "Get address list suitable for smtp RCPT TO:
." - (require 'mail-utils) ;; pick up mail-strip-quoted-names - (let ((case-fold-search t) - (simple-address-list "") - this-line - this-line-end - addr-regexp - (smtp-address-buffer (generate-new-buffer " *smtp-mail*"))) - (unwind-protect - (save-excursion - ;; - (set-buffer smtp-address-buffer) - (erase-buffer) - (insert-buffer-substring smtp-text-buffer - header-start header-end) - (goto-char (point-min)) - ;; RESENT-* fields should stop processing of regular fields. - (save-excursion - (if (re-search-forward "^RESENT-TO:" header-end t) - (setq addr-regexp - "^\\(RESENT-TO:\\|RESENT-CC:\\|RESENT-BCC:\\)") - (setq addr-regexp "^\\(TO:\\|CC:\\|BCC:\\)"))) - - (while (re-search-forward addr-regexp header-end t) - (replace-match "") - (setq this-line (match-beginning 0)) - (forward-line 1) - ;; get any continuation lines - (while (and (looking-at "^[ \t]+") (< (point) header-end)) - (forward-line 1)) - (setq this-line-end (point-marker)) - (setq simple-address-list - (concat simple-address-list " " - (mail-strip-quoted-names - (buffer-substring this-line this-line-end)))) - ) - (erase-buffer) - (insert-string " ") - (insert-string simple-address-list) - (insert-string "\n") - ;; newline --> blank - (subst-char-in-region (point-min) (point-max) 10 ? t) - ;; comma --> blank - (subst-char-in-region (point-min) (point-max) ?, ? t) - ;; tab --> blank - (subst-char-in-region (point-min) (point-max) 9 ? t) - - (goto-char (point-min)) - ;; tidyness in case hook is not robust when it looks at this - (while (re-search-forward "[ \t]+" header-end t) (replace-match " ")) - - (goto-char (point-min)) - (let (recipient-address-list) - (while (re-search-forward " \\([^ ]+\\) " (point-max) t) - (backward-char 1) - (setq recipient-address-list - (cons (buffer-substring (match-beginning 1) (match-end 1)) - recipient-address-list)) - ) - recipient-address-list) - ) - (kill-buffer smtp-address-buffer)) - )) - -(defun smtp-do-bcc (header-end) - "Delete BCC: and their continuation lines from the header area. -There may be multiple BCC: lines, and each may have arbitrarily -many continuation lines." - (let ((case-fold-search t)) - (save-excursion - (goto-char (point-min)) - ;; iterate over all BCC: lines - (while (re-search-forward "^BCC:" header-end t) - (delete-region (match-beginning 0) (progn (forward-line 1) (point))) - ;; get rid of any continuation lines - (while (and (looking-at "^[ \t].*\n") (< (point) header-end)) - (replace-match "")) - ) - ) ;; save-excursion - ) ;; let - ) - -(provide 'smtp) - -;;; smtp.el ends here diff --git a/lisp/smtpmail.el b/lisp/smtpmail.el deleted file mode 100644 index 77a5947..0000000 --- a/lisp/smtpmail.el +++ /dev/null @@ -1,285 +0,0 @@ -;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail - -;; Copyright (C) 1995, 1996 Free Software Foundation, Inc. - -;; Author: Tomoji Kagatani -;; Maintainer: Brian D. Carlstrom -;; ESMTP support: Simon Leinen -;; Keywords: mail - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. - -;;; Commentary: - -;; Send Mail to smtp host from smtpmail temp buffer. - -;; Please add these lines in your .emacs(_emacs). -;; -;;(setq send-mail-function 'smtpmail-send-it) -;;(setq smtp-default-server "YOUR SMTP HOST") -;;(setq smtp-service "smtp") -;;(setq smtp-local-domain "YOUR DOMAIN NAME") -;;(setq smtp-debug-info t) -;;(autoload 'smtpmail-send-it "smtpmail") -;;(setq user-full-name "YOUR NAME HERE") - -;; To queue mail, set smtpmail-queue-mail to t and use -;; smtpmail-send-queued-mail to send. - - -;;; Code: - -(require 'smtp) -(require 'sendmail) -(require 'time-stamp) - -;;; - -(defcustom smtpmail-queue-mail nil - "*Specify if mail is queued (if t) or sent immediately (if nil). -If queued, it is stored in the directory `smtpmail-queue-dir' -and sent with `smtpmail-send-queued-mail'." - :type 'boolean - :group 'smtp) - -(defcustom smtpmail-queue-dir "~/Mail/queued-mail/" - "*Directory where `smtpmail.el' stores queued mail." - :type 'directory - :group 'smtp) - -(defvar smtpmail-queue-index-file "index" - "File name of queued mail index, -This is relative to `smtpmail-queue-dir'.") - -(defvar smtpmail-queue-index (concat smtpmail-queue-dir - smtpmail-queue-index-file)) - -(defvar smtpmail-recipient-address-list nil) - - -;;; -;;; -;;; - -(defun smtpmail-send-it () - (require 'mail-utils) - (let ((errbuf (if mail-interactive - (generate-new-buffer " smtpmail errors") - 0)) - (tembuf (generate-new-buffer " smtpmail temp")) - (case-fold-search nil) - resend-to-addresses - delimline - (mailbuf (current-buffer))) - (unwind-protect - (save-excursion - (set-buffer tembuf) - (erase-buffer) - (insert-buffer-substring mailbuf) - (goto-char (point-max)) - ;; require one newline at the end. - (or (= (preceding-char) ?\n) - (insert ?\n)) - ;; Change header-delimiter to be what sendmail expects. - (goto-char (point-min)) - (re-search-forward - (concat "^" (regexp-quote mail-header-separator) "\n")) - (replace-match "\n") - (backward-char 1) - (setq delimline (point-marker)) -;; (sendmail-synch-aliases) - (if mail-aliases - (expand-mail-aliases (point-min) delimline)) - (goto-char (point-min)) - ;; ignore any blank lines in the header - (while (and (re-search-forward "\n\n\n*" delimline t) - (< (point) delimline)) - (replace-match "\n")) - (let ((case-fold-search t)) - (goto-char (point-min)) - (goto-char (point-min)) - (while (re-search-forward "^Resent-to:" delimline t) - (setq resend-to-addresses - (save-restriction - (narrow-to-region (point) - (save-excursion - (end-of-line) - (point))) - (append (mail-parse-comma-list) - resend-to-addresses)))) -;;; Apparently this causes a duplicate Sender. -;;; ;; If the From is different than current user, insert Sender. -;;; (goto-char (point-min)) -;;; (and (re-search-forward "^From:" delimline t) -;;; (progn -;;; (require 'mail-utils) -;;; (not (string-equal -;;; (mail-strip-quoted-names -;;; (save-restriction -;;; (narrow-to-region (point-min) delimline) -;;; (mail-fetch-field "From"))) -;;; (user-login-name)))) -;;; (progn -;;; (forward-line 1) -;;; (insert "Sender: " (user-login-name) "\n"))) - ;; Don't send out a blank subject line - (goto-char (point-min)) - (if (re-search-forward "^Subject:[ \t]*\n" delimline t) - (replace-match "")) - ;; Put the "From:" field in unless for some odd reason - ;; they put one in themselves. - (goto-char (point-min)) - (if (not (re-search-forward "^From:" delimline t)) - (let* ((login user-mail-address) - (fullname (user-full-name))) - (cond ((eq mail-from-style 'angles) - (insert "From: " fullname) - (let ((fullname-start (+ (point-min) 6)) - (fullname-end (point-marker))) - (goto-char fullname-start) - ;; Look for a character that cannot appear unquoted - ;; according to RFC 822. - (if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]" - fullname-end 1) - (progn - ;; Quote fullname, escaping specials. - (goto-char fullname-start) - (insert "\"") - (while (re-search-forward "[\"\\]" - fullname-end 1) - (replace-match "\\\\\\&" t)) - (insert "\"")))) - (insert " <" login ">\n")) - ((eq mail-from-style 'parens) - (insert "From: " login " (") - (let ((fullname-start (point))) - (insert fullname) - (let ((fullname-end (point-marker))) - (goto-char fullname-start) - ;; RFC 822 says \ and nonmatching parentheses - ;; must be escaped in comments. - ;; Escape every instance of ()\ ... - (while (re-search-forward "[()\\]" fullname-end 1) - (replace-match "\\\\\\&" t)) - ;; ... then undo escaping of matching parentheses, - ;; including matching nested parentheses. - (goto-char fullname-start) - (while (re-search-forward - "\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)" - fullname-end 1) - (replace-match "\\1(\\3)" t) - (goto-char fullname-start)))) - (insert ")\n")) - ((null mail-from-style) - (insert "From: " login "\n"))))) - ;; Insert an extra newline if we need it to work around - ;; Sun's bug that swallows newlines. - (goto-char (1+ delimline)) - (if (eval mail-mailer-swallows-blank-line) - (newline)) - ;; Find and handle any FCC fields. - (goto-char (point-min)) - (if (re-search-forward "^FCC:" delimline t) - (mail-do-fcc delimline)) - (if mail-interactive - (save-excursion - (set-buffer errbuf) - (erase-buffer)))) - ;; - ;; - ;; - (setq smtpmail-recipient-address-list - (or resend-to-addresses - (smtp-deduce-address-list tembuf (point-min) delimline))) - - (smtp-do-bcc delimline) - ; Send or queue - (if (not smtpmail-queue-mail) - (if smtpmail-recipient-address-list - (if (not (smtp-via-smtp - smtpmail-recipient-address-list tembuf)) - (error "Sending failed; SMTP protocol error")) - (error "Sending failed; no recipients")) - (let* ((file-data (concat - smtpmail-queue-dir - (time-stamp-strftime - "%02y%02m%02d-%02H%02M%02S"))) - (file-elisp (concat file-data ".el")) - (buffer-data (create-file-buffer file-data)) - (buffer-elisp (create-file-buffer file-elisp)) - (buffer-scratch "*queue-mail*")) - (save-excursion - (set-buffer buffer-data) - (erase-buffer) - (insert-buffer tembuf) - (write-file file-data) - (set-buffer buffer-elisp) - (erase-buffer) - (insert (concat - "(setq smtpmail-recipient-address-list '" - (prin1-to-string smtpmail-recipient-address-list) - ")\n")) - (write-file file-elisp) - (set-buffer (generate-new-buffer buffer-scratch)) - (insert (concat file-data "\n")) - (append-to-file (point-min) - (point-max) - smtpmail-queue-index) - ) - (kill-buffer buffer-scratch) - (kill-buffer buffer-data) - (kill-buffer buffer-elisp)))) - (kill-buffer tembuf) - (if (bufferp errbuf) - (kill-buffer errbuf))))) - -(defun smtpmail-send-queued-mail () - "Send mail that was queued as a result of setting `smtpmail-queue-mail'." - (interactive) - ;;; Get index, get first mail, send it, get second mail, etc... - (let ((buffer-index (find-file-noselect smtpmail-queue-index)) - (file-msg "") - (tembuf nil)) - (save-excursion - (set-buffer buffer-index) - (beginning-of-buffer) - (while (not (eobp)) - (setq file-msg (buffer-substring (point) (save-excursion - (end-of-line) - (point)))) - (load file-msg) - (setq tembuf (find-file-noselect file-msg)) - (if smtpmail-recipient-address-list - (if (not (smtp-via-smtp smtpmail-recipient-address-list tembuf)) - (error "Sending failed; SMTP protocol error")) - (error "Sending failed; no recipients")) - (delete-file file-msg) - (delete-file (concat file-msg ".el")) - (kill-buffer tembuf) - (kill-line 1)) - (set-buffer buffer-index) - (save-buffer smtpmail-queue-index) - (kill-buffer buffer-index) - ))) - - -;;; - -(provide 'smtpmail) - -;;; smtpmail.el ends here diff --git a/texi/TRANSLATION.ja b/texi/TRANSLATION.ja deleted file mode 100644 index 1538b5f..0000000 --- a/texi/TRANSLATION.ja +++ /dev/null @@ -1,27 +0,0 @@ -This file documents about translation policy. -There is an ongoing project to make gnus-ja.texi. -Any volunteers are welcomed. - -日本語訳に関する流儀を説明するファイルです。 -gnus-ja.texi を作成するプロジェクトが進行中です。 -プロジェクト参加者を募集しています。 -参加希望者は Semi-gnus マニュアルプロジェクトのページ -http://www.komaba.ecc.u-tokyo.ac.jp/%7Eg740685/Semi-gnus/index.html -を読んでください。 - -以下の2つは訳者の一人かつプロジェクトの主宰者 (であるらしい) -Yoshiki Hayashi の翻訳に関する規則 -です。この規則はより良いと思われるものが見つかった場合には変更される可 -能性があります。また、より良い案や、他の規則を付け加えたい場合は、 -semi-gnus-ja メーリングリストにその案を書くか、jaist の Open CVS に書 -き込み権限を持っている方は直接書き込みをしてください。(CVS の場合でも、 -semi-gnus-ja で変更の告知をする事が望ましいです。) semi-gnus-ja メーリ -ングリストの加入の仕方に付いても、上記の URI を参照してください。 - -1. なるべくカタカナは使わないようにする。 - (日本語にできるところはなるべく日本語にする。 - 場合によっては新しい語を定義する事もある。) - -2. 英語を付加した方が分かりやすいと思われる語句は、 - 日本語の直後に括弧の中に入れる。 - diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi deleted file mode 100644 index c0dee20..0000000 --- a/texi/gnus-ja.texi +++ /dev/null @@ -1,13309 +0,0 @@ -\input texinfo @c -*-texinfo-*- - -@setfilename gnus-ja -@settitle Semi-gnus 6.7.7 Manual -@synindex fn cp -@synindex vr cp -@synindex pg cp -@c @direntry -@c * Gnus-ja: (gnus-ja). The news reader gnus (日本語版). -@c @end direntry -@iftex -@finalout -@end iftex -@setchapternewpage odd - -@iftex -@iflatex -\documentclass[twoside,a4paper,openright,11pt]{book} -\usepackage[latin1]{inputenc} -\usepackage{pagestyle} -\usepackage{epsfig} -\usepackage{bembo} -\usepackage{pixidx} - -\makeindex -\begin{document} - -\newcommand{\gnuschaptername}{} -\newcommand{\gnussectionname}{} - -\newcommand{\gnusbackslash}{/} - -\newcommand{\gnusxref}[1]{See ``#1'' on page \pageref{#1}} -\newcommand{\gnuspxref}[1]{see ``#1'' on page \pageref{#1}} - -\newcommand{\gnuskindex}[1]{\index{#1}} -\newcommand{\gnusindex}[1]{\index{#1}} - -\newcommand{\gnustt}[1]{{\fontfamily{pfu}\fontsize{10pt}{10}\selectfont #1}} -\newcommand{\gnuscode}[1]{\gnustt{#1}} -\newcommand{\gnussamp}[1]{``{\fontencoding{OT1}\fontfamily{pfu}\fontsize{10pt}{10}\selectfont #1}''} -\newcommand{\gnuslisp}[1]{\gnustt{#1}} -\newcommand{\gnuskbd}[1]{`\gnustt{#1}'} -\newcommand{\gnusfile}[1]{`\gnustt{#1}'} -\newcommand{\gnusdfn}[1]{\textit{#1}} -\newcommand{\gnusi}[1]{\textit{#1}} -\newcommand{\gnusstrong}[1]{\textbf{#1}} -\newcommand{\gnusemph}[1]{\textit{#1}} -\newcommand{\gnusvar}[1]{{\fontsize{10pt}{10}\selectfont\textsl{\textsf{#1}}}} -\newcommand{\gnussc}[1]{\textsc{#1}} -\newcommand{\gnustitle}[1]{{\huge\textbf{#1}}} -\newcommand{\gnusauthor}[1]{{\large\textbf{#1}}} - -\newcommand{\gnusbullet}{{${\bullet}$}} -\newcommand{\gnusdollar}{\$} -\newcommand{\gnusampersand}{\&} -\newcommand{\gnuspercent}{\%} -\newcommand{\gnushash}{\#} -\newcommand{\gnushat}{\symbol{"5E}} -\newcommand{\gnusunderline}{\symbol{"5F}} -\newcommand{\gnusnot}{$\neg$} -\newcommand{\gnustilde}{\symbol{"7E}} -\newcommand{\gnusless}{{$<$}} -\newcommand{\gnusgreater}{{$>$}} - -\newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}} -\newcommand{\gnusinteresting}{ -\marginpar[\mbox{}\hfill\gnushead]{\gnushead} -} - -\newcommand{\gnuscleardoublepage}{\ifodd\count0\mbox{}\clearpage\thispagestyle{empty}\mbox{}\clearpage\else\clearpage\fi} - -\newcommand{\gnuspagechapter}[1]{ -{\mbox{}} -} - -\newdimen{\gnusdimen} -\gnusdimen 0pt - -\newcommand{\gnuschapter}[2]{ -\gnuscleardoublepage -\ifdim \gnusdimen = 0pt\setcounter{page}{1}\pagestyle{gnus}\pagenumbering{arabic} \gnusdimen 1pt\fi -\chapter{#2} -\renewcommand{\gnussectionname}{} -\renewcommand{\gnuschaptername}{#2} -\thispagestyle{empty} -\hspace*{-2cm} -\begin{picture}(500,500)(0,0) -\put(480,350){\makebox(0,0)[tr]{#1}} -\put(40,300){\makebox(500,50)[bl]{{\Huge\bf{#2}}}} -\end{picture} -\clearpage -} - -\newcommand{\gnusfigure}[3]{ -\begin{figure} -\mbox{}\ifodd\count0\hspace*{-0.8cm}\else\hspace*{-3cm}\fi\begin{picture}(440,#2) -#3 -\end{picture} -\caption{#1} -\end{figure} -} - -\newcommand{\gnusicon}[1]{ -\marginpar[\mbox{}\hfill\raisebox{-1.5cm}{\epsfig{figure=tmp/#1-up.ps,height=1.5cm}}]{\raisebox{-1cm}{\epsfig{figure=tmp/#1-up.ps,height=1cm}}} -} - -\newcommand{\gnuspicon}[1]{ -\margindex{\epsfig{figure=#1,width=2cm}} -} - -\newcommand{\gnusxface}[2]{ -\margindex{\epsfig{figure=#1,width=1cm}\epsfig{figure=#2,width=1cm}} -} - -\newcommand{\gnussmiley}[2]{ -\margindex{\makebox[2cm]{\hfill\epsfig{figure=#1,width=0.5cm}\hfill\epsfig{figure=#2,width=0.5cm}\hfill}} -} - -\newcommand{\gnusitemx}[1]{\mbox{}\vspace*{-\itemsep}\vspace*{-\parsep}\item#1} - -\newcommand{\gnussection}[1]{ -\renewcommand{\gnussectionname}{#1} -\section{#1} -} - -\newenvironment{codelist}% -{\begin{list}{}{ -} -}{\end{list}} - -\newenvironment{kbdlist}% -{\begin{list}{}{ -\labelwidth=0cm -} -}{\end{list}} - -\newenvironment{dfnlist}% -{\begin{list}{}{ -} -}{\end{list}} - -\newenvironment{stronglist}% -{\begin{list}{}{ -} -}{\end{list}} - -\newenvironment{samplist}% -{\begin{list}{}{ -} -}{\end{list}} - -\newenvironment{varlist}% -{\begin{list}{}{ -} -}{\end{list}} - -\newenvironment{emphlist}% -{\begin{list}{}{ -} -}{\end{list}} - -\newlength\gnusheadtextwidth -\setlength{\gnusheadtextwidth}{\headtextwidth} -\addtolength{\gnusheadtextwidth}{1cm} - -\newpagestyle{gnuspreamble}% -{ -{ -\ifodd\count0 -{ -\hspace*{-0.23cm}\underline{\makebox[\gnusheadtextwidth]{\mbox{}}\textbf{\hfill\roman{page}}} -} -\else -{ -\hspace*{-3.25cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\roman{page}\hfill\mbox{}}} -} -} -\fi -} -} -{ -\ifodd\count0 -\mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} -\else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} -\hfill \mbox{} -\fi -} - -\newpagestyle{gnusindex}% -{ -{ -\ifodd\count0 -{ -\hspace*{-0.23cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\gnuschaptername\hfill\arabic{page}}}} -} -\else -{ -\hspace*{-3.25cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{page}\hfill\gnuschaptername}}} -} -\fi -} -} -{ -\ifodd\count0 -\mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} -\else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} -\hfill \mbox{} -\fi -} - -\newpagestyle{gnus}% -{ -{ -\ifodd\count0 -{ -\makebox[12cm]{\hspace*{3.1cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{chapter}.\arabic{section}} \textbf{\gnussectionname\hfill\arabic{page}}}}} -} -\else -{ -\makebox[12cm]{\hspace*{-2.95cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{page}\hfill\gnuschaptername}}}} -} -\fi -} -} -{ -\ifodd\count0 -\mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} -\else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} -\hfill \mbox{} -\fi -} - -\pagenumbering{roman} -\pagestyle{gnuspreamble} - -@end iflatex -@end iftex - -@iftex -@iflatex -\begin{titlepage} -{ - -%\addtolength{\oddsidemargin}{-5cm} -%\addtolength{\evensidemargin}{-5cm} -\parindent=0cm -\addtolength{\textheight}{2cm} - -\gnustitle{\gnustitlename}\\ -\rule{15cm}{1mm}\\ -\vfill -\hspace*{0cm}\epsfig{figure=ps/gnus-big-logo.eps,height=15cm} -\vfill -\rule{15cm}{1mm}\\ -\gnusauthor{by Lars Magne Ingebrigtsen} -\newpage -} - -\mbox{} -\vfill - -\thispagestyle{empty} - -Copyright \copyright{} 1995,96,97 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -著作権表示とこの許可文がすべての複製に存在する限り、この説明書のまったく -同一の複製を作り、配布することを許可する。 - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -同一複製の条件の下で、それによって得られた結果をこの許可文の表示と同一の -条件のもとで配布する限り、この説明書の修正版の複製をし、配布することを許 -可する。 - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. - -上記の修正版に関する条件の下で、この説明書の翻訳の複製を作り、配布するこ -とを許可する。 - -\newpage -\end{titlepage} -@end iflatex -@end iftex - -@ifinfo - -This file documents gnus, the GNU Emacs newsreader. - -このファイルは GNU Emacs のニュースリーダである gnus に関する説明書です。 - -Copyright (C) 1995,96 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -著作権表示とこの許可文がすべての複製に存在する限り、この説明書のまったく -同一の複製を作り、配布することを許可する。 - -@ignore -Permission is granted to process this file through Tex and print the -results, provided the printed document carries copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). - -この段落が取り除かれているのを除き、これと同じ複製に関する許可文が表示され -ている限り、このファイルを Tex にかけて、その結果を印刷することを許可する。 - -@end ignore -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided also that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -同一複製の条件の下で、それによって得られた結果もこの許可文の表示と同一の -条件のもとで配布する限り、この説明書の修正版の複製をし、配布することを許 -可する。 - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. - -上記の修正版に関する条件の下で、この説明書の翻訳の複製を作り、配布するこ -とを許可する。 - -@end ifinfo - -@tex - -@titlepage -@title Semi-gnus 6.7.7 Manual - -@author by Lars Magne Ingebrigtsen -@author by members of Semi-gnus mailing-list -@page - -@vskip 0pt plus 1filll -Copyright @copyright{} 1995,96,97 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -著作権表示とこの許可文がすべての複製に存在する限り、この説明書のまったく -同一の複製を作り、配布することを許可する。 - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -同一複製の条件の下で、それによって得られた結果をこの許可文の表示と同一の -条件のもとで配布する限り、この説明書の修正版の複製をし、配布することを許 -可する。 - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. - -上記の修正版に関する条件の下で、この説明書の翻訳の複製を作り、配布するこ -とを許可する。 - -@end titlepage -@page - -@end tex - - -@node Top -@top The gnus Newsreader - -@ifinfo - -Gnus を使うことによって Emacs でニュース (news) を(それにメール (mail) -も)読むことができます。ニュースは @sc{nntp}、ローカルスプール、mbox ファ -イルなどのあらゆる極悪な手段を駆使して手に入れることができます。運試しを -してみようと思うならば、全てを同時に用いることもできます。 - -Semi-gnus は SEMI API に基づく MIME 機能を提供します。そういう訳で、 -Semi-gnus は、大きな絵が入っていたりさまざまな形式を用いたりしているちょっ -と変わった記事を読む権利を擁護します。Semi-gnus は MULE API に基づく国際 -化・地域化、および、多字化機能を提供します。よって、Semi-gnus はさまざま -な言語圏を差別しません。ああ、クリンゴンの方は Unicode Next Generationを -お待ちください。 - -この説明書は Semi-gnus 6.7.7 に対応します。 - -@end ifinfo - -@iftex - -@iflatex -\tableofcontents -\gnuscleardoublepage -@end iflatex - -Gnus は GNU Emacs の先進的で、説明のある、カスタマイズ可能で、拡張可能な、 -リアルタイムでないニュースリーダです。 - -おおっと。不思議なことに以前にも似たようなことを聞いたことがあるような気 -がします。真似をしたと非難されないうちに説明を始めましょう: - -Gnus はメッセージを読むことに関する実験場です。Gnus はすべてをニュースグ -ループのように表示します。Gnus でメールを読み、ディレクトリーをブラウズ -し、@code{ftp} をすることができます。ああ、それに、ニュースを読むことさ -えできます! - -Emacs が文章を編集する人に力を与えるように、gnus はニュースを読む人に力 -を与えようとしています。Gnus は利用者が実行可能なことに制限を設けません。 -利用者が自分で望む動作をするように gnus を拡張することを奨励しています。 -プログラムが人を操作するべきではありません。人がプログラムを使う(もしく -は濫用する)ことによって、やりたいことをできるようになっているべきです。 - -@end iftex - - -@menu -* Starting Up:: ニュースを見つけるのには苦労が伴うかも知れない -* The Group Buffer:: グループを選択し、講読し、削除する -* The Summary Buffer:: 記事を読み、保存し、投稿する -* The Article Buffer:: 記事を表示し、扱う -* Composing Messages:: メールとニュースを送るための情報 -* Select Methods:: Gnus は全てのメッセージをいろいろな選択方法で読む -* Scoring:: 記事に値をつける -* Various:: 一般的な設定 -* The End:: さらば、そしてさようなら -* Appendices:: 用語、Emacs 入門、FAQ、歴史、内部構造 -* Index:: 変数、関数、概念の索引 -* Key Index:: キー索引 -@end menu - -@node Starting Up -@chapter gnus の起動 -@cindex starting up - -@kindex M-x gnus -@findex gnus -システム管理者が適切な設定をしていたならば、gnus を起動してニュースを読 -むのは非常に簡単です。そう、Emacs で @kbd{M-x gnus} と打つだけです。 - -@findex gnus-other-frame -@kindex M-x gnus-other-frame -別のフレーム (frame) で gnus を起動したいときは、命令 @kbd{M-x -gnus-other-frame} を使うことができます。 - -開始時に何かがうまくいかないときは @file{~/.gnus} ファイルの中で変数をい -くつかいじくりまわさなければならないでしょう。このファイルは -@file{~/.emacs} と似ていますが、こちらは gnus が起動するときに読み込まれ -ます。 - -この説明書でよくわからない用語がでてきたときは、用語の項 -(@pxref{Terminology}) を参照してください。 - -@menu -* Finding the News:: ニュースを取得する方法を選ぶ -* The First Time:: 最初に起動したときに gnus は何をするか -* The Server is Down:: どうすればそのようなときにメールを手に入れることができるか -* Slave Gnusae:: 同時に一つ以上の gnus を作動させることができる -* Fetching a Group:: グループを読むためだけに gnus を起動する -* New Groups:: Gnus が新しいグループに対して何をするか -* Startup Files:: やっかいなスタートアップファイル--@file{.newsrc} -* Auto Save:: クラッシュからの回復 -* The Active File:: 遅い回線からのファイルの取得には時間がかかる -* Changing Servers:: あるサーバから別のサーバへ移りたいかもしれない -* Startup Variables:: 変更したいと思うかもしれない変数 -@end menu - - -@node Finding the News -@section ニュースを見つける -@cindex finding news - -@vindex gnus-select-method -@c @head -変数 @code{gnus-select-method} は gnus がどこでニュースを探すべきかを示 -しています。この変数ははじめの要素が@dfn{どのようにして}、2番目の要素が -@dfn{どこで}を表すリストである必要があります。この方法はあなたの基本方法 -(native method) になります。この方法で取ってこないグループは全て外の -(foreign) グループです。 - -たとえば、@sc{nntp} サーバー @samp{news.somewhere.edu} から毎日一定の量 -のニュース(薬のように)を摂取したいのであれば、 - -@lisp -(setq gnus-select-method '(nntp "news.somewhere.edu")) -@end lisp - -のようにすることができます。 - -ローカル・スプールのディレクトリを読み込みたい場合は、 - -@lisp -(setq gnus-select-method '(nnspool "")) -@end lisp - -のようにできます。 - -ローカルのスプールを使えるのであれば、かなりの確率でその方がずっと速いで -しょうし、それを使うべきでしょう。 - -@vindex gnus-nntpserver-file -@cindex NNTPSERVER -@cindex @sc{nntp} server -もしこの変数が設定されていなければ、gnus は @code{NNTPSERVER} 環境変数を -読みにいきます。もしその変数が設定されていなければ、gnus は -@code{gnus-nntpserver-file}(設定されていない場合は -@file{/etc/nntpserver})がこの件に関して何かを言っていないかを調べます。 -もしそれも失敗したなら、gnusは Emacs が動作しているサーバーを @sc{nntp} -サーバーとして使おうとします。随分な当て推量ですけどね。 - -@vindex gnus-nntp-server -@code{gnus-nntp-server} が設定されていると、この変数は -@code{gnus-select-method} を上書きします。ですから、 -@code{gnus-nntp-server} は @code{nil} に設定するべきで、標準設定でもその -ようになっています。 - -@vindex gnus-secondary-servers -Gnus に @sc{nntp} サーバーの名前の入力を対話的に指定することもできます。 -@code{gnus} に数値でない接頭引数を渡すと(例:@kbd{C-u M-x gnus})、gnus -は @code{gnus-secondary-servers} リスト(もし存在するならば)からサーバー -を選ぶことができるようにします。ただ単に接続したいと思ったサーバーの名前 -を打つこともできます。 - -@findex gnus-group-browse-foreign-server -@kindex B (Group) -しかし、普段日常的には一つの @sc{nntp} サーバを使い、違ったサーバーには興 -味のあるグループが少ししかない場合、グループバッファで @kbd{B} 命令を使う -ことの方が良いでしょう。それは、選択可能なグループを表示し、その中からどれ -でも好きなものを購読することができます。これは、@file{.newsrc} の保持をずっ -とやりやすくします。@xref{Foreign Groups}. - -@vindex gnus-secondary-select-methods -@c @head -外のグループに対する少し違ったやり方は、変数 -@code{gnus-secondary-select-methods} を設定することです。この変数に表さ -れている選択方法は、多くの点で @code{gnus-select-method} サーバーとの選 -択方法と同じように扱われます。起動中にアクティブファイルを探しにいきますし -(もし要求されていれば)、これらのサーバー上にできた新しいニュースグルー -プは元々のグループと同じように購読(もしくは不購読)されます。 - -たとえば、メールを読むために @code{nnmbox} バックエンド (backend) を使い -たいときは、普通、この変数を、 - -@lisp -(setq gnus-secondary-select-methods '((nnmbox ""))) -@end lisp - -と設定します。 - -@node The First Time -@section 一番初め -@cindex first time usage - -起動用ファイルが存在しないときは、gnus はディフォルトでどのグループが購 -読されているべきかを決定しようとします。 - -@vindex gnus-default-subscribed-newsgroups -変数 @code{gnus-default-sebscribed-newsgroups} が設定されていると、gnus -はそのリストの中のグループを購読し、残りを削除します。システム管理者はこ -の変数を何か役に立つものに設定しておくべきです。 - -そうでないときは、gnus は少しの任意のグループを購読します(例: -@samp{*.newusers})。(@dfn{任意}はここでは、@dfn{Lars さんが読むべきで -あると考えるもの}というように定義されています) - -また、たいていの共通の問題の解決の手助けになるよう、gnus に関する文書の -グループも購読することになるでしょう。 - -@code{gnus-default-subscribed-newsgroups} が @code{t} のときは、gnus は新 -しいグループを扱うのに普通の関数を使い、特別なことは何もしません。 - - -@node The Server is Down -@section サーバーが落ちている -@cindex server errors - -標準 (default) のサーバーが落ちているときは、当然 gnus の起動にいくつか -の問題が発生します。しかし、ニュースグループの他にいくつかメールのグルー -プがあれば、それにもかかわらず gnus を起動したいと思うかもしれません。 - -Gnus は、信頼できるプログラムの一つとして、サーバーと接続できないときは -基本選択方法なしで続けるかどうかを尋ねます。これは実際にはサーバーが存在 -しないとき(例えば、アドレスを間違えた場合)やサーバーが何らかの理由で一 -時的に調子がおかしくなっているときに起こります。もしそのまま続行すること -にして、外のグループが一つも無い場合、実はグループバッファではほとんど何 -もできないということに気がつくでしょう。でも、ねぇ、それはあなたの問題で -す。ハハハッ。 - -@findex gnus-no-server -@kindex M-x gnus-no-server -@c @head -サーバーが完全に落ちているのを知っているか、サーバーでわずらうことなくメー -ルだけを読みたいときは、gnus を起動するのに、@code{gnus-no-server} 命令を -使うことができます。急いでいるときにもぴったりでしょう。この命令は本来のサー -バーには接続しません――その代わりに、レベル1と2にあるすべてのグループを -活動状態にします(基本グループでないグループはその2つのレベルにしておくの -が望ましいでしょう)。 - - -@node Slave Gnusae -@section gnus をスレーブにする -@cindex slave - -あなたは2つ以上の Emacs と、2つ以上の gnus を同時に動かしたいと思うか -もしれません。違った @file{.newsrc} ファイルを使っているなら(例えば、2 -つの違ったサーバーから読み込むために、2つの違った gnus を動作させている -場合)、まったく問題はありません。それを行えば良いだけです。 - -問題は、同じ @code{.newsrc} ファイルを使う2つの gnus を動かそうとしたと -きに起こります。 - -この問題に対処するために、gnus タワーのシンクタンクにいる我々は新しい概 -念にたどりつきました。@dfn{マスター} と @dfn{スレーブ} です。(我々はこ -の概念に特許を申請しました。そして、その言葉の著作権を得ました。お互いに -関連してこれらの言葉を使いたいなら、1回使う毎に、私に $1 を送らなければ -なりません。もちろん、@dfn{コンピューターアプリケーションのマスター/ス -レーブ関係}の使用料はもっと高くなります。) - -とにかく、@kbd{M-x gnus}(もしくは、普段やっている方法)で gnus を普通に -起動します。その後のスレーブ gnus はそれぞれ @kbd{M-x gnus-slave} で起動 -します。スレーブは普通の @file{.newsrc} は保存しませんが、代わりに -@dfn{スレーブファイル} にスレーブの起動中にどのようなグループが読まれた -かという情報だけを保存します。マスター gnus が起動するとき、それはそれら -のスレーブファイルを読み込み(そして消し)、それらからすべての情報を取り -込みます。(スレーブファイルは、最終的な変更が優先されるようにそれらが作 -られた一連の動作の中で読まれます。) - -もちろん、スレーブファイルからの情報は普通の(例えば、マスターの)ファイ -ルよりも優先されます。 - - -@node Fetching a Group -@section グループを取得する -@cindex fetching a group - -@findex gnus-fetch-group -時々、“このグループを読みたいのであって、gnus が起動しているかどうかを -気にしたくない。”ということができれば便利なことがあります。これは、利用 -者よりもプログラムのコードを書く人に便利な機能ですが、どちらにしろ、コマ -ンド @code{gnus-fetch-group} はこの機能を提供します。そのコマンドは、グ -ループの名前を引数としてとります。 - - -@node New Groups -@section 新しいグループ -@cindex new groups -@cindex subscription - -@vindex gnus-check-new-newsgroups -新しいニュースグループを全く見ないで満足であるならば、 -@code{gnus-check-new-newsgroups} を @code{nil} に設定することができます。 -これを設定した場合、起動にかかる時間が短くなります。この変数が nil に設 -定されていても、グループバッファで @kbd{U} を押せばいつでも新しいグルー -プを購読することができます (@pxref{Group Maintenance})。設定されていない -場合 (default) ではこの変数は @code{ask-server} です。この変数が -@code{always} に設定されていると、命令 @kbd{g} を実行したときでも gnus -はバックエンドに新しいグループを探すことを求めます (@pxref{Scanning New -Messages})。 - -@menu -* Checking New Groups:: どのグループが新しいかを決定する。 -* Subscription Methods:: 新しいグループに対して gnus は何をすべきか -* Filtering New Groups:: Gnus に特定の新しいグループを無視させる -@end menu - - -@node Checking New Groups -@subsection 新しいグループを調べる - -Gnus は、普通はグループが新しいかどうかを、購読しているグループと削除され -ているグループのリストと現状ファイル (active file) を比較することにより決 -定しています。この方法は特に速いというわけではありません。 -@code{gnus-check-new-newsgroups} が @code{ask-server} であると、gnus はサー -バーに、最後に接続してから新しいグループができているかどうかを尋ねます。こ -の方法は速いし、安上がりです。これにより、削除されたグループのリストを保持 -しておくことからから完全に開放されます。ですから、 -@code{gnus-save-killed-list} を @code{nil} にすることができるでしょう。そ -うすれば、起動、終了の両方、そして全体にわたって時間を節約できます。ディス -ク消費量も少なくなります。それなら、どうしてこれが標準 (default) ではない -のでしょう?残念ながら、すべてのサーバーがこの命令を理解するわけではないの -です。 - -私は今あなたが何を考えているかを当てられます。どうすればサーバーが -@code{ask-server} を理解するかがわかるのでしょう?え、違うのですか?あぁ、 -良かった。というのは、確実な答は存在しないのです。私に言えることは、この変 -数を @code{ask-server} に設定して、数日間新しいグループが現れるかどうかを -調べてください、ということだけです。もしいくつかのグループが現れたなら、そ -れで動作しています。一つも現れなければ、それは動作しません。私は、gnus に -サーバーが @code{ask-server} を理解するかどうかを推量させる関数を書くこと -もできますが、それは単に推量しているにすぎません。ですから、その関数を書く -ことはないでしょう。他の方法としては、サーバーに @code{telnet} をして、 -@code{HELP} と打ち、サーバーが理解するコマンドの中に @samp{NEWGROUPS} があ -るかどうかを調べることもできます。もしあれば、おそらく動作するでしょう(し -かし、適切に機能を提供することなく @samp{NEGROUPS} をリストに含めるサーバー -もあります)。 - -この変数は、選択方法のリストであることもできます。そのときは、gnus は命 -令 @code{ask-server} をそれぞれの選択方法に対して実行し、普通の方法で購 -読(もしくは、不購読)します。これの副作用は、起動にかなり時間がかかるの -で、待っている間に瞑想できることです。永久の幸福を達成するために、マント -ラ ``dingnusdingnusdingnus'' を使ってください。 - - -@node Subscription Methods -@subsection 購読方法 - -@vindex gnus-subscribe-newsgroup-method -新しいグループに遭遇したときに gnus が何をするかは、変数 -@code{gnus-subscribe-nesgroup-method} によって決定されます。 - -この変数は関数を含んでいる必要があります。この関数は新しいグループの名前 -を唯一の引数として呼ばれます。 - -いくつかの手軽なプレハブ関数は、以下のようになっています。 - -@table @code - -@item gnus-subscribe-zombies -@vindex gnus-subscribe-zombies -すべての新しいグループをゾンビ (zombie) にします。これが標準 (default) に -なっています。後でゾンビを (@kbd{A z} によって) 概観したり、(@kbd{S z} に -よって)適切に全てを削除したり、(@kbd{u} によって)購読したりできます。 - -@item gnus-subscribe-randomly -@vindex gnus-subscribe-randomly -任意の順番ですべての新しいグループを購読します。実際には、すべての新しい -グループはグループバッファの『一番上』に加えられます。 - -@item gnus-subscribe-alphabetically -@vindex gnus-subscribe-alphabetically -すべての新しいグループをアルファベット順に購読します。 - -@item gnus-subscribe-hierarchically -@vindex gnus-subscribe-hierarchically -すべての新しいグループを階層的に購読します。この関数と -@code{gnus-subscribe-alphabetically} の違いは少ししかありません。 -@code{gnus-subscribe-alphabetically} は新しいグループを厳密にアルファベッ -ト順にならべますが、この関数はグループをその階層の中に入れます。ですから、 -@samp{rec} の階層を @samp{comp} の階層の前に持ってきたい場合、この関数は -その配置をぐちゃぐちゃにはしません。もしくは、そのようなものです。 - -@item gnus-subscribe-interactively -@vindex gnus-subscribe-interactively -新しいグループを対話的に購読します。これは gnus が @strong{全て} のグルー -プに対して尋ねることを意味しています。購読するグループは階層的に購読され -ます。 - -@item gnus-subscribe-killed -@vindex gnus-subscribe-killed -すべての新しいグループを削除します。 - -@end table - -@vindex gnus-subscribe-hierarchical-interactive -上の変数と良く関係した変数は、 -@code{gnus-subscribe-hierarchical-interactive} です。この変数が -@code{nil} でないと、gnus は階層的な方法で新しいグループを購読するかどうか -を尋ねます。gnus はそれぞれの階層で、それを下に降りるかどうかを尋ねます。 - -良くある間違いは、数段落前の変数 (@code{gnus-subscribe-newsgroup-method} -) を @code{gnus-subscribe-herarchical-interactive} に設定することです。 -これは誤りです。これは動作しません。これはおめでたい人のすることです。で -すから、絶対にしないでください。 - - -@node Filtering New Groups -@subsection 新しいグループを選別する - -どの新しいグループが購読(もしくは、無視)されるべきかを管理する快適で手 -軽な方法は、ファイル @file{.newsrc} の先頭に @dfn{options} 行を挿入する -ことです。次は、例です。 - -@example -options -n !alt.all !rec.all sci.all -@end example - -@vindex gnus-subscribe-options-newsgroup-method -この行は、明らかにまじめで理知的で科学的な人間(もしくは単なる古く退屈な -人間)が書いたものです。なぜなら、これは @samp{alt} と @samp{rec} で始ま -る名前を持つグループは全て無視され、@samp{sci} で始まる名前を持つグルー -プは全て購読する、ということを表しているからです。Gnus はこれらのグルー -プを購読するのに、普通の購読方法を用いません。代わりに、 -@code{gnus-subscribe-options-newsgroup-method} が用いられます。この変数 -は標準 (default) では @code{gnus-subscribe-alphabetically} です。 - -@vindex gnus-options-not-subscribe -@vindex gnus-options-subscribe -ファイル @file{.newrc} をいじりたくない場合は、 -@code{gnus-options-subscribe} と @code{gnus-options-not-subscribe} の2 -つの変数だけを設定することもできます。この2つの変数はファイル -@file{.newrc} の @samp{optinos -n} 行と全く同じことをします。どちらの変 -数も正規表現で、新しいグループは前者に合致すれば無条件に購読され、後者に -合致すると無視されます。 - -@vindex gnus-auto-subscribed-groups -さらにここでおせっかいをする変数は、@code{gnus-auto-subscribed-groups} -です。それは @code{gnus-options-subscribe} と全く同じように動作しますの -で、本当は余分なものです。しかし、私はこの二つがあった方が良いと思いまし -た。もう一方の変数はユーザがいじくるのに使われるのに対して、この変数はい -くつかの基本的な規則を設定するためのものです。ディフォルトではこの変数は -メールバックエンド (@code{nnml} 、@code{nnbabyl} 、@code{nnfolder} 、 -@code{nnmbox} と@code{nnmh}) からできる全ての新しいグループを購読するよ -うになっています。それが嫌であれば、この変数を @code{nil} に設定してくだ -さい。 - -この正規表現に合致する新しいグループは -@code{gnus-subscribe-options-newsgroup-method} を使って購読されます。 - - -@node Changing Servers -@section サーバーを換える -@cindex changing servers - -ときどき、ある @sc{nntp} サーバーから別のサーバーへ移動しなければならな -いことがあります。このようなことはめったにおきませんが、おそらくあなたが -仕事を変えたり、使っているサーバーがとても不安定で、別のものに乗り換えた -いというときに必要になるでしょう。 - -サーバーを変更するのはとても簡単ですよね? -@code{gnus-select-method} を新しいサーバーを指し示すように変更すればいい -だけですね? - -@emph{違います!} - -記事の番号は違った @sc{nntp} サーバーでも (どうにかして) 同じにしてある、 -ということはありません。そして、 guns がどの記事を読んだかを記録する唯一 -の方法は、記事番号を記録することです。ですから、 -@code{gnus-select-method} を変更したときは、ファイル @file{.newsrc} は意 -味がなくなります。 - -Gnusはファイル @file{.newsrc} をあるサーバー用から別のサーバー用に変換す -る関数を2、3用意しています。それらには一つ共通点があります---実行にながーー -い時間がかかることです。おそらく、どうしても必要になったとき以外にこの関 -数を使おうとは思わないでしょう。 - -@kindex M-x gnus-change-server -@findex gnus-change-server -もし両方のサーバーに接続できるなら、gnusはあなたが読んだ記事全てに対して -ヘッダー (headers) を要求して、@code{Message-ID} を比較し、読んだ記事と -記事の印を新しく記録します。コマンド @kbd{M-x gnus-change-server} はこれ -をすべての基本グループに対して行います。そのコマンドは移動先の方法の入力 -を促します。 - -@kindex M-x gnus-group-move-group-to-server -@findex gnus-group-move-group-to-server -個々のグループを命令 @kbd{M-x gnus-group-move-group-to-server} で移 -動することもできます。これはあるサーバーから別のサーバーへ一つの (外の) -グループを移動したいときに役に立ちます。 - -@kindex M-x gnus-group-clear-data-on-native-groups -@findex gnus-group-clear-data-on-native-groups -古いサーバーと新しいサーバーの両方に接続することができないとき、印と読ん -だ範囲はすべて意味が無くなります。そのようなときは、コマンド @kbd{M-x -gnus-group-clear-data-on-native-groups} を使って、基本グループに関するデー -タをすべて消去することができます。このコマンドは注意して使ってください。 - - -@node Startup Files -@section 起動ファイル -@cindex startup files -@cindex .newsrc -@cindex .newsrc.el -@cindex .newsrc.eld - -今や、あなたはファイル @file{.newrc} についてすべて知っています。すべて -の購読情報は伝統的にこのファイルに蓄積されます。 - -@sc{GNUS} では物事が少々複雑になっています。ファイル @file{.newsrc} を最 -新のものにするだけではなく、ファイル @file{.newsrc} には合わない情報を保 -存しておくために @file{.newsrc.el} と呼ばれるファイルを使います。 (実際 -は、ファイル @file{.newsrc} の全ての情報を複製して保持しています。) -@sc{gnus}はこれらの中で一番最後に保存されたものを使います。これをするこ -とにより、@sc{GNUS} と他のニュースリーダーを切り替えて使うことができます。 - -これはちょっとばかな方法なので、Gnus はもっと良い方法を編み出しました。 -@file{.newsrc} と @file{.newsrc.el} ファイルに加えて、 Gnus は -@file{.newsrc.eld} と呼ばれるファイルも持っています。Gnus はこれらの中で -一番新しいファイルを読みますが、ファイル @file{.newsrc.el} に書き込むこ -とはありません。ファイル @file{.newsrc.eld} は絶対に消すべきではありませ -ん。---それはファイル @file{.newsrc} にはないたくさんの情報を保持してい -ます。 - -ちなみに、gnus は何も変えてません。Lars 同志、万歳! - - -@vindex gnus-save-newsrc-file -@code{gnus-save-newsrc-file} を @code{nil} にすることによってファイル -@file{.newsrc} に書き込むのを止めることができます。そうすれば、そのファ -イルを削除することができ、ディスク容量を節約することができ、gnus の終了 -が速くなります。しかし、そうすると他のニュースリーダーを使えなくなります。 -でも、ちょっと、誰かそうしたい人がいるでしょうか。 - -@vindex gnus-save-killed-list -@code{gnus-save-killed-list} (ディフォルト では @code{t}) が @code{nil} -であると、gnus は削除されたグループを起動ファイルに保存しません。これは、 -(起動時と終了時の) 時間と、(ディスクの) 容量を節約します。こうすると、 -gnusがどのグループが新しいかの記録を持っていないことになりますので、新し -いグループの自動購読方法は意味が無くなります。この変数を @code{nil} にし -たときは、@code{gnus-check-new-newsgroups} を常に @code{nil} か -@code{ask-server} にしておくべきでしょう (@pxref{New Groups})。この変数 -は正規表現であることもできます。そのような場合は、ファイルを保存する直前 -にその正規表現に合致しないすべてのグループを消去します。これは、すべての -サーバーが @code{ask-server} を理解するわけではない、といったような、特 -定のあいまいな状況のときに役に立つでしょう。 - -@vindex gnus-startup-file -変数 @code{gnus-startup-file} は起動ファイルがどこにあるかを指定します。 -ディフォルトの値は @file{~/.newsrc} で、それがどのようなものであれ、 -末尾に @samp{.eld} をつけたものが gnus (El Dingo) の起動ファイルになりま -す。 - -@vindex gnus-save-newsrc-hook -@vindex gnus-save-quick-newsrc-hook -@vindex gnus-save-standard-newsrc-hook -@code{gnus-save-newsrc-hook} は newsrc ファイルの中のどれかを保存する前に実 -行されるのに対し、@code{gnus-save-quick-newsrc-hook} はファイル -@file{.newsrc.eld} を保存する前に実行され、 -@code{gnus-save-standard-newsrc-hook} はファイル @file{.newsrc.eld} を保 -存する前に実行されます。後の二つは普通は版管理を入れたり切ったりするのに -使われます。ディフォルトでは、起動ファイルを保存するときに版管理に入りま -す。バックアップファイルの作成を止めたいときは、次のようにしてください。 - -@lisp -(defun turn-off-backup () - (set (make-local-variable 'backup-inhibited) t)) - -(add-hook 'gnus-save-quick-newsrc-hook 'turn-off-backup) -(add-hook 'gnus-save-standard-newsrc-hook 'turn-off-backup) -@end lisp - -@vindex gnus-init-file -Gnus が起動すると、@code{gnus-site-init-file} (ディフォルトでは -@file{.../site-lisp/gnus}) と @code{gnus-init-file} (ディフォルトでは -@file{~/.gnus}) のファイルを読み込みます。これらは普通の Emacs Lisp ファ -イルで、@file{~/.emacs} や @file{site-init} ファイルを gnus 関係のもので -乱雑にしないようにするために使うことができます。Gnus はこれらと同じ名前 -のファイルを調べますが、接尾語 @file{.elc} と @file{.el} がついているも -のも調べます。言い換えれば、@code{gnus-init-file} を @file{~/.gnus} に設 -定すると、gnus は (この順番に) @file{~/.gnus.elc} 、@file{~/.gnus.el} を -探し、最後に @file{~/.gnus} を探します。 - - - -@node Auto Save -@section 自動保存 -@cindex dribble file -@cindex auto-save - -何か gnus のデータを変更すること (記事を読む、印を付ける、グループを削除 -または購読する) をしたとき、変更は特別な@dfn{ドリブルバッファ (dribble -buffer)} に書き込まれます。このバッファはEmacs が普通するように自動保存 -されます。ファイル @file{.newsrc} を保存する前に Emacsが落ちたときは、す -べての変更をこのファイルから回復することができるでしょう。 - -起動時に gnus がこのファイルの存在を発見すると、gnus はそれを読み込むか -どうかを利用者に尋ねます。本当の起動ファイルが保存されれば、自動保存ファ -イルは削除されます。 - -@vindex gnus-use-dribble-file -@code{gnus-use-dribble-file} が @code{nil} であると、gnus はドリブルバッ -ファをつくったり、維持したりしません。ディフォルトは @code{t} です。 - -@vindex gnus-dribble-directory -Gnus はドリブルファイルを @code{gnus-dribble-directory} に置きます。ディ -フォルトではそのようになっていますが、この変数が @code{nil} であると、 -gnus はファイル@file{.newsrc} の置かれているディレクトリ (これは普通は利 -用者のホームディレクトリです) に入っていってドリブルファイルを作ります。 -ドリブルファイルは @code{.newsrc} と同じ許可属性を与えられます。 - - -@node The Active File -@section 現状ファイル -@cindex active file -@cindex ignored groups - -Gnus は起動したときや、実際に新しい記事が到着しているかを決定しようとす -るときに、現状ファイルを読み込みます。これはとても大きなファイルで、その -サーバーの活動中のグループと記事のすべてのリストが入っています。 - -@vindex gnus-ignored-newsgroups -現状ファイルを検査する前に、gnus は正規表現 -@code{gnus-ignored-newsgroups} に合うすべての行を削除します。これは主に -偽の名前を持つグループを排除するために使われてきましたが、興味の無いグルー -プの階層を無視するために使うこともできます。しかし、これはお勧めできませ -ん。本当のことを言うと、全く賛成できません。代わりに、そのような用途に用 -いられる変数の概略を知るために、@pxref{New Groups} を参照してください。 - -@c This variable is -@c @code{nil} by default, and will slow down active file handling somewhat -@c if you set it to anything else. - -@vindex gnus-read-active-file -@c @head -現状ファイルは比較的大きくなる傾向があるので、遅い回線を使っているときは、 -現状ファイルを読み込まないように @code{gnus-read-active-file} を -@code{nil} に設定することができます。この変数はディフォルトでは -@code{some} です。 - -そのような時は、gnus は実際に購読されているグループに関する情報だけを得 -てやっていこうとします。 - -気を付けてほしいのは、あなたが山ほどのたくさんのグループを購読していると -きにこの変数を @code{nil} 設定すると、gnus は速くなるどころか、遅くなっ -てしまうということです。現状では、ニューズを 2400bps 以上のモデムを通し -て読んでいるのでない限り、gnus の速度はかなり遅くなるでしょう。 - -この変数は @code{some} という値も取ることができます。その時は、gnus は現 -状の情報を購読されているグループのものだけを得ようとします。いくつかのサー -バー (命令@code{LIST ACTIVE group} を使うことのできる、最新鋭の INN サー -バー) では、非常に早くなるでしょうが、他のサーバーでは速くはありません。 -どのようにせよ、遅い回線では @code{some} は @code{nil} よりも速く、それ -はもちろん@code{t} よりも速くなります。 - -もしこの変数が @code{nil} であると、gnus は完全にがんじがらめの方法でグ -ループの情報を得ようとします。そして、これはあまり速くありません。もしそ -れが @code{some} で @sc{nntp} サーバーを使っているときは、gnus はできる -だけ速く命令を出し、一撃ですべての返答を読み込みます。この方が普通はより -良い結果をもたらしますが、サーバーが命令 @code{LIST ACTIVE group} を理解 -しないなら、サーバーにとってはあまり良いとは言えません。 - -@code{some} か @code{nil} を使うのであれば、どちらにしろ速度を上げるため -にすべての興味の無いグループを必ず削除するべきでしょう。 - -この変数は2番目の (secondary) 方法の現状ファイル取得にも影響することに気 -を付けてください。 - - -@node Startup Variables -@section 起動変数 - -@table @code - -@item gnus-load-hook -@vindex gnus-load-hook -Gnus が読み込まれているときに実行されるフックです。何度 gnus を起動しても、 -Emacs が起動してから終了するまでに普通はこのフックは一回しか実行されないこ -とに注意してください。 - -@item gnus-before-startup-hook -@vindex gnus-before-startup-hook -Gnus の起動に成功した後に実行されるフックです。 - -@item gnus-startup-hook -@vindex gnus-startup-hook -Gnus が起動された後に、一番最後に実行されるフックです。 - -@item gnus-started-hook -@vindex gnus-started-hook -Gnus の起動に成功した後に、一番最後に実行されるフックです。 - -@item gnus-started-hook -@vindex gnus-started-hook - -ファイル @file{.newsrc} を読み込んだ後で、グループバッファを作成する前に -実行されるフックです。 - -@item gnus-check-bogus-newsgroups -@vindex gnus-check-bogus-newsgroups -もし @code{nil} でないと、gnus は起動時に調べてすべての偽グループを削除 -します。@dfn{偽グループ (bogus group)} はあなたの @file{.newsrc} ファイ -ルには存在するけれど、ニューズサーバーには実際には存在しない、というグルー -プのことです。偽グループを調べるのにはかなり時間がかかりますので、時間と -資源を節約するために、この機能は使わないほうがいいでしょう。そして、代わ -りにグループバッファで時々偽グループを調べるのが良いでしょう -(@pxref{Group Maintenance} を参照してください)。 - -@item gnus-inhibit-startup-message -@vindex gnus-inhibit-startup-message -もし @code{nil} でないと、起動時のメッセージは表示されません。そのように -すれば、仕事の代わりにニューズを読んでいるのを上司に気付かれにくくなるで -しょう。この変数は @file{.gnus.el} がロードされる前に使われますので、 -@code{.emacs} に設定するべきである点を注意してください。 - -@item gnus-no-groups-message -@vindex gnus-no-groups-message -グループが一つも存在しないときに gnus が表示するメッセージです。 - -@item gnus-play-startup-jingle -@vindex gnus-play-startup-jingle -もし @code{nil} でないと、起動時に gnus の短い曲を演奏します。 - -@item gnus-startup-jingle -@vindex gnus-startup-jingle -上の変数が @code{nil} でないときに演奏される短い曲です。ディフォルトは -@samp{Tuxdemoon.Jingle4.au} です。 - -@end table - - -@node The Group Buffer -@chapter グループバッファ -@cindex group buffer - -グループバッファ @dfn{group buffer} は有効なグループを全部(あるいは一部を) -一覧表示します。これは gnus を起動したときに最初に表示されるバッファで、 -gnus が生きている限り決して消されることはありません。 - - -@iftex -@iflatex -\gnusfigure{The Group Buffer}{320}{ -\put(75,50){\epsfig{figure=tmp/group.ps,height=9cm}} -\put(120,37){\makebox(0,0)[t]{Buffer name}} -\put(120,38){\vector(1,2){10}} -\put(40,60){\makebox(0,0)[r]{Mode line}} -\put(40,58){\vector(1,0){30}} -\put(200,28){\makebox(0,0)[t]{Native select method}} -\put(200,26){\vector(-1,2){15}} -} -@end iflatex -@end iftex - -@menu -* Group Buffer Format:: 表示されている情報と変更の方法。 -* Group Maneuvering:: グループバッファを移動するコマンド。 -* Selecting a Group:: 実際にニュースを読む。 -* Group Data:: グループの情報を変更する。 -* Subscription Commands:: 購読、購読中止、消去。 -* Group Levels:: レベル?それって何? -* Group Score:: あなたの好きなグループを見つけ出す方法。 -* Marking Groups:: グループに印をつけておいて、後で処理できます。 -* Foreign Groups:: グループの作成と修正。 -* Group Parameters:: グループ毎に違ったパラメータを持たせられます。 -* Listing Groups:: Gnus はグループをいろいろな分け方で表示できます。 -* Sorting Groups:: グループの順番の配置替え。 -* Group Maintenance:: きれいな @file{.newsrc} の保ち方。 -* Browse Foreign Server:: サーバをブラウズできます。何が読めるのか見てみよう。 -* Exiting Gnus:: ニュース読むのをやめて、仕事をしよう。 -* Group Topics:: グループを切り混ぜて、トピックごとに分割する。 -* Misc Group Stuff:: 他にできること。 -@end menu - - -@node Group Buffer Format -@section グループバッファの形式 - -@menu -* Group Line Specification:: グループバッファの見え方を決める。 -* Group Modeline Specification:: グループバッファのモード行。 -* Group Highlighting:: グループバッファにきれいに色をつける。 -@end menu - - -@node Group Line Specification -@subsection グループ行の仕様 -@cindex group buffer format - -グループバッファのデフォルトでの形式はきれいでつまんないけど、こ -れは君の好きなように、サイコーにダサくすることもできます。 - -これがグループ行の例です。 - -@example - 25: news.announce.newusers - * 0: alt.fan.andrea-dworkin -@end example - -とっても簡単でしょ? - -@samp{news.announce.newusers} には 25 の未読記事があるのがわかります。 -@samp{alt.fan.andrea-dworkin} には未読記事はないけれども、印をつけた記事が -いくつかあります(行頭のちっちゃなアスタリスクが見える?)。 - -@vindex gnus-group-line-format -この形式は @code{gnus-group-line-format} 変数をいじることで、どんな風にで -も変えられます。この変数は @code{format} の仕様風に動作します。つまり(あ -のクソ)C 言語を使う人たちのため、printf の仕様とほぼ同じです。 -@xref{Formatting Variables} - -@samp{%M%S%5y: %(%g%)\n} という値で上記の行を生成します。 - -コロンは、この行の中に必ず無くてはいけません。カーソルは、何かの操作をした -後は常にコロンのところに移動するからです。他には何も必要ではありません―― -グループ名さえもです。表示されている文字は全てただの画面の飾りであり、 -gnus がそれを調べることはありません。Gnus は必要とする全ての実情報を、テキ -スト属性を使って憶えています。 - - -(もし君が、すごくヘンな、素晴らしい、表計算風のレイアウトを作ったとしたら、 -みんな、君は会計の仕事が忙しくって、ニュースを読んで時間を無駄使いしたりな -んかしてない、って信じてくれるよ。) - -以下が使用できるフォーマット文字のリストです。 - -@table @samp - -@item M -そのグループが印のついた記事だけのときは、アスタリスク文字。 - -@item S -そのグループが購読されているかどうか。 - -@item L -購読度のレベル。 - -@item N -未読記事の数。 - -@item I -保留記事の数。 - -@item T -印付き記事の数。 - -@item R -既読記事の数。 - -@item t -推定全記事数(これは実際は @var{max-number} - @var{min-number} + 1)。 - -@item y -未読でも、印付きでも、保留でもない記事の数。 - -@item i -印付き記事と保留記事の数。 - -@item g -グループ名のフルネーム。 - -@item G -グループ名。 - -@item D -ニューズグループの説明。 - -@item o -モデレーテッドの場合 @samp{m}. - -@item O -モデレーテッドの場合 @samp{(m)}. - -@item s -選択メソッド。 - -@item n -どこからの選択か。 - -@item z -外部選択メソッドが使われている場合、@samp{<%s:%n>} と同じ文字列。 - -@item P -トピック (@pxref{Group Topics}) のレベルに応じた字下げ。 - -@item c -@vindex gnus-group-uncollapsed-levels -短い(省略した)グループ名。@code{gnus-group-uncollapsed-levels} 変数は、 -どのレベルまでグループ名を全部残すかを示します。デフォルトは 1 です――こ -の意味は、@samp{gnu.emacs.gnus} のようなグループ名を @samp{g.emacs.gnus} -に短縮するということです。 - -@item m -@vindex gnus-new-mail-mark -@cindex % -そのグループに最近新着メールが届いている場合は @samp{%} -(@code{gnus-new-mail-mark})。 - -@item d -最後にいつこのグループを読んだかを示す文字列 (@pxref{Group Timestamp})。 - -@item u -利用者定義指定。フォーマット文字列中で、この次の文字はアルファベット文字で -なければいけません。Gnus は @code{gnus-user-format-function-}@samp{X} 関数 -を呼び出します。ここで @samp{X} は @samp{%u} に続いている文字です。この関 -数は引数に、一つのダミーパラメータを渡されます。この関数は、他の各指定文字 -の情報と同様に、バッファに挿入される文字列を返さなければなりません。 -@end table - -@cindex * -全ての「〜の数」の指定で、もしその情報が利用できない場合にはアスタリスク -(@samp{*}) が埋められます――例えば、起動されていない外部グループや、不正 -なネイティブグループの場合です。 - - -@node Group Modeline Specification -@subsection グループモード行の仕様 -@cindex group modeline - -@vindex gnus-group-mode-line-format -モード行は @code{gnus-group-mode-line-format} (@pxref{Formatting -Variables}) を設定することで変更できます。こいつは指定文字をあん -まりたくさん知ってません。 - -@table @samp -@item S -ネイティブのニュースサーバ。 -@item M -ネイティブの選択メソッド。 -@end table - - -@node Group Highlighting -@subsection グループのハイライト -@cindex highlighting -@cindex group highlighting - -@vindex gnus-group-highlight -グループバッファのハイライトは @code{gnus-group-highlight} 変数 -によって制御されています。これは @var{(form . face)} のようなも -のを要素に持つ連想リストです。@var{form} が何か @code{nil} 以外 -に評価されるものなら、その行に対して @var{face} が使用されます。 - -以下がこの変数の値の例です。これは背景が暗い設定ではきれいに見え -るかも知れません。 - -@lisp -(face-spec-set 'my-group-face-1 '((t (:foreground "Red" :bold t)))) -(face-spec-set 'my-group-face-2 '((t (:foreground "SeaGreen" :bold t)))) -(face-spec-set 'my-group-face-3 '((t (:foreground "SpringGreen" :bold t)))) -(face-spec-set 'my-group-face-4 '((t (:foreground "SteelBlue" :bold t)))) -(face-spec-set 'my-group-face-5 '((t (:foreground "SkyBlue" :bold t)))) - -(setq gnus-group-highlight - '(((> unread 200) . my-group-face-1) - ((and (< level 3) (zerop unread)) . my-group-face-2) - ((< level 3) . my-group-face-3) - ((zerop unread) . my-group-face-4) - (t . my-group-face-5))) -@end lisp - -@pxref{Faces and Fonts} も参照してください。 - -この form が評価されるときに動的に束縛されている変数には以下のも -のがあります。 - - -@table @code -@item group -グループ名。 -@item unread -そのグループの未読記事の数。 -@item method -選択メソッド。 -@item mailp -そのグループがメールのグループかどうか。 -@item level -そのグループのレベル。 -@item score -そのグループのスコア。 -@item ticked -そのグループ中の印の付いた記事の数。 -@item total -そのグループ中の全記事数。もっと正確に言うと、MAX-NUMBER - MIN_NUMBER + -1. -@item topic -トピックマイナーモードを使用している時、この変数は挿入されてい -る現在のトピックに束縛されます。 -@end table - -この form が評価 (@code{eval}) されるときは、ポイントは問題のグループの行 -頭にあります。従って、通常の gnus の関数のほとんどを使ってそのグループの情 -報を取ってくることができます。 - -@vindex gnus-group-update-hook -@findex gnus-group-highlight-line -@code{gnus-group-update-hook} はグループ行が変更されたときに呼び -出されます。これは @code{gnus-visual} が @code{nil} のときは呼び -出されません。このフックはデフォルトでは -@code{gnus-group-highlight-line} を呼び出します。 - -@node Group Maneuvering -@section グループ操作 -@cindex group movement - -全ての移動コマンドは数字プレフィックスを理解するので、期待する通 -りの動作をします。たぶんね。 - -@table @kbd - -@item n -@kindex n (Group) -@findex gnus-group-next-unread-group -次の未読記事のあるグループに移動します -(@code{gnus-group-next-unread-group})。 - -@item p -@itemx DEL -@kindex DEL (Group) -@kindex p (Group) -@findex gnus-group-prev-unread-group -一つ前の未読記事のあるグループに移動します -(@code{gnus-group-prev-unread-group})。 - -@item N -@kindex N (Group) -@findex gnus-group-next-group -次のグループに移動します (@code{gnus-group-next-group})。 - -@item P -@kindex P (Group) -@findex gnus-group-prev-group -一つ前のグループに移動します (@code{gnus-group-prev-group})。 - -@item M-n -@kindex M-n (Group) -@findex gnus-group-prev-unread-group-same-level -一つ前の同じレベル(もしくはそれより小さいレベル)の未読グループに移動しま -す(@code{gnus-group-prev-unread-group-same-level})。 - -@item M-p -@kindex M-p (Group) -@findex gnus-group-next-unread-group-same-level -次の同じレベル(もしくはそれより小さいレベル)の未読グループに移動します -(@code{gnus-group-next-unread-group-same-level})。 -@end table - -次の3つの命令はグループにジャンプするためのものです: - -@table @kbd - -@item j -@kindex j (Group) -@findex gnus-group-jump-to-group -グループにジャンプします(それが見えるようになっていなかったら見えるように -します)(@code{gnus-group-jump-to-group})。kill されているグループも、生き -ているグループと同様にジャンプできます。 - -@item , -@kindex , (Group) -@findex gnus-group-best-unread-group -最も小さいレベルの未読グループにジャンプします -(@code{gnus-group-best-unread-group})。 - -@item . -@kindex . (Group) -@findex gnus-group-first-unread-group -最初の未読記事のあるグループにジャンプします -(@code{gnus-group-first-unread-group})。 -@end table - -@vindex gnus-group-goto-unread -@code{gnus-group-goto-unread} が @code{nil} にすると、全ての移動 -コマンドは、次の未読グループではなく次のグループに移動するように -なります。そのコマンドが次の未読グループに移動する、と言い張って -いても、です。デフォルトは @code{t} です。 - - -@node Selecting a Group -@section グループの選択 -@cindex group selection - -@table @kbd - -@item SPACE -@kindex SPACE (Group) -@findex gnus-group-read-group -現在のグループを選択し、サマリバッファに切り替えて最初の未読記事を表示しま -す (@code{gnus-group-read-group})。もしそのグループに未読記事が無い、もし -くはこのコマンドに数字以外のプレフィックスを与えると、gnus はサーバからこ -のグループの全ての古い記事を取得しようとします。@var{N} の数字プレフィック -スを与えると、gnus の取得する記事数は @var{N} になります。@var{N} が正の数 -であれば gnusは新しい方から @var{N} 個の記事を取得し、 @var{N} が負の数で -あれば gnus は古い方から @var{N} 個の記事を取得します。 - -@item RET -@kindex RET (Group) -@findex gnus-group-select-group -現在のグループを選択し、サマリバッファに切り替えます -(@code{gnus-group-select-group})。@code{gnus-group-read-group} と同じ引数 -を取ります――唯一の違いは、グループに入ったときに最初の未読記事を表示しな -い、ということです。 - -@item M-RET -@kindex M-RET (Group) -@findex gnus-group-quick-select-group -これは上記のコマンドと同じ動作をしますが、「ゴタゴタ」は最低限にしようとし -ます (@code{gnus-group-quick-select-group})。スコア・kill の処理は行われず、 -ハイライトも記事消去もしません。これは、あなたが本当に急いでいて、どっかの -やたらでっかいグループに入らなければいけないときに役に立つかもしれません。 -また、プレフィックスに 0 を与えれば(すなわち @kbd{0 M-RET})、gnus はサマ -リバッファを作ろうとさえしません。これはサマリバッファを作る前にスレッド表 -示を切り替えたいとき役に立ちます (@pxref{Summary Generation Commands})。 - -@item M-SPACE -@kindex M-SPACE (Group) -@findex gnus-group-visible-select-group -これは @kbd{RET} コマンドと同じ動作をするさらにもう一つのコマン -ドですが、このコマンドは記事消去と保留記事を隠す処理を行いません -(@code{gnus-group-visible-select-group})。 - -@item M-C-RET -@kindex M-C-RET (Group) -@findex gnus-group-select-group-ephemerally -最後にこのコマンドは、現在のグループを一度限り、その内容に一切の -処理をすることのないように選択します -(@code{gnus-group-select-group-ephemerally})。 スレッド表示さ -えも行われません。この方法で選択した後にこのグループに対して行っ -たことは全て、その後に影響を与えることはありません。 - -@end table - -@vindex gnus-large-newsgroup -@code{gnus-large-newsgroup} 変数は、何を大きなグループと考えるべきか、を -gnus に与えます。これは デフォルトでは 200 です。グループに(未読と印付き -の)記事がこの数以上あれば、gnus はそのグループに入る前に利用者に確認を求 -めます。利用者はサーバからいくつの記事を取得するかを指定できます。もし利用 -者が負の数 (@code{-n}) を指定すれば、古い方から @code{n} 個の記事を取得し -ます。正の数であれば、新しく到着した方から @code{n} 個の記事を取得します。 - -@vindex gnus-select-group-hook -@vindex gnus-auto-select-first -@code{gnus-auto-select-first} は、@kbd{SPACE} コマンドでグループ -に入ったときに、自動的に記事を選択するかどうかを制御します。 - -@table @code - -@item nil -グループに入ったときにどの記事も選択しない。ただサマリバッファを -表示するだけ。 - -@item t -グループに入ったときに、最初の未読記事を選択する。 - -@item best -グループに入ったときに、そのグループで最も高いスコアの記事を選択 -する。 -@end table - -もしあるグループで自動記事選択をやめたいのであれば(例えばでっかい記事のあ -るバイナリグループでは、とか)、グループが選択されたときに呼び出される -@code{gnus-select-group-hook} の中でこの変数を @code{nil} に設定することが -できます。 - - -@node Subscription Commands -@section 購読制御コマンド -@cindex subscription - -@table @kbd - -@item S t -@itemx u -@kindex S t (Group) -@kindex u (Group) -@findex gnus-group-unsubscribe-current-group -@c @icon{gnus-group-unsubscribe} -現在のグループの購読を切り替えます -(@code{gnus-group-unsubscribe-current-group})。 - -@item S s -@itemx U -@kindex S s (Group) -@kindex U (Group) -@findex gnus-group-unsubscribe-group -グループを購読するかどうかを確認し、購読します。すでに購読するよ -うになっている場合には、購読を止めます -(@code{gnus-group-unsubscribe-group})。 - -@item S k -@itemx C-k -@kindex S k (Group) -@kindex C-k (Group) -@findex gnus-group-kill-group -@c @icon{gnus-group-kill-group} -現在のグループを kill します (@code{gnus-group-kill-group})。 - -@item S y -@itemx C-y -@kindex S y (Group) -@kindex C-y (Group) -@findex gnus-group-yank-group -最後に kill したグループを yank します -(@code{gnus-group-yank-group})。 - -@item C-x C-t -@kindex C-x C-t (Group) -@findex gnus-group-transpose-groups -二つのグループの順序を置き換えます -(@code{gnus-group-transpose-groups})。 これはホントは購読コマン -ドではありませんが、kill と yank を何度か続ける代わりにこのコマ -ンドが使えます。 - -@item S w -@itemx C-w -@kindex S w (Group) -@kindex C-w (Group) -@findex gnus-group-kill-region -リージョン内の全てのグループを kill します -(@code{gnus-group-kill-region})。 - -@item S z -@kindex S z (Group) -@findex gnus-group-kill-all-zombies -全てのゾンビグループを kill します -(@code{gnus-group-kill-all-zombies})。 - -@item S C-k -@kindex S C-k (Group) -@findex gnus-group-kill-level -あるレベルのグループを全て kill します -(@code{gnus-group-kill-level})。 kill した後、これらのグループを -yank で戻すことはできないので、このコマンドはいくらか注意して使っ -てください。このコマンドが本当に便利になるのは、@file{.newsrc} -に捨てちゃいたい未購読のグループがたくさんあるときだけです。レベ -ル 7で @kbd{S C-k} を行うと、@file{.newsrc} ファイル中にメッセー -ジ番号がない未購読グループを全て kill します。 - -@end table - -@pxref{Group Levels} も参照してくください。 - - -@node Group Data -@section グループデータ - -@table @kbd - -@item c -@kindex c (Group) -@findex gnus-group-catchup-current -@vindex gnus-group-catchup-group-hook -@c @icon{gnus-group-catchup-current} -そのグループ内の全ての無印の記事を既読にする -(@code{gnus-group-catchup-current})。グループバッファから既読にした場合は -@code{gnus-group-catchup-group-hook} が呼び出されます。 - -@item C -@kindex C (Group) -@findex gnus-group-catchup-current-all -そのグループの全記事を、印付きの記事も含めて既読にします -(@code{gnus-group-catchup-current-all})。 - -@item M-c -@kindex M-c (Group) -@findex gnus-group-clear-data -現在のグループの全てのデータをクリアします――マークと既読記事のリストを消 -し去ります (@code{gnus-group-clear-data})。 - -@item M-x gnus-group-clear-data-on-native-groups -@kindex M-x gnus-group-clear-data-on-native-groups -@findex gnus-group-clear-data-on-native-groups -もし @sc{nntp} サーバを別のものに切り替えたとすると、全てのマークと既読情 -報はもう役には立ちません。このコマンドを使ってネイティブグループの全てのデー -タをクリアすることができます。注意して使ってね。 - -@end table - - -@node Group Levels -@section グループレベル -@cindex group level -@cindex level - -全てのグループは購読度 @dfn{subscribedness} のレベルを持ちます。 -例えば、あるグループがレベル 2 だとすれば、それはレベル 5 のグルー -プよりも「より購読している」ということです。Gnus に対して、ある -レベルかそれより小さいレベルのグループのみ一覧表示するように頼む -こともできるし (@pxref{Listing Groups})、あるレベルかそれより小 -さいレベルのグループの新着記事のみを確認することもできます -(@pxref{Scanning New Messages})。 - -忘れないで: グループのレベルが大きいほど、重要度は低くなるということ。 - -@table @kbd - -@item S l -@kindex S l (Group) -@findex gnus-group-set-current-level -現在のグループのレベルを設定する。数字プレフィックスが与えられる -と、そこから @var{n} 個のグループのレベルが設定されます。レベル -を入力するためのプロンプトが出ます。 - -@end table - -@vindex gnus-level-killed -@vindex gnus-level-zombie -@vindex gnus-level-unsubscribed -@vindex gnus-level-subscribed -Gnus はレベル 1 から @code{gnus-level-subscribed}(この値を含む)(デフォ -ルトは 5)までのグループを購読、@code{gnus-level-subscribed}(この値を含ま -ない)から@code{gnus-level-unsubscribed}(この値を含む)(デフォルトは 7) -までのグループを非購読、@code{gnus-level-zombie} をゾンビ(歩く屍)(デフォ -ルトは 8)、@code{gnus-level-killed} を kill されている(完全に死んでる) -(デフォルトは 9)と判断します。Gnus は購読と非購読のグループは全く同様に -扱いますが、ゾンビと kill グループは、どの記事を読んだか、存在するかなどの -情報を一切持ちません。この死んでるグループと生きてるグループの区別は、別に -それがきれいだからとか賢いからというわけではなく、純粋に効率的な理由のため -です。 - -メール用のグループは(もしあれば)非常に小さいレベル(例えば 1 か 2)にし -ておくことをお勧めします。 - -もしレベル変数で遊びたいのであれば、多少注意をしてまわる必要があ -ります。一旦それを設定したら、二度とそれに触らないでください。さ -らに言えば、自分で何をやっているかを正確に理解していない限り、一 -切触らないでください。 - -@vindex gnus-level-default-unsubscribed -@vindex gnus-level-default-subscribed -身近に関係する2つの変数は @code{gnus-level-default-subscribed}(デフォルト -は 3)と @code{gnus-level-default-unsubscribed}(デフォルトは 6)です。こ -れらは新しいグループが(非)購読されたときのレベルです。もちろ -ん、これら2つの変数の値は、意味のある正しい範囲でなくてはなりません。 - -@vindex gnus-keep-same-level -@code{gnus-keep-same-level} が @code{nil} 以外であれば、移動コマンドのいく -つかは同一(あるいはそれより小さい)レベルのグループのみの移動になります。 -特に、あるグループの最後の記事から次のグループに移るとき、次の同一(あるい -はそれより小さい)レベルのグループに移動します。これは残りのグループを読む -より先に、より重要なグループを読んでおきたいときには便利かもしれません。 - -@vindex gnus-group-default-list-level -デフォルトでは @code{gnus-group-default-list-level} と同じかそれ -より小さいレベルのグループが、グループバッファに一覧表示されます。 - -@vindex gnus-group-list-inactive-groups -@code{gnus-group-list-inactive-groups} が @code{nil} 以外であれ -ば、未読のグループに一緒にアクティブでないグループも表示します。 -この変数はデフォルトで @code{t} です。もしこれが @code{nil} であ -れば、アクティブでないグループは表示されません。 - -@vindex gnus-group-use-permanent-levels -@code{gnus-group-use-permanent-levels} が @code{nil} 以外であれ -ば、一旦レベルを @kbd{g} や @kbd{l} のプレフィックスに与えると、 -その後の全てのコマンドにおいてそのレベルが「作用する」レベルにな -ります。 - - -@vindex gnus-activate-level -Gnus は通常、@code{gnus-activate-level} かそれより小さいレベルのグループの -みを起動します(つまりサーバに問い合わせをする)。購読していないグループを -起動したくなければ、この変数を例えば 5 に設定するとよいかもしれません。デ -フォルトは 6 です。 - -@node Group Score -@section グループのスコア -@cindex group score -@cindex group rank -@cindex rank - -普通は重要なグループは高レベルにしておくでしょうけれども、この方 -法では少々制限がきついですよね。ひょっとしたら、グループをどれく -らい頻繁に読むかによってグループバッファをソートしたいなあ、なん -て思わない?理にかなってるでしょ? - -グループスコア @dfn{group score} はそのためのものです。それぞれのグループ -に対してスコアを指定することができます。そしてグループバッファをこのスコア -を基にソートすることができます。あるいは、スコア順でソートしてその後レベル -でソートすることもできます。(レベルとスコアをひとまとめにして、グループの -ランク @dfn{rank} と呼びます。レベルが 4 でスコアが 1 のグループは、レベル -が 5 でスコアが 300 のグループよりも高いランクとなります。(レベルの方が重 -要度が高く、スコアの方は重要度が低くなります。)) - -@findex gnus-summary-bubble-group -頻繁に読むグループに、めったに読まないグループよりも高いスコアを与えたいと -きは、@code{gnus-summary-exit-hook} フックに -@code{gnus-summary-bubble-group} 関数を追加することができます。これでバブ -ルソートの実行結果が(ソートの後で)得られるでしょう。サマリモードを終了す -るたびにこの活動をさせたいのであれば、同じフックに -@code{gnus-group-sort-groups-by-rank} か -@code{gnus-group-sort-groups-by-score} を追加できますが、いくらか遅くなる -でしょう。 - - -@node Marking Groups -@section グループへのマーク -@cindex marking groups - -もしいくつかのグループに対して何らかの命令を実行したい場合で、それらがグルー -プバッファに連続してある場合には、通常通り命令に対して数字プレフィックスを -与えるだけです。そうすればほとんどのグループコマンドは、これらのグループに -対してあなたの命令に従います。 - -しかしそれらのグループが順番に並んでいない場合においても、いくつかのグルー -プに対して命令を実行することができます。単に始めにプロセスマークでグループ -にマークをつけておき、そして命令を実行するだけです。 - -@table @kbd - -@item # -@kindex # (Group) -@itemx M m -@kindex M m (Group) -@findex gnus-group-mark-group -現在のグループにマークをつける (@code{gnus-group-mark-group})。 - -@item M-# -@kindex M-# (Group) -@itemx M u -@kindex M u (Group) -@findex gnus-group-unmark-group -現在のグループからマークを削除する (@code{gnus-group-unmark-group})。 - -@item M U -@kindex M U (Group) -@findex gnus-group-unmark-all-groups -全てのグループからマークを削除する (@code{gnus-group-unmark-all-groups})。 - -@item M w -@kindex M w (Group) -@findex gnus-group-mark-region -ポイントとマークに間の全てのグループにマークをつける -(@code{gnus-group-mark-region})。 - -@item M b -@kindex M b (Group) -@findex gnus-group-mark-buffer -バッファ内の全てのグループにマークをつける -(@code{gnus-group-mark-buffer})。 - -@item M r -@kindex M r (Group) -@findex gnus-group-mark-regexp -ある正規表現にマッチする全てのグループにマークをつける -(@code{gnus-group-mark-regexp})。 -@end table - -@pxref{Process/Prefix} も参照してください。 - -@findex gnus-group-universal-argument -プロセスマークが付けられている全てのグループに対して何かの命令を実行したい -ときは、@kbd{M-&} (@code{gnus-group-universal-argument}) 命令を使うことが -できます。プロンプトから実行したい命令を入力します。 - - -@node Foreign Groups -@section 外部グループ -@cindex foreign groups - -以下では、一般的な外部グループの作成、変更を行うグループモードの命令をいく -つか、および特別な目的のグループの簡単に作成する命令を紹介します。これらの -命令は全て、新規に作成したグループをポイント位置に挿入します―― -@code{gnus-subscribe-newsgroup-method} は参照されません。 - -@table @kbd - -@item G m -@kindex G m (Group) -@findex gnus-group-make-group -@cindex making groups -新しいグループを作成します (@code{gnus-group-make-group})。Gnus はプロン -プトを表示して、名前とメソッドと、場合によっては @dfn{address} の入力を -求めてきます。より簡単に @sc{nntp} グループを購読する方法は、 -@pxref{Browse Foreign Server} を参照してください。 - -@item G r -@kindex G r (Group) -@findex gnus-group-rename-group -@cindex renaming groups -現在のグループの名前を、何か別のものに変更します -(@code{gnus-group-rename-group})。これはある種のグループ――主にメールグルー -プに対してのみ有効です。このコマンドはバックエンドによっては非常に遅いこと -も有り得ます。 - -@item G c -@kindex G c (Group) -@cindex customizing -@findex gnus-group-customize -グループパラメータをカスタマイズする (@code{gnus-group-customize})。 - -@item G e -@kindex G e (Group) -@findex gnus-group-edit-group-method -@cindex renaming groups -現在のグループの選択メソッドを修正するためのバッファに移動します -(@code{gnus-group-edit-group-method})。 - -@item G p -@kindex G p (Group) -@findex gnus-group-edit-group-parameters -グループパラメータを修正するためのバッファに移動します -(@code{gnus-group-edit-group-parameters})。 - -@item G E -@kindex G E (Group) -@findex gnus-group-edit-group -グループ情報を修正するためのバッファに移動します -(@code{gnus-group-edit-group})。 - -@item G d -@kindex G d (Group) -@findex gnus-group-make-directory-group -@cindex nndir -ディレクトリグループを作成します (@pxref{Directory Groups})。ディレクトリ -名をプロンプト入力します (@code{gnus-group-make-directory-group})。 - -@item G h -@kindex G h (Group) -@cindex help group -@findex gnus-group-make-help-group - -Gnus ヘルプグループを作成します (@code{gnus-group-make-help-group})。 - -@item G a -@kindex G a (Group) -@cindex (ding) archive -@cindex archive group -@findex gnus-group-make-archive-group -@vindex gnus-group-archive-directory -@vindex gnus-group-recent-archive-directory -Gnus アーカイブグループを作成します -(@code{gnus-group-make-archive-group})。デフォルトでは最も最近の記事を指 -しているグループが作成されますが -(@code{gnus-group-recent-archive-directory})、プレフィックスを与えると全 -ての記事を含むグループが @code{gnus-group-archive-directory} を基に作成 -されます。 - -@item G k -@kindex G k (Group) -@findex gnus-group-make-kiboze-group -@cindex nnkiboze -kiboze グループを作成します。プロンプトで名前と、kiboze グループに「含めた -い」グループにマッチする正規表現と、ヘッダとマッチする文字列の組を入力し -ます (@code{gnus-group-make-kiboze-group})。@xref{Kibozed Groups}。 - -@item G D -@kindex G D (Group) -@findex gnus-group-enter-directory -@cindex nneething -任意のディレクトリを @code{nneething} バックエンドニューズグループである -かのように読み込みます (@code{gnus-group-enter-directory})。 -@xref{Anything Groups}. - -@item G f -@kindex G f (Group) -@findex gnus-group-make-doc-group -@cindex ClariNet Briefs -@cindex nndoc -ファイルなどをもとにグループを作成します -(@code{gnus-group-make-doc-group})。このコマンドにプレフィックスを与えた場 -合、ファイル名とファイルタイプをプロンプトで入力します。現在サポートされて -いるファイルタイプは、@code{babyl}, @code{mbox}, @code{digest}, -@code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs}, -@code{rfc934}, @code{rfc822-forward}, @code{forward} です。プレフィックス -なしでこのコマンドを実行すると、gnus はファイルタイプを推測します。 -@xref{Document Groups}。 - -@item G w -@kindex G w (Group) -@findex gnus-group-make-web-group -@cindex DejaNews -@cindex Alta Vista -@cindex InReference -@cindex nnweb -ウェブ検索結果をもとに一時的なグループを作成します -(@code{gnus-group-make-web-group})。このコマンドにプレフィックスを与えると、 -一時的ではなく固定したグループを作成します。プロンプトで検索機関の種類 -(search engine type) と検索文字列を入力します。有効な検索機関の種類には -@code{dejanews}, @code{altavista}, @code{reference} があります。 -@xref{Web Searches}. - -もし、@code{dejanews} 検索機関を用いる場合には、@samp{~g -alt.sysadmin.recovery shaving} のようなマッチする文字列を用いることによっ -て、検索対象を特定のグループに限定することが可能です。 - -@item G DEL -@kindex G DEL (Group) -@findex gnus-group-delete-group -この関数は現在のグループを削除します (@code{gnus-group-delete-group})。プ -レフィックスが与えられると、この関数はそのグループ内の全記事を本当に削除し、 -グループ自身をこの世から強制的に抹殺してしまいます。プレフィックスは、あな -たが何をやろうとしているか、本当に自信があるときにのみ使ってください。まあ、 -このコマンドは(@code{nntp} グループのような)読み出し専用グループには使え -ませんけど。 - -@item G V -@kindex G V (Group) -@findex gnus-group-make-empty-virtual -新しい、新鮮な、空の @code{nnvirtual} グループを作成します -(@code{gnus-group-make-empty-virtual})。@xref{Virtual Groups}. - -@item G v -@kindex G v (Group) -@findex gnus-group-add-to-virtual -現在のグループを @code{nnvirtual} グループに追加します -(@code{gnus-group-add-to-virtual})。これはプロセスマーク・プレフィックスルー -ルに従います。 - -@end table - -さまざまな選択メソッドに関するさらなる情報は @xref{Select Methods} を参 -照してください。 - -@vindex gnus-activate-foreign-newsgroups -もし @code{gnus-activate-foreign-newsgroups} が正の数であれば、gnus は起 -動時に、この数かそれよりも小さいレベルの外部グループを全てチェックします。 -これは特に違った @sc{nntp} サーバからたくさんのグループを購読している場 -合など、しばらく時間がかかるかもしれません。 - - -@node Group Parameters -@section グループパラメータ -@cindex group parameters - -グループパラメータは、ある特定のグループローカルな情報を格納します。以下は -グループパラメータリストの例です: - -@example -((to-address . "ding@@gnus.org") - (auto-expire . t)) -@end example - -それぞれの要素は『点対』(dotted pair)――つまり点 (dot) の前に鍵、点の後ろ -に値があるもの、で構成されます。全てのパラメータはこの形式を取りますが、 -@emph{例外}として局所変数の指定は点対ではなく通常のリストになります。 - -以下は利用可能なグループパラメータです: - -@table @code -@item to-address -@cindex to-address -フォローアップとニューズへの投稿をするときに使用されるアドレス。 - -@example -(to-address . "some@@where.com") -@end example - -これは主に、クローズドなメーリングリストを表わすメールグループにおいて便利 -なものです――すなわちメーリングリストに投稿する人は全てそれを購読している -はず、というメーリングリストのことです。このパラメータを使用すると、メール -はそのメーリングリストにしか投稿されないことが保証されるので、参加者はあな -たのフォローアップ記事を2通受け取ることはありません。 - -@code{to-address} を指定すると、そのグループが外部グループであるかどうか -に関わらず有効になります。例えば @samp{fa.4ad-l} というグループがサーバ -上にあったとしましょう。これは本当のニューズグループですが、サーバはメー -ルニューズゲートウェイを通して記事を受け付けます。つまりこのグループに対 -して直接投稿することは不可能で、代わりにそのメーリングリストにメールを送 -信しなければなりません。 - -@item to-list -@cindex to-list -そのグループで @kbd{a} を押したときに使用されるアドレス。 - -@example -(to-list . "some@@where.com") -@end example - -これはフォローアップをしたときは完全に無視されます――例外はそれがニューズ -グループを表わしているときは、@kbd{f} を押したときにメールグループのルール -が適用されるということです。 - -もし @kbd{a} コマンドをメールグループで実行したときに、@code{to-list} グ -ループパラメータも @code{to-address} もグループパラメータも無ければ、 -@code{to-list} グループパラメータは、@code{gnus-add-to-list} が @code{t} -に設定されていればメッセージ送信時に自動的に付加されます。 -@vindex gnus-add-to-list - -もし @kbd{a} コマンドをメールグループで実行したとき、@code{to-list} グルー -プパラメータがなければ、送信時に自動的に付加されます。 - - -@item visible -@cindex visible -グループパラメータのリスト中に @code{(visible . t)} という要素があれば、 -そのグループはグループバッファにおいて、未読記事があるかどうかに関わらず、 -常に表示されます。 - -@item broken-reply-to -@cindex broken-reply-to -@code{(broken-reply-to . t)} という要素があれば、そのグループでは -@code{Reply-To} は無視される、という意味です。これはある listserv によるメー -リングリストを購読していて、それが @code{Reply-To} 欄を listserv 自身に返 -すようにつけられている場合に有効でしょう。これはおかしな振る舞いです。だか -らこれが要るんです! - -@item to-group -@cindex to-group -@code{(to-group . "some.group.name")} という要素は、そのグループへの投稿 -は全て @code{some.group.name} に送られる、という意味です。 - -@item newsgroup -@cindex newsgroup -グループパラメータリストに @code{(newsgroup . t)} があれば、gnus は全ての -レスポンスをニューズ記事に対するレスポンスであるかのように扱います。これは -実際にはニューズグループのミラーであるメールグループに対して有効です。 - -@item gcc-self -@cindex gcc-self -グループパラメータリストに @code{(gcc-self . t)} があれば、新しく作成する -メッセージは現在のグループに @code{Gcc} されます。もし @code{(gcc-self -. none)} があれば、@code{Gcc:} 欄は生成されず、@code{(gcc-self -. "string")} があればこの文字列はそのまま @code{gcc} 欄に挿入されます。こ -のパラメータは以下で説明する全ての @code{Gcc} のデフォルトルールよりも優先 -されます (@pxref{Archived Messages})。 - -@item auto-expire -@cindex auto-expire -グループパラメータに @code{(auto-expire . t)} のような要素があれば、全て -の既読記事はエクスパイアされるようにマークされます。他の方法については -@pxref{Expiring Mail} を参照してください。 - -@item total-expire -@cindex total-expire -グループパラメータに @code{(total-expire . t)} のような要素があれば、既 -読記事は、エクスパイアのマークがついていなくとも全てエクスパイア処理を施 -されます。注意して使用してください。未読記事、印付き記事、保留記事はエク -スパイアされません。 - -@item expiry-wait -@cindex expiry-wait -@vindex nnmail-expiry-wait-function -グループパラメータに @code{(expiry-wait . 10)} のような要素があれば、この -値は記事をエクスパイアするときに @code{nnmail-expiry-wait} と -@code{nnmail-expiry-wait-function} の設定よりも優先されます。この値はエク -スパイアの日数(整数である必要はない)かもしくは @code{never} か -@code{immediate} のシンボルを指定できます。 - -@item score-file -@cindex score file group parameter -@code{(score-file . "file")} のような要素は、@file{file} を現在のグループ -に適用されるスコアファイルにします。適用されるスコアエントリは全てこのファ -イルに入ります。 - -@item adapt-file -@cindex adapt file group parameter -@code{(adapt-file . "file")} のような要素は、@file{file} を現在のグループ -の適用ファイルにします。全ての適用スコアエントリはこのファイルに入ります。 - -@item admin-address -メーリングリストから脱会するときは、脱会通知メールをそのメーリングリスト -自身に送信してはいけません。代わりに管理用アドレスにメッセージを送信しま -す。このパラメータにはどこか便利な管理用アドレスを書いておくことができます。 - -@item display - @code{(display . MODE)} のような要素は、グループに入るときにどの記事を -表示するかを指定します。有効な値は、 - -@table @code -@item all -未読、既読記事の両方を全て表示します。 - -@item default -デフォルトの表示記事を表示します。これは通常は未読記事と印付き記事です。 -@end table - -@item comment -@code{(comment . "This is a comment")} のような要素は、そのグループに対す -る任意のコメントです。これは現在の gnus では無視されますが、特定のグループ -に対する情報を格納する場所を提供します。 - -@item @var{(variable form)} -グループに入るときに、そのグループローカルの変数を設定するグループパラメー -タを使用することができます。@samp{news.answers} においてスレッド表示を行 -いたくないときは、そのグループにグループパラメータに -@code{(gnus-show-threads nil)} と書けます。 @code{gnus-show-threads} は、 -そのサマリバッファの中のローカル変数になり、form の @code{nil} はそこで -評価されます。 - -これはもし必要であれば、グループ毎のフック関数としても使用できます。もしあ -るグループに入ったときにビープ音を鳴らしたければ、そのグループのパラメータ -に @code{(dummy-variable (ding))} みたいなものを書いておくこともできます。 -@code{dummy-variable} という変数に @code{(ding)} の評価結果が設定されます -が、まあ、誰も気にしないでしょ? - -@end table - -グループパラメータの修正には @kbd{G p} 命令を使ってください。トピックパラ -メータについて読んでみることも面白いでしょう (@pxref{Topic Parameters})。 - - -@node Listing Groups -@section グループの一覧表示 -@cindex group listing - -これらのコマンドは、利用できるグループをいろいろに切り分けて表示します。 - -@table @kbd - -@item l -@itemx A s -@kindex A s (Group) -@kindex l (Group) -@findex gnus-group-list-groups -未読記事を持つ全てのグループを表示します (@code{gnus-group-list-groups})。 -数字プレフィックスを使うと、このコマンドは引数の数かそれよりも小さいレベル -のグループのみを表示します。デフォルトでは、これはレベル 5(つまり -@code{gnus-group-default-list-level})かそれより小さいレベル(すなわち購読 -しているグループのみ)を表示します。 - -@item L -@itemx A u -@kindex A u (Group) -@kindex L (Group) -@findex gnus-group-list-all-groups -未読記事のあるなしに関わらず、全てのグループを表示します -(@code{gnus-group-list-all-groups})。数字プレフィックスを使用すると、この -コマンドは引数の数かそれよりも小さいレベルのグループのみを表示します。デフォ -ルトでは 7 かそれよりも小さいレベルのグループ(すなわち購読、非購読のグルー -プのみ)が表示されます。 - -@item A l -@kindex A l (Group) -@findex gnus-group-list-level -ある特定のレベルの未読記事のあるグループを表示します -(@code{gnus-group-list-level})。プレフィックスを与えると、未読記事のない -グループも含めて表示します。 - -@item A k -@kindex A k (Group) -@findex gnus-group-list-killed -kill されたグループを全て表示します (@code{gnus-group-list-killed})。プ -レフィックス引数を与えると、現在購読、非購読となっていない全ての利用可能 -なグループを表示します。これはサーバからアクティブファイルを読むことにな -るでしょう。 - -@item A z -@kindex A z (Group) -@findex gnus-group-list-zombies -全てのゾンビグループを表示します (@code{gnus-group-list-zombies})。 - -@item A m -@kindex A m (Group) -@findex gnus-group-list-matching -正規表現にマッチする名前を持つグループで、未読記事のある購読グループを全 -て表示します (@code{gnus-group-list-matching})。 - -@item A M -@kindex A M (Group) -@findex gnus-group-list-all-matching -正規表現にマッチするグループを表示する -(@code{gnus-group-list-all-matching})。 - -@item A A -@kindex A A (Group) -@findex gnus-group-list-active -今接続しているサーバのアクティブファイルにあるグループを、本当に全部表示し -ます (@code{gnus-group-list-active})。これはしばらく時間がかかることも有り -得ます。たぶん @kbd{A M} を実行して、マッチさせたい部分を @samp{.} として -全てのマッチするリストを表示させた方が良いでしょう。また、このコマンドは -(まだ)存在しないグループも表示するかも知れません――これは kill されたグ -ループであるかのように表示されます。出力は多少割り引いて受け取ってね。 - -@item A a -@kindex A a (Group) -@findex gnus-group-apropos -正規表現にマッチする名前を持つグループを全て表示する -(@code{gnus-group-apropos})。 - -@item A d -@kindex A d (Group) -@findex gnus-group-description-apropos -正規表現にマッチする名前か説明文を持つグループを全て表示する -(@code{gnus-group-description-apropos})。 - -@end table - -@vindex gnus-permanently-visible-groups -@cindex visible group parameter -@code{gnus-permanently-visible-groups} 正規表現にマッチするグループは、 -未読記事があるかないかに関わらず常に表示されます。あるいはグループパラメー -タにおいて @code{visible} 要素を追加することでも同様の効果を得ることがで -きます。 - -@vindex gnus-list-groups-with-ticked-articles -印付きの記事のみを持つグループは通常グループバッファに表示されます。もし -@code{gnus-list-groups-with-ticked-articles} が @code{nil} であれば、そ -のグループは完全に空のグループであるかのように扱われます。デフォルトは -@code{t} です。 - - -@node Sorting Groups -@section グループのソート -@cindex sorting groups - -@kindex C-c C-s (Group) -@findex gnus-group-sort-groups -@vindex gnus-group-sort-function -@kbd{C-c C-s} (@code{gnus-group-sort-groups}) 命令は、グループバッファを -@code{gnus-group-sort-function} 変数で与えられる関数に従って並べ替えます。 -利用可能な並べ替え関数 (sorting function) には以下のものがあります: - -@table @code - -@item gnus-group-sort-by-alphabet -@findex gnus-group-sort-by-alphabet -グループ名でアルファベット順に並べ替えます。これが初期設定です。 - -@item gnus-group-sort-by-real-name -@findex gnus-group-sort-by-real-name -グループを本当の(前に何もついていない)グループ名でアルファベット順に並べ -変えます。 - -@item gnus-group-sort-by-level -@findex gnus-group-sort-by-level -グループレベルで並べ替えます。 - -@item gnus-group-sort-by-score -@findex gnus-group-sort-by-score -グループのスコアで並べ替えます。@xref{Group Score}. - -@item gnus-group-sort-by-rank -@findex gnus-group-sort-by-rank -グループのスコアで並べ替え、次にグループレベルで並べ替えます。レベルとスコ -アは、ひとまとめにして@dfn{ランク}と呼ばれます。@xref{Group Score}. - -@item gnus-group-sort-by-unread -@findex gnus-group-sort-by-unread -未読記事の数で並べ替えます。 - -@item gnus-group-sort-by-method -@findex gnus-group-sort-by-method -選択メソッドのアルファベット順で並べ替えます。 - - -@end table - -@code{gnus-group-sort-function} は並べ替え関数のリストであっても構いません。 -この場合、もっとも重要な並べ替えの鍵を持つ関数は最後でなくてはなりません。 - - -ある種の並べ替え用には、直接並べ替える命令もいくつかあります。 - -@table @kbd -@item G S a -@kindex G S a (Group) -@findex gnus-group-sort-groups-by-alphabet -グループバッファをグループ名のアルファベット順で並べ替えます -(@code{gnus-group-sort-groups-by-alphabet})。 - -@item G S u -@kindex G S u (Group) -@findex gnus-group-sort-groups-by-unread -グループバッファを未読記事の数で並べ替えます -(@code{gnus-group-sort-groups-by-unread})。 - -@item G S l -@kindex G S l (Group) -@findex gnus-group-sort-groups-by-level -グループバッファをグループレベルで並べ替えます -(@code{gnus-group-sort-groups-by-level})。 - -@item G S v -@kindex G S v (Group) -@findex gnus-group-sort-groups-by-score -グループバッファをグループのスコアで並べ替えます -(@code{gnus-group-sort-groups-by-score})。@xref{Group Score}. - -@item G S r -@kindex G S r (Group) -@findex gnus-group-sort-groups-by-rank -グループバッファをグループのランクで並べ替えます -(@code{gnus-group-sort-groups-by-rank})。@xref{Group Score}. - -@item G S m -@kindex G S m (Group) -@findex gnus-group-sort-groups-by-method -グループバッファをバックエンドの名前でアルファベット順に並べ替えます -(@code{gnus-group-sort-groups-by-method})。 - -@end table - -プレフィックスを与えたときは、これらの命令は全て逆順に並べ替えます。 - -また、グループの一部を並べ替えることもできます。 - -@table @kbd -@item G P a -@kindex G P a (Group) -@findex gnus-group-sort-selected-groups-by-alphabet -グループバッファ内のプロセスマーク・プレフィックス指定されたグループを、グ -ループ名のアルファベット順で並べ替えます -(@code{gnus-group-sort-selected-groups-by-alphabet})。 - -@item G P u -@kindex G P u (Group) -@findex gnus-group-sort-selected-groups-by-unread -グループバッファ内のプロセスマーク・プレフィックス指定されたグループを、未 -読記事の数で並べ替えます -(@code{gnus-group-sort-selected-groups-by-unread})。 - -@item G P l -@kindex G P l (Group) -@findex gnus-group-sort-selected-groups-by-level -グループバッファ内のプロセスマーク・プレフィックス指定されたグループを、グ -ループレベルで並べ替えます -(@code{gnus-group-sort-selected-groups-by-level})。 - -@item G P v -@kindex G P v (Group) -@findex gnus-group-sort-selected-groups-by-score -グループバッファ内のプロセスマーク・プレフィックス指定されたグループを、グ -ループのスコアで並べ替えます -(@code{gnus-group-sort-selected-groups-by-score})。@xref{Group Score}. - -@item G P r -@kindex G P r (Group) -@findex gnus-group-sort-selected-groups-by-rank -グループバッファ内のプロセスマーク・プレフィックス指定されたグループを、グ -ループのランクで並べ替えます -(@code{gnus-group-sort-selected-groups-by-rank})。@xref{Group Score}. - -@item G P m -@kindex G P m (Group) -@findex gnus-group-sort-selected-groups-by-method -グループバッファ内のプロセスマーク・プレフィックス指定されたグループを、バッ -クエンドの名前でアルファベット順に並べ替えます -(@code{gnus-group-sort-selected-groups-by-method})。 - -@end table - - - -@node Group Maintenance -@section グループの管理 -@cindex bogus groups - -@table @kbd -@item b -@kindex b (Group) -@findex gnus-group-check-bogus-groups -不正なグループを見つけて、削除します -(@code{gnus-group-check-bogus-groups})。 - -@item F -@kindex F (Group) -@findex gnus-group-find-new-groups -新しいグループを見つけて、それらを処理します -(@code{gnus-group-find-new-groups})。プレフィックスを与えると、サーバに -新規グループを問い合わせるのに @code{ask-server} の方法を使用します。 - -@item C-c C-x -@kindex C-c C-x (Group) -@findex gnus-group-expire-articles -現在のグループのエクスパイア記事に対して(もしあれば)全てエクスパイア処理 -を行います (@code{gnus-group-expire-articles})。 - -@item C-c M-C-x -@kindex C-c M-C-x (Group) -@findex gnus-group-expire-all-groups -全てのグループの全ての記事に対して、エクスパイア処理を行います -(@code{gnus-group-expire-all-groups})。 - -@end table - - -@node Browse Foreign Server -@section 外部サーバの閲覧 -@cindex foreign servers -@cindex browsing servers - -@table @kbd -@item B -@kindex B (Group) -@findex gnus-group-browse-foreign-server -選択メソッドとサーバ名を聞かれます。Gnus はこのサーバに接続し、そこにある -グループを閲覧しようとします (@code{gnus-group-browse-foreign-server})。 -@end table - -@findex gnus-browse-mode -利用可能なグループのリストを持った新しいバッファが現れます。このバッファ -は @code{gnus-browse-mode} を使用します。このバッファは通常のグループバッ -ファにちょっと(というか、とっても)似ています。 - -以下が閲覧モード (browse mode) で使用できるキー操作のリストです: - -@table @kbd -@item n -@kindex n (Browse) -@findex gnus-group-next-group -次のグループに移動します (@code{gnus-group-next-group})。 - -@item p -@kindex p (Browse) -@findex gnus-group-prev-group -一つ前のグループに移動します (@code{gnus-group-prev-group})。 - -@item SPACE -@kindex SPACE (Browse) -@findex gnus-browse-read-group -現在のグループに入り、最初に記事を表示します -(@code{gnus-browse-read-group})。 - -@item RET -@kindex RET (Browse) -@findex gnus-browse-select-group -現在のグループに入ります (@code{gnus-browse-select-group})。 - -@item u -@kindex u (Browse) -@findex gnus-browse-unsubscribe-current-group -現在のグループを非購読にする、つまりこの場合は購読することになるのだけれ -ど (@code{gnus-browse-unsubscribe-current-group})。 - -@item l -@itemx q -@kindex q (Browse) -@kindex l (Browse) -@findex gnus-browse-exit -閲覧モード (browse mode) を終了します (@code{gnus-browse-exit})。 - -@item ? -@kindex ? (Browse) -@findex gnus-browse-describe-briefly -閲覧モード (browse mode) を簡単に説明します(まあ、大して説明することもな -いんだけどさ)(@code{gnus-browse-describe-briefly})。 -@end table - - -@node Exiting gnus -@section Gnus の終了 -@cindex exiting gnus - -そう、gnus は最後(サイコー)です(訳注: く、苦しい。原文は ``Yes, gnus -is ex(c)iting.'')。 - -@table @kbd -@item z -@kindex z (Group) -@findex gnus-group-suspend -Gnus を中断します (@code{gnus-group-suspend})。これは gnus を実際には終了 -させず、グループバッファ以外の全てのバッファを消すだけです。僕はこれのうれ -しさがよくわかんないんだけど、誰か分かる人いる? - -@item q -@kindex q (Group) -@findex gnus-group-exit -@c @icon{gnus-group-exit} -Gnus を終了します(@code{gnus-group-exit})。 - -@item Q -@kindex Q (Group) -@findex gnus-group-quit -@file{.newsrc} ファイルをセーブせずに gnus を終了します -(@code{gnus-group-quit})。ドリブルファイルはセーブされますけど -(@pxref{Auto Save})。 -@end table - -@vindex gnus-exit-gnus-hook -@vindex gnus-suspend-gnus-hook -Gnus を中断するときは @code{gnus-suspend-gnus-hook} が呼び出されます。 -Gnusを終了するときは @code{gnus-exit-gnus-hook} が呼び出され、さらに -gnus を終了するときの最後として @code{gnus-after-exiting-gnus-hook} が呼び -出されます。 - -@findex gnus-unload -@cindex unloading -もし gnus とそれに関連するものを完全に処分したいのであれば、 -@code{gnus-unload} コマンドが使えます。このコマンドは、メタ変数をカスタマ -イズしようとしているときにも便利です。 - -Note: - -@quotation -ミス Lisa Cannifax は英語の授業中、後ろに座っている少年が彼女の -プラスティックの椅子の背越しに、鉛筆で繰り返し線を描くのにつられ -て、足がしびれて重くなり、意識が朦朧としてきました。 -@end quotation - - -@node Group Topics -@section Group Topics -@cindex topics - -もしあなたがたーくさんのグループを読んでいるのであれば、グループをトピック -毎に階層分けできると便利でしょう。Emacs のグループをこっちへ、セックスのグ -ループをあっちへ、で、残りを(え?グループが2つくらいしかないの?)邪魔に -ならないようにその他のセクションに入れましょう。あるいは Emacs セックスの -グループを Emacs グループ、セックスグループのどちらかの副トピックとするこ -とさえもできます――あるいは両方に!すんごいでしょう! - -@iftex -@iflatex -\gnusfigure{Group Topics}{400}{ -\put(75,50){\epsfig{figure=tmp/group-topic.ps,height=9cm}} -} -@end iflatex -@end iftex - -これが例です: - -@example -Gnus - Emacs -- こいつはすげーぜ! - 3: comp.emacs - 2: alt.religion.emacs - えっちな Emacs - 452: alt.sex.emacs - 0: comp.talk.emacs.recovery - その他 - 8: comp.binaries.fractals - 13: comp.sources.unix -@end example - -@findex gnus-topic-mode -@kindex t (Group) -この@emph{素晴らしい}機能を使うには、@code{gnus-topic} マイナーモードを -(何と!)単にスイッチオンするだけ――グループバッファで、@kbd{t} を押して -ください(これはトグルコマンドです)。 - -さあやってみよう。とにかく試してみて。君が戻ってくるまで、僕はここで待って -るからさ。ララ、タララン…ん、いい曲だね、これ…ラ、ラ、ラ…え? 戻ってきた? -よし、じゃ次は @kbd{l} を押してみて。ほら。これで全てのグループが -@samp{misc} の下に表示されました。興奮してクラクラしてこない?アツくって、 -いまいましいくらいでしょ? - -これをずっと有効にしたければ、グループモードのフックにこのマイナーモード -を追加してください。 - -@lisp -(add-hook 'gnus-group-mode-hook 'gnus-topic-mode) -@end lisp - -@menu -* Topic Variables:: Lisp でトピックをカスタマイズする方法。 -* Topic Commands:: 超簡単対話型命令。 -* Topic Sorting:: トピック毎別々に並べ替える。 -* Topic Topology:: 全世界の地図。 -* Topic Parameters:: あるトピックの全てのグループに適用されるパラメータ。 -@end menu - - -@node Topic Variables -@subsection トピック変数 -@cindex topic variables - -さて、トピックを選ぶと、トピックは折り畳まれます。これ、とっても -ステキだと思うんだけど。 - -@vindex gnus-topic-line-format -トピック行は、@code{gnus-topic-line-format} 変数の値に従って作成されます -(@pxref{Formatting Variables})。有効な要素は、 - -@table @samp -@item i -字下げ。 -@item n -トピック名。 -@item v -見えるかどうか。 -@item l -レベル。 -@item g -トピック中のグループの数。 -@item a -トピック中の未読記事の数。 -@item A -トピックと全ての副トピックの未読記事の数。 -@end table - -@vindex gnus-topic-indent-level -各副トピック(と副トピック内のグループ)は、トピックレベル数の -@code{gnus-topic-indent-level} 倍の空白分の字下げが行われます。デフォルト -は 2 です。 - -@vindex gnus-topic-mode-hook -@code{gnus-topic-mode-hook} はトピックマイナーモードバッファで呼び出され -ます。 - -@vindex gnus-topic-display-empty-topics -@code{gnus-topic-display-empty-topics} はトピックの中に未読記事 -が無い場合でもそのトピックを表示するようにします。デフォルトは -@code{t} です。 - -@node Topic Commands -@subsection トピック命令 -@cindex topic commands - -トピックマイナーモードが有効であるときは、@kbd{T} サブマップが新 -しく利用できるようになります。さらに標準キーの中でも、定義がちょっ -と変わるものが少しあります。 - -@table @kbd - -@item T n -@kindex T n (Topic) -@findex gnus-topic-create-topic -新しいトピックの名前をプロンプト入力し、それを作成します -(@code{gnus-topic-create-topic})。 - -@item T m -@kindex T m (Topic) -@findex gnus-topic-move-group -現在のグループを、どこか他のトピックに移動させます -(@code{gnus-topic-move-group})。このコマンドはプロセスマーク・プ -レフィックスルールに従います (@pxref{Process/Prefix})。 - -@item T c -@kindex T c (Topic) -@findex gnus-topic-copy-group -現在のグループを、どこか他のトピックにコピーします -(@code{gnus-topic-copy-group})。このコマンドはプロセスマーク・プ -レフィックスルールに従います (@pxref{Process/Prefix})。 - -@item T D -@kindex T D (Topic) -@findex gnus-topic-remove-group -グループを現在のトピックから削除します -(@code{gnus-topic-remove-group})。このコマンドはプロセスマーク・ -プレフィックスルールに従います (@pxref{Process/Prefix})。 - -@item T M -@kindex T M (Topic) -@findex gnus-topic-move-matching -正規表現にマッチする全てのグループを、あるトピックに移動させます -(@code{gnus-topic-move-matching})。 - -@item T C -@kindex T C (Topic) -@findex gnus-topic-copy-matching -正規表現にマッチする全てのグループを、あるトピックにコピーします -(@code{gnus-topic-copy-matching})。 - -@item T h -@kindex T h (Topic) -@findex gnus-topic-toggle-display-empty-topics -空のトピックの表示・非表示を切り替えます -(@code{gnus-topic-toggle-display-empty-topics})。 - -@item T # -@kindex T # (Topic) -@findex gnus-topic-mark-topic -現在のトピックにあるグループ全てにプロセスマークをつけます -(@code{gnus-topic-mark-topic})。 - -@item T M-# -@kindex T M-# (Topic) -@findex gnus-topic-unmark-topic -現在のトピックにある全てのグループからプロセスマークを消します -(@code{gnus-topic-unmark-topic})。 - -@item RET -@kindex RET (Topic) -@findex gnus-topic-select-group -@itemx SPACE -グループを選択するか、あるいはトピックを折りたたみます -(@code{gnus-topic-select-group})。グループの上でこのコマンドを実行すると、 -通常通りそのグループに入ります。トピック行の上で行うと、そのトピックは(既 -に表示されているときは)折りたたまれるか、(既に折りたたまれているときは) -展開されます。つまりトピックに対してはこれはトグルコマンドです。さらに、数 -字プレフィックスを与えると、そのレベル(とそれよりも小さいレベル)のグルー -プが表示されます。 - -@item T TAB -@kindex T TAB (Topic) -@findex gnus-topic-indent -現在のトピックの『字下げ』を行い、その前のトピックの副トピックにします -(@code{gnus-topic-indent})。プレフィックスを与えると、反対にそのトピックの -字下げを戻します。 - -@item C-k -@kindex C-k (Topic) -@findex gnus-topic-kill-group -グループあるいはトピックを kill します -(@code{gnus-topic-kill-group})。トピック内にあったグループも全て、 -トピックと一緒に削除されます。 - -@item C-y -@kindex C-y (Topic) -@findex gnus-topic-yank-group -直前の kill されたグループあるいはトピックを yank します -(@code{gnus-topic-yank-group})。全てのトピックは、全てのグループ -の前に yank されることに気をつけてください。 - -@item T r -@kindex T r (Topic) -@findex gnus-topic-rename -トピックの名前を変更する (@code{gnus-topic-rename})。 - -@item T DEL -@kindex T DEL (Topic) -@findex gnus-topic-delete -空のトピックを削除する (@code{gnus-topic-delete})。 - -@item A T -@kindex A T (Topic) -@findex gnus-topic-list-active -Gnus が知っているトピック化されたグループを全て表示します -(@code{gnus-topic-list-active})。 - -@item G p -@kindex G p (Topic) -@findex gnus-topic-edit-parameters -@cindex group parameters -@cindex topic parameters -@cindex parameters -トピックパラメータを修正します (@code{gnus-topic-edit-parameters})。 -@xref{Topic Parameters}. - -@end table - - -@node Topic Sorting -@subsection トピックの並べ替え -@cindex topic sorting - -以下に示す命令で、各トピック毎に別々にグループを並べ替えることができます: - - -@table @kbd -@item T S a -@kindex T S a (Topic) -@findex gnus-topic-sort-groups-by-alphabet -現在のトピックをグループ名のアルファベット順に並べ替えます -(@code{gnus-topic-sort-groups-by-alphabet})。 - -@item T S u -@kindex T S u (Topic) -@findex gnus-topic-sort-groups-by-unread -現在のトピックを未読記事の数で並べ替えます -(@code{gnus-topic-sort-groups-by-unread})。 - -@item T S l -@kindex T S l (Topic) -@findex gnus-topic-sort-groups-by-level -現在のトピックをグループのレベルで並べ替えます -(@code{gnus-topic-sort-groups-by-level})。 - -@item T S v -@kindex T S v (Topic) -@findex gnus-topic-sort-groups-by-score -現在のトピックをグループのスコアで並べ替えます -(@code{gnus-topic-sort-groups-by-score})。@xref{Group Score}. - -@item T S r -@kindex T S r (Topic) -@findex gnus-topic-sort-groups-by-rank -現在のトピックをグループのランクで並べ替えます -(@code{gnus-topic-sort-groups-by-rank})。@xref{Group Score}. - -@item T S m -@kindex T S m (Topic) -@findex gnus-topic-sort-groups-by-method -現在のトピックをバックエンドの名前でアルファベット順に並べ替えます -(@code{gnus-topic-sort-groups-by-method})。 - -@end table - -グループのソートについてのさらなる情報は @xref{Sorting Groups} を参照して -ください。 - - -@node Topic Topology -@subsection トピックの位相構造 -@cindex topic topology -@cindex topology - -それでは、グループバッファの例を見ていきましょう。 - -@example -Gnus - Emacs -- こいつはすげーぜ! - 3: comp.emacs - 2: alt.religion.emacs - えっちな Emacs - 452: alt.sex.emacs - 0: comp.talk.emacs.recovery - その他 - 8: comp.binaries.fractals - 13: comp.sources.unix -@end example - -つまり、ここでは一つのトップレベルのトピック (@samp{Gnus}) があり、その下 -に2つのトピックがあり、そのうちの一方の副トピック中に一つ副トピックがあり -ます(トップレベルトピックは常に一つしかありません)。この構造は、以下のよ -うに表現できます: - -@lisp -(("Gnus" visible) - (("Emacs -- こいつはすげーぜ!" visible) - (("えっちな Emacs" visible))) - (("その他" visible))) -@end lisp - -@vindex gnus-topic-topology -これは実に、上記の表示を行うための、変数 @code{gnus-topic-topology} の値そ -のものなのです。この変数は@file{.newsrc.eld} ファイルに保存され、手でいじ -くり回してはいけません――本当にやりたいときは別ですが。この変数は -@file{.newsrc.eld} ファイルから読み込まれるので、その他のスタートアップファ -イルの設定には全く影響を与えません。 - -この構造は、どのトピックがどのトピックの副トピックであるかと、どのトピック -が表示されているかを示しています。現在は二つの設定値――@code{visible} と -@code{invisible} が許されています。 - - -@node Topic Parameters -@subsection トピックパラメータ -@cindex topic parameters - -トピック内の全てのグループはグループパラメータを、その親(と先祖)のトピッ -クパラメータから継承します。グループパラメータとして正しいものは全て、トピッ -クパラメータとしても正しいものです(@pxref{Group Parameters})。 - -グループパラメータは(もちろん)トピックパラメータよりも優先され、副トピッ -クのトピックパラメータは親トピックのトピックパラメータよりも優先されます。 -分かるよね。ごく普通の継承ルールです(ルール (@dfn{Rules}) はここでは名詞 -であって、動詞の「線を引く」ではありません。このルールには反対したくなるか -も知れないけど、それはご自由に)。 - -@example -Gnus - Emacs - 3: comp.emacs - 2: alt.religion.emacs - 452: alt.sex.emacs - 息抜き - 452: alt.sex.emacs - 0: comp.talk.emacs.recovery - その他 - 8: comp.binaries.fractals - 13: comp.sources.unix - 452: alt.sex.emacs -@end example - -@samp{Emacs} トピックはトピックパラメータ @code{(score-file -. "emacs.SCORE")} を持っています。@samp{息抜き} トピックはトピッ -クパラメータ @code{(score-file . "relief.SCORE")} を持ち、 -@samp{その他} トピックはトピックパラメータ @code{(score-file -. "emacs.SCORE")} を持っています。さらに、 -@samp{alt.religion.emacs} はグループパラメータ @code{(score-file -. "religion.SCORE")} を持っています。 - -さて、ここで @samp{息抜き} トピックの @samp{alt.sex.emacs} グルー -プに入ったとき、@file{relief.SCORE} が基本スコアファイルとなりま -す。もし @samp{Emacs} トピックの同じグループに入ると、 -@file{emacs.SCORE} が基本スコアファイルになるでしょう。 -@samp{alt.religion.emacs} グループに入れば、 -@file{religion.SCORE} が基本スコアファイルになるでしょう。 - -これってとっても簡単で自明のことのように見えるでしょ?まあ、その通りです。 -ですが問題がある場合もあります。特に@code{total-expiry} パラメータに関して -です。例えばあるメールグループを二つのトピックの中に、一方は -@code{total-expiry} ありで、もう一方はそれなしで持っているとしましょう。こ -こで @kbd{M-x gnus-expire-all-expirable-groups} を実行すると、何が起こるで -しょうか?Gnus は、あなたがどちらのトピックから記事をエクスパイアしたいの -かを知る方法がないため、最悪の事態が発生するかもしれません。実際、私はこの -とき何が起こるのかは「未定義 @dfn{undefined}」である、とここに宣言します。 -この手のことをやりたい場合には十分注意しなければなりません。 - - -@node Misc Group Stuff -@section その他のグループ関連 - -@menu -* Scanning New Messages:: Gnus に新しいメッセージが到着したかどうかを聞く。 -* Group Information:: グループと gnus に関する情報とヘルプ。 -* Group Timestamp:: Gnus に最後にいつグループを読んだかを記録させる。 -* File Commands:: Gnus のファイルの読み書き。 -@end menu - -@table @kbd - -@item ^ -@kindex ^ (Group) -@findex gnus-group-enter-server-mode -サーババッファモードに入る (@code{gnus-group-enter-server-mode})。 -@xref{The Server Buffer}。 - -@item a -@kindex a (Group) -@findex gnus-group-post-news -あるグループに記事を投稿する (@code{gnus-group-post-news})。プレ -フィックスを与えると、現在のグループ名がデフォルトとして使用されます。 - -@item m -@kindex m (Group) -@findex gnus-group-mail -メールをどこかに送る (@code{gnus-group-mail})。 - -@end table - -以下はグループバッファのための変数です: - -@table @code - -@item gnus-group-mode-hook -@vindex gnus-group-mode-hook -グループバッファが作成された時に呼び出されます。 - -@item gnus-group-prepare-hook -@vindex gnus-group-prepare-hook -グループバッファが生成されたあとに呼び出されます。これはバッファを何か変な、 -自然じゃない方法で修正したいときに使われるかもしれません。 - -@item gnus-group-prepared-hook -@vindex gnus-group-prepare-hook -グループバッファが生成された後の一番最後に呼び出されます。例えば -ポイントをどこかに移動させたいときなどに使えます。 - -@item gnus-permanently-visible-groups -@vindex gnus-permanently-visible-groups -この正規表現にマッチするグループは、それが空であるかどうかに関わ -らず、常にグループバッファに表示されます。 - -@end table - - -@node Scanning New Messages -@subsection 新着メッセージを探す -@cindex new messages -@cindex scanning new news - -@table @kbd - -@item g -@kindex g (Group) -@findex gnus-group-get-new-news -@c @icon{gnus-group-get-new-news} -サーバの新着記事をチェックします。数字プレフィックスを使用すると、この命令 -は引数 @var{arg} かそれより小さいレベルのグループのみをチェックします -(@code{gnus-group-get-new-news})。数字以外のプレフィックスを与えると、この -命令はそのバックエンドからアクティブファイルを強制的に全部読み直します。 - -@item M-g -@kindex M-g (Group) -@findex gnus-group-get-new-news-this-group -@vindex gnus-goto-next-group-when-activating -@c @icon{gnus-group-get-new-news-this-group} -現在のグループに新着記事があるかどうかをチェックします -(@code{gnus-group-get-new-news-this-group})。 -@code{gnus-goto-next-group-when-activating} はこの命令が次のグループ位置へ -移動するかどうかを決めます。デフォルトは @code{t} です。 - -@findex gnus-activate-all-groups -@cindex activating groups -@item C-c M-g -@kindex C-c M-g (Group) -無条件に全てのグループを起動します (@code{gnus-activate-all-groups})。 - -@item R -@kindex R (Group) -@cindex restarting -@findex gnus-group-restart -Gnus をリスタートします (@code{gnus-group-restart})。これは -@file{.newsrc} ファイルをセーブし、全てのサーバの接続を閉じ、全ての gnus -ランタイム変数をクリアした後、gnus をもう一度最初から開始します。 - -@end table - -@vindex gnus-get-new-news-hook -@code{gnus-get-new-news-hook} は新着ニューズをチェックする直前に -実行されます。 - -@vindex gnus-after-getting-new-news-hook -@code{gnus-after-getting-new-news-hook} 新着ニューズをチェックし -た後に実行されます。 - - -@node Group Information -@subsection グループ情報 -@cindex group information -@cindex information on groups - -@table @kbd - - -@item H f -@kindex H f (Group) -@findex gnus-group-fetch-faq -@vindex gnus-group-faq-directory -@cindex FAQ -@cindex ange-ftp -現在のグループの FAQ を取得しようとします(@code{gnus-group-fetch-faq})。 -Gnus は FAQ を@code{gnus-group-faq-directory} から取得しようとします。これ -は通常リモートマシン上のディレクトリです。この変数はディレクトリのリストで -あっても構いません。この場合、このコマンドにプレフィックスを与えることでい -くつかのサイトの中から選ぶことができます。ファイルの取得には -@code{ange-ftp}(または @code{efs})が使用されます。 - -もし最初のサイトからの取得が失敗した場合、gnus は -@code{gnus-group-faq-directory} の値を全て、一つ一つオープンしてみようとし -ます。 - -@item H d -@itemx C-c C-d -@c @icon{gnus-group-describe-group} -@kindex H d (Group) -@kindex C-c C-d (Group) -@cindex describing groups -@cindex group description -@findex gnus-group-describe-group -現在のグループの説明を表示する -(@code{gnus-group-describe-group})。プレフィックスを与えると、説 -明文をサーバから強制的に再読み込みします。 - -@item M-d -@kindex M-d (Group) -@findex gnus-group-describe-all-groups -全てのグループの説明を表示します -(@code{gnus-group-describe-all-groups})。プレフィックスを与える -と、説明文ファイルをサーバから強制的に再読み込みします。 - -@item H v -@itemx V -@kindex V (Group) -@kindex H v (Group) -@cindex version -@findex gnus-version -現在の gnus のバージョン番号を表示します (@code{gnus-version})。 - -@item ? -@kindex ? (Group) -@findex gnus-group-describe-briefly -とても短いヘルプメッセージを与えます (@code{gnus-group-describe-briefly})。 - -@item C-c C-i -@kindex C-c C-i (Group) -@cindex info -@cindex manual -@findex gnus-info-find-node -Gnus の info ノードに移動します (@code{gnus-info-find-node}).。 - -@end table - - -@node Group Timestamp -@subsection グループの日付 -@cindex timestamps -@cindex group timestamps - -Gnus に、あなたが最後にいつグループを読んだかを記録させると便利 -かもしれません。この活動を始めさせるには、 -@code{gnus-group-set-timestamp}を @code{gnus-select-group-hook} -に追加してください。 - -@lisp -(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp) -@end lisp - -これを行った後、あなたがグループに入るたびにそれが記録されます。 - -この情報はさまざまな方法で表示できます――もっとも簡単なのは、グループ行フォー -マットで @samp{%d} 指定を使う方法です: - -@lisp -(setq gnus-group-line-format - "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n") -@end lisp - -この結果として、各行は以下のように表示されます: - -@example -* 0: mail.ding 19961002T012943 - 0: custom 19961002T012713 -@end example - -見て分かるとおり、日付はコンパクトな ISO 8601 形式で表示されます。 -これではちょっとあんまりなので、以下のような感じにすると日付だけ -を表示できます。 - -@lisp -(setq gnus-group-line-format - "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n") -@end lisp - - -@node File Commands -@subsection ファイル命令 -@cindex file commands - -@table @kbd - -@item r -@kindex r (Group) -@findex gnus-group-read-init-file -@vindex gnus-init-file -@cindex reading init file -初期化ファイルの再読み込みを行う (@code{gnus-init-file}、このデ -フォルトは @file{~/.gnus}) (@code{gnus-group-read-init-file})。 - -@item s -@kindex s (Group) -@findex gnus-group-save-newsrc -@cindex saving .newsrc -@file{.newsrc.eld}ファイル(と、もしそうしたければ@file{.newsrc} ファイル) -をセーブする(@code{gnus-group-save-newsrc})。 - -@c @item Z -@c @kindex Z (Group) -@c @findex gnus-group-clear-dribble -@c ドリブルファイルをクリアする -@c (@code{gnus-group-clear-dribble})。 - -@end table - - -@node The Summary Buffer -@chapter 概略バッファ -@cindex summary buffer - -概略バッファ (summary buffer) ではそれぞれの記事が一行で表示されます。そ -の中を動き回り、記事を読み、投稿し、返答をすることができます。 - -概略バッファに移る一番普通の方法は、グループバッファでグループを選択する -ことです (@pxref{Selecting a Group})。 - -概略バッファは望むだけたくさん開いた状態にしておくことができます。 - -@menu -* Summary Buffer Format:: 概略バッファの外観を決定する。 -* Summary Maneuvering:: 概略バッファを動き回る。 -* Choosing Articles:: 記事を読む。 -* Paging the Article:: 読んでいる記事をスクロールする。 -* Reply Followup and Post:: 記事を投稿する。 -* Canceling and Superseding:: 『あぁ、あんなふうに言うんじゃなかった。』 -* Marking Articles:: 記事に既読や期限切れ削除可能等の印を付ける。 -* Limiting:: 概略バッファに制限を加えることができる。 -* Threading:: スレッドがどのように作られるか。 -* Sorting:: スレッドと記事がどのように並びかえられるか。 -* Asynchronous Fetching:: Gnus は記事を先に取得することができる。 -* Article Caching:: キャッシュに記事を貯めておける。 -* Persistent Articles:: 記事を期限切れ消去しなくさせる。 -* Article Backlog:: 既に読んだ記事を残しておく。 -* Saving Articles:: 記事の保存をカスタマイズする方法。 -* Decoding Articles:: Gnus は一連の (uu)encode された記事を扱える。 -* Article Treatment:: 記事バッファはお望みどおりに目茶苦茶にできる。 -* Article Commands:: 記事バッファでいろいろなことをする。 -* Summary Sorting:: いろいろな方法で概略バッファを並べ替える。 -* Finding the Parent:: 子記事に援助が無いって? 親記事を取得しなさい。 -* Alternative Approaches:: ディフォルトでない概略を使って読む。 -* Tree Display:: もっと視覚的なスレッドの表示。 -* Mail Group Commands:: いくつかの命令はメールグループだけで使うことができる。 -* Various Summary Stuff:: 他のどの場所にも合わなかったもの。 -* Exiting the Summary Buffer:: グループバッファに戻る。 -* Crosspost Handling:: クロスポストされた記事がどのように扱われるか。 -* Duplicate Suppression:: クロスポストの扱いに失敗したときの代替手段。 -@end menu - - -@node Summary Buffer Format -@section 概略バッファの様式 -@cindex summary buffer format - -@iftex -@iflatex -\gnusfigure{The Summary Buffer}{180}{ -\put(0,0){\epsfig{figure=tmp/summary.ps,width=7.5cm}} -\put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-article.ps,width=7.5cm}}} -} -@end iflatex -@end iftex - -@menu -* Summary Buffer Lines:: 概略バッファがどのように見えるべきかを指定できる。 -* Summary Buffer Mode Line:: モード行の見え方を決められる。 -* Summary Highlighting:: 概略バッファをきれいで素敵にする。 -@end menu - -@findex std11-extract-address-components -@findex mail-extract-address-components -@findex gnus-extract-address-components -@vindex gnus-extract-address-components -Gnus は変数 @code{gnus-extract-address-components} の値を @code{From} ヘッ -ダーの名前とアドレスの部分を手に入れるための関数として使います。すでに定義 -されている関数が3つ存在します:@code{gnus-extract-address-components} は -ディフォルトですが、とても簡単に割り切った解決法で、非常に速く動作します。 -@code{mail-extract-address-components} は良く動作しますが、やや遅くなりま -す。そして、@code{std11-extract-address-components} はとても良く動作します -が、遅くなります。ディフォルトの関数は 5% の割合で間違って答えます。もしこ -れに我慢ならないのであれば、他の関数を代わりに使うことができます。 - -@vindex gnus-summary-same-subject -@code{gnus-summary-same-subject} は今読んでいる記事が、その前の記事と同 -じ表題 (subject) であることを示す文字列です。この文字列は仕様がこれを要 -求するときに使われます。ディフォルトでは @code{""} です。 - - -@node Summary Buffer Lines -@subsection 概略バッファの行 - -@vindex gnus-summary-line-format -変数 @code{gnus-summary-line-format} の値を変えることによって、概略バッ -ファでの行の様式 (format) を変更することができます。いくつかの拡張 -(@pxref{Formatting Variables}) を除いて、普通の @code{format} 文字列と同 -じように動作します。 - -ディフォルトの文字列は @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n} です。 - -以下の様式指示文字を使うことができます: - -@table @samp -@item N -記事数。 -@item S -表題の文字列。 -@item s -スレッド (thread) の基記事であるときか直前の記事が違う表題のときはその題 -名で、それ以外は @code{gnus-summary-same-subject}。 -(@code{gnus-summary-same-subject} のディフォルトの値は @code{""}。) -@item F -完全な @code{From} 欄。 -@item n -名前(@code{From} 欄より)。 -@item a -名前(@code{From} 欄より)。これと @code{n} との違いは、これは変数 -@code{gnus-extract-address-components} で指定されている関数を使って名前を -取得することです。この方が遅いですが、おそらくより完全に近いでしょう。 -@item A -名前(@code{From} 欄より)。これは @code{a} と同じように動作します。 -@item L -記事の行数。 -@item c -記事の文字数。 -@item I -スレッドのレベルによる字下げ (@pxref{Customizing Threading})。 -@item T -記事が本記事であれば何も表示せず、そうでない場合はたくさんの空白です(後の -ものをすべて画面の外に追い出してしまいます)。 -@item [ -開き括弧。普通は @samp{[} ですが、養子記事には @samp{<} にすることができ -ます (@pxref{Customizing Threading})。 -@item ] -閉じ括弧。普通は @samp{[} ですが、養子記事には @samp{<} にすることができ -ます。 -@item > -それぞれのスレッドのレベルに対して一つの空白。 -@item < -二十引くスレッドレベルの空白。 -@item U -未読。 - -@item R -この紛らわしい名前指定子は @dfn{secondary mark} によって定義されます。この -マークは記事が既に返答済みのものか、キャッシュされたものか、あるいは保存さ -れたものかを表します。 - -@item i -数字としてのスコア (@pxref{Scoring})。 -@item z -@vindex gnus-summary-zcore-fuzz -これは、zcore でディフォルトのレベルよりも上であれば @samp{+} で、ディフォ -ルトのレベルよりも下であれば @samp{-} です。 -@code{gnus-summary-default-zcore}との差が@code{gnus-summary-zcore-fuzz} -よりも小さいと、この仕様は使われません。 -@item V -スレッド全体のスコア。 -@item x -@code{Xref}. -@item D -@code{日付} (@code{Date})。 -@item d -@code{DD-MM}様式による@code{日付}。 -@item o -@var{YYYYMMDD}@code{T}@var{HHMMSS}様式による@code{日付}。 -@item M -@code{Message-ID}. -@item r -@code{References}. -@item t -現在の副スレッドの記事の数。この仕様を使うと概略バッファの生成が幾分遅く -なります。 -@item e -記事に子記事があると、@samp{=} (@code{gnus-not-empty-thread-mark}) が表 -示されます。 -@item P -行数。 -@item O -ダウンロードの印。 -@item u -利用者定義指定子。フォーマット文字列の中の次の文字が英字である必要がありま -す。これにより gnus は関数 @code{gnus-user-format-function-}@samp{X} を呼 -び出しますが、ここで @samp{X} は @samp{%U} の次の文字です。関数には現在の -記事のヘッダーが引数として渡されます。関数は文字列を返し、他の概略指定と同 -様に概略に挿入されます。 -@end table - -@samp{%U}(状態)、@samp{%R}(返答済み)、@samp{%z} (zcore) の扱いには気を -付ける必要があります。効率のために、gnus はこれらの文字がどの桁に現れるか -を計算し、『ハード・コード』します。これは、可変長の仕様の後では、これらは -意味を持たないということです。まぁ、さすがに逮捕はされないでしょうが、概略 -バッファは変になります。それでも十分悲しいでしょうけど。 - -賢い選択はこれらの指定をできるだけ左に持ってくることです。(でも、そうい -うことはすべてに当てはまるのではないでしょうか。閑話休題。) - -この制限は将来の版では無くなるかも知れません。 - - -@node Summary Buffer Mode Line -@subsection 概略バッファのモード行 - -@vindex gnus-summary-mode-line-format -概略のモード行の様式も変更することができます。 -@code{gnus-summary-mode-line-format} を何でも好きなものに変更してくださ -い。ディフォルトは @samp{Gnus: %%b [%A] %Z} です。 - -以下があなたが遊ぶことのできるそれぞれの要素です: - -@table @samp -@item G -グループ名。 -@item p -接頭語を取り除いた名前。 -@item A -現在の記事番号。 -@item V -Gnus バージョン。 -@item U -そのグループでの未読記事の数。 -@item e -概略バッファに表示されていない未読記事の数。 -@item Z -未読と未選択の記事の数とともに表される文字列で、未読かつ未選択の記事があ -る場合は @samp{<%U(+%e) more>} で、未読記事のみの場合は @samp{<%U more>} -です。 -@item g -短縮グループ名。例えば、@samp{rec.arts.anime} は @samp{r.a.anime} に短縮 -されます。 -@item S -現在の記事の表題。 -@item u -利用者定義の仕様 (@pxref{User-Defined Specs})。 -@item s -現在のスコアファイルの名前 (@pxref{Scoring})。 -@item d -保留記事の数 (@pxref{Unread Articles})。 -@item t -可視印付き記事の数 (@pxref{Unread Articles})。 -@item r -その一連の動作の間に既読として印がついた記事の数。 -@item E -スコアファイルによって抹消された記事の数。 -@end table - - -@node Summary Highlighting -@subsection 概略のハイライト - -@table @code - -@item gnus-visual-mark-article-hook -@vindex gnus-visual-mark-article-hook -このフックは記事を選択した後に実行されます。これは何らかの方法で記事をハ -イライトするように意図されています。もし @code{gnus-visual} が -@code{nil} である場合は実行されません。 - -@item gnus-summary-update-hook -@vindex gnus-summary-update-hook -このフックは概略行が変更されたときに呼ばれます。もし @code{gnus-visual} が -@code{nil} である場合は実行されません。 - -@item gnus-summary-selected-face -@vindex gnus-summary-selected-face -これは概略バッファでの現在の記事をハイライトするために使われるフェイス -(face)(もしくは、いくらかの人々が @dfn{フォント} (font) と呼ぶよ -うなもの)です。 - -@item gnus-summary-highlight -@vindex gnus-summary-highlight -概略行はこの変数にしたがってハイライトされます。この変数は要素が -@var{(FORM . FACE)} の形式のリストです。例えば、もし印付きの記事をイタリッ -ク、高いスコアの記事をボールドにしたければ、この変数を次のようにできます。 -@lisp -(((eq mark gnus-ticked-mark) . italic) - ((> score default) . bold)) -@end lisp -ご想像のとおり、もし @var{FORM} が @code{nil} でない値を返すと、 -@var{FACE} がその行に適用されます。 -@end table - - -@node Summary Maneuvering -@section 概略間の移動 -@cindex summary movement - -すべての直接移動命令は数値接頭引数を受け付け、あなたの期待によくしたがっ -て動作するでしょう。 - -これらの命令はどれも記事を選択しません。 - -@table @kbd -@item G M-n -@item M-n -@kindex M-n (概略) -@kindex G M-n (概略) -@findex gnus-summary-next-unread-subject -概略行の次の未読記事に移る (@code{gnus-summary-next-unread-subject})。 - -@item G M-p -@itemx M-p -@kindex M-p (概略) -@kindex G M-p (概略) -@findex gnus-summary-prev-unread-subject -概略行の前の未読記事に移る -(@code{gnus-summary-prev-unread-subject})。 - -@item G j -@item j -@kindex j (概略) -@kindex G j (概略) -@findex gnus-summary-goto-article -記事番号か @code{Message-ID} を尋ね、それからその記事に行く。 -(@code{gnus-summary-goto-article})。 - -@item G g -@kindex G g (概略) -@findex gnus-summary-goto-subject -記事番号か @code{Message-ID} を尋ね、それからその記事を表示すること無く、 -概略行に行く (@code{gnus-summary-goto-subject})。 -@end table - -Gnus が次のグループに移動することを確認をするために、キーを押すことを要求 -するときがあります。その時は、@kbd{C-n} と @kbd{C-p} を使って、グループバッ -ファに戻ること無く次に読むグループを探すことができます。 - -概略の移動に関連した変数: - -@table @code - -@vindex gnus-auto-select-next -@item gnus-auto-select-next -もし移動命令の一つ(@kbd{n} のような)を出し、現在の記事の後に未読が無けれ -ば、gnus は次のグループに移動することを奨めます。この変数が @code{t}で次の -グループが空であると、gnus は概略モードを終了して、グループバッファに戻り -ます。この変数が @code{t} や @code{nil} でないと、次のグループに記事があろ -うが無かろうが、gnus はそれを選択します。特別な場合として、この変数が -@code{quietly} であると、gnus は確認をせずに、次のグループを選択します。こ -の変数が @code{almost-quietly} であると、グループの一番最後の記事を読んで -いたときに限り同じことが起こります。最後に、もしこの変数が -@code{slightly-quietly} であると、命令 @kbd{Z n} は確認をせずに次のグルー -プに移ります。@pxref{Group Levels} も参照してください。 - -@item gnus-auto-select-same -@vindex gnus-auto-select-same -@code{nil} でないと、すべての移動命令は現在の記事と同じ表題の記事に移動 -しようとします。(@dfn{同じ} はここでは @dfn{大体同じ} という意味かも知 -れません。詳細は @code{gnus-summary-gather-subject-limit} を見てください -(@pxref{Customizing Threading} も参照してください)。)この変数は、スレッ -ド表示を行っているときはあまり役に立たないでしょう。 - -@item gnus-summary-check-current -@vindex gnus-summary-check-current -@code{nil} でないと、すべての『未読』移動命令は、次(もしくは前)の記事に -移動しません。その代わりに、それらは現在の記事を選びます。 - -@item gnus-auto-center-summary -@vindex gnus-auto-center-summary -@code{nil} でないと、gnus は概略バッファでのポイントを常に真中に保ちます。 -これをすると、とてもこぎれいになりますが、遅いネットワーク接続であったり、 -単にこの Emacsism でない行為を好きになれないのであれば、普通の Emacs の -スクロールにするために、この変数を @code{nil} にすることができます。これ -は概略バッファの水平方向の真中への再移動も禁止しますので、非常に長いスレッ -ドを読むときは不便かもしれません。 - -@end table - - -@node Choosing Articles -@section 記事の選択 -@cindex selecting articles - -@menu -* Choosing Commands:: 記事を選択するための命令。 -* Choosing Variables:: これらの命令に影響を及ぼす変数。 -@end menu - - -@node Choosing Commands -@subsection 命令の選択 - -以下の移動コマンドはどれも数値接頭引数を受け付けず、記事を選択し、表示しま -す。 - -@table @kbd -@item SPACE -@kindex SPACE (概略) -@findex gnus-summary-next-page -現在の記事か、それが既に読まれている場合は次の未読記事を選択します -(@code{gnus-summary-next-page})。 - -@item G n -@itemx n -@kindex n(概略) -@kindex G n(概略) -@findex gnus-summary-next-unread-article -@c @icon{gnus-summary-next-unread} -次の未読記事に移動します (@code{gnus-summary-next-unread-article})。 - -@item G p -@itemx p -@kindex p(概略) -@findex gnus-summary-prev-unread-article -@c @icon{gnus-summary-prev-unread} -前の未読記事に移動します (@code{gnus-summary-prev-unread-article})。 - -@item G N -@itemx N -@kindex N (概略) -@kindex G N (概略) -@findex gnus-summary-next-article -次の記事に移動します (@code{gnus-summary-next-article})。 - -@item G P -@itemx P -@kindex P (概略) -@kindex G P (概略) -@findex gnus-summary-prev-article -前の記事に移動します (@code{gnus-summary-prev-article})。 - -@item G C-n -@kindex G C-n(概略) -@findex gnus-summary-next-same-subject -同じ表題の次の記事に移動します (@code{gnus-summary-next-same-subject})。 - -@item G C-p -@kindex G C-p(概略) -@findex gnus-summary-prev-same-subject -同じ表題の前の記事に移動します (@code{gnus-summary-prev-same-subject})。 - -@item G f -@itemx . -@kindex G f (概略) -@kindex . (概略) -@findex gnus-summary-first-unread-article -最初の未読記事に移動します (@code{gnus-summary-first-unread-article})。 - -@item G b -@item , -@kindex G b (概略) -@kindex , (概略) -@findex gnus-summary-best-unread-article -最高スコアの記事に移動します (@code{gnus-summary-best-unread-article})。 - -@item G l -@itemx l -@kindex l (概略) -@kindex G l (概略) -@findex gnus-summary-goto-last-article -直前の記事に移動します (@code{gnus-summary-goto-last-article})。 - -@item G o -@kindex G o(概略) -@findex gnus-summary-pop-article -概略の履歴 (history) から最後の記事を一つ取り出して選択します。 -(@code{gnus-summary-pop-article})。この命令が上の命令と違うのは、@kbd{l} -が最終2つの記事の間を移動するのに対して、これは好きなだけ前の記事を履歴か -ら選び出すことができる点です。何らかのこれに関係したことは(もしこれらの命 -令をたくさん使うのであれば)、@pxref{Article Backlog} を参照してください。 -@end table - - -@node Choosing Variables -@subsection 選ぶための変数 - -記事を移動し、選択するのに関連したいくつかの変数: - -@table @code -@item gnus-auto-extended-newsgroup -@vindex gnus-auto-extend-newsgroup -この変数が @code{nil} でないと、すべての移動命令は、もしその記事が概略バッ -ファに表示されていない場合でも、前(もしくは次)の記事に移動しようとします。 -その命令の後で、gnus はサーバーから記事を取得して、記事バッファに表示しま -す。 - -@item gnus-select-article-hook -@vindex gnus-select-article-hook -このフックは記事が選択されたときに常に呼ばれます。ディフォルトでは、選択 -された記事の下に隠れているスレッドを見せるようになっています。 - -@item gnus-mark-article-hook -@vindex gnus-mark-article-hook -@findex gnus-summary-mark-unread-as-read -@findex gnus-summary-mark-read-and-unread-as-read -@findex gnus-unread-mark -このフックは記事が選択されたときに常に呼ばれます。それは記事に既読の印を付 -けるためにあります。ディフォルトの値は -@code{gnus-summary-mark-read-and-unread-as-read} で、ほとんどすべての読ん -だ記事の印を @code{gnus-read-mark} に変更します。この関数に影響されない記 -事は、可視、保留、期限切れ削除可能記事だけです。もし、未読に既読の印を付け -たいだけであれば、代わりに @code{gnus-summary-mark-unread-as-read} を使う -ことができます。それは、@code{gnus-low-score-mark} や -@code{gnus-del-mark}(などなど)の印をそのまま残します。 - -@end table - - -@node Paging the Article -@section 記事のスクロール -@cindex article scrolling - -@table @kbd - -@item SPACE -@kindex SPACE (概略) -@findex gnus-summary-next-page -@kbd{SPACE} は記事を一ページ先にスクロールします。記事の最後にいる場合は -次の記事を選択します (@code{gnus-summary-prev-page})。 - -@item DEL -@kindex DEL (概略) -@findex gnus-summary-prev-page -現在の記事を一ページ前にスクロールします (code{gnus-summary-prev-page})。 - -@item RET -@kindex RET (概略) -@findex gnus-summary-scroll-up -現在の記事を一行先にスクロールします (@code{gnus-summary-scroll-up})。 - -@item A g -@itemx g -@kindex A g (概略) -@kindex g (概略) -@findex gnus-summary-show-article -現在の記事を(再)取得します。もし接頭引数が与えられると、現在の記事を取得 -しますが、記事を扱う関数は実行しません。これは、サーバーからきたままの、 -『生の』記事を与えます。 - -@item A < -@itemx < -@kindex < (概略) -@kindex A < (概略) -@findex gnus-summary-beginning-of-article -記事の最初までスクロールします。 -(@code{gnus-summary-beginning-of-article})。 - -@item A > -@itemx > -@kindex > (概略) -@kindex A > (概略) -@findex gnus-summary-end-of-article -記事の最後までスクロールします (@code{gnus-summary-end-of-article})。 - -@item A s -@itemx s -@kindex A s (概略) -@kindex s (概略) -@findex gnus-summary-isearch-article -記事バッファでインクリメンタルサーチ (isearch) を行います -(@code{gnus-summary-isearch-article})。 - -@item h -@kindex h (概略) -@findex gnus-summary-select-article-buffer -記事バッファを選択します (@code{gnus-summary-select-article-buffer})。 - -@end table - - -@node Reply Followup and Post -@section 返答、フォローアップ、投稿 - -@menu -* Summary Mail Commands:: メールを送る。 -* Summary Post Commands:: ニューズを送る。 -@end menu - - -@node Summary Mail Commands -@subsection 概略でのメールの命令 -@cindex mail -@cindex composing mail - -メールメッセージを作成するための命令: - -@table @kbd - -@item S r -@item r -@kindex S r (概略) -@kindex r (概略) -@findex gnus-summary-reply -@c @icon{gnus-summary-mail-reply} -@c @icon{gnus-summary-reply} -現在の記事を書いた人に返答のメールを送ります (@code{gnus-summary-reply})。 - -@item S R -@itemx R -@kindex R (概略) -@kindex S R (概略) -@findex gnus-summary-reply-with-original -@c @icon{gnus-summary-reply-with-original} -現在の記事を書いた人に、本記事を含んだ返答のメールを出します -(@code{gnus-summary-reply-with-original})。この命令はプロセス/接頭引数の習 -慣を使います。 - -@item S w -@kindex S w (概略) -@findex gnus-summary-wide-reply -現在の記事を書いた人に対して、広い返答 (wide reply) をします -(@code{gnus-summary-wide-reply})。@dfn{広い返答} とはヘッダーの -@code{To}, @code{From},(もしくは @code{Reply-to}) と @code{Cc})のすべて -の人に返答をすることです。 - -@item S W -@kindex S W (概略) -@findex gnus-summary-wide-reply-with-original -現在の記事に本記事を含んだ広い返答のメールを送ります -(@code{gnus-summary-reply-with-original})。この命令はプロセス/接頭引数の -習慣を使います。 - -@item S o m -@kindex S o m (概略) -@findex gnus-summary-mail-forward -@c @icon{gnus-summary-mail-forward} -誰か他の人に現在の記事を転送します (@code{gnus-summary-mail-forward})。 -接頭引数があると、転送記事の完全なヘッダーを取り込みます。 - -@item S m -@itemx m -@kindex m (概略) -@kindex S m (概略) -@findex gnus-summary-mail-other-window -@c @icon{gnus-summary-mail-originate} -誰か他の人にメールを送ります (@code{gnus-summary-mail-other-window})。 - -@item S D b -@kindex S D b (概略) -@findex gnus-summary-resend-bounced-mail -@cindex bouncing mail -メールを送ったのに、何らかの理由(アドレスの間違い、転送の不調)で戻ってき -たときに、この命令を使って戻ってきたメールをもう一回送ることができます -(@code{gnus-summary-resend-bonced-mail})。もう一度メールを送る前にヘッダー -を編集できるように、メールバッファにそのメールが現れるでしょう。この命令に -接頭引数を与えて、戻ってきたメールが誰かへの返答であった場合、gnus はその -メールを取得して、それのヘッダーの精密調査ができるように画面に表示します。 -ま、これはとてもよく失敗しますけど。 - -@item S D r -@kindex S D r (概略) -@findex gnus-summary-resend-message -上の命令と混同しないように、@code{gnus-summary-resend-message} は現在のメッ -セージを送る先のアドレスの入力を促し、それからその場所にメールを送ります。 -メッセージのヘッダーは変更されません――しかし、@code{Resent-To}, -@code{Resent-From} 等のヘッダーが付け加えられます。これは、(おそらく)あ -なた自身を @code{To} 欄に書いた本人にもメールを送ってしまうということです。 -これは混乱を招くでしょう。ですから、もちろん、本当に 邪悪 な気分のときにだ -けこれを使うでしょう。 - -この命令は主に、あなたがいくつかのメールアカウント (account) を持ってい -て、自分自身の違ったアカウントにメールを転送したいときに用いられます。 -(もしあなたが、@code{ルート} (root) であり、@code{ポストマスター} -(postmaster) でもあり、@code{ルート} に @code{ポストマスター} へのメール -を受け取った場合は、それを @code{ポストマスター} にも再送したいと思うで -しょう。Ordnung mu,A_ sein!) - -この命令はプロセス/接頭引数の習慣に従います (@pxref{Process/Prefix})。 - -@item S O m -@kindex S O m (概略) -@findex gnus-uu-digest-mail-forward -現在の一連の記事 (@pxref{Decoding Articles}) の要約を作り、メールでその結 -果を送ります (@code{gnus-uu-digest-mail-forward})。この命令はプロセス/接頭 -引数の習慣に従います (@pxref{Process/Prefix})。 - -@item S M-c -@kindex S M-c (概略) -@findex gnus-summary-mail-crosspost-complaint -@cindex crossposting -@cindex excessive crossposting -現在の記事の書き手に、過剰クロスポストへの苦情のメールを送ります -(@code{gnus-summary-mail-crosspost-complaint})。 - -@findex gnus-crosspost-complaint -この命令は、現在 Usenet に横行している、クロスポストの世界的流行に対して -反撃を行う手段として提供されています。これは変数 -@code{gnus-crosspost-complaint} を序文にして、返答を作成します。この命令 -はプロセス/接頭引数の習慣 (@pxref{Process/Prefix}) に従い、それぞれのメー -ルを送る前に送信するかどうかの確認をします。 - -@end table - -また @pxref{(message)Header Commands} にさらなる情報があります。 - - -@node Summary Post Commands -@subsection 概略の投稿命令 -@cindex post -@cindex composing news - -ニュースの記事を投稿するための命令: - -@table @kbd -@item S p -@itemx a -@kindex a (概略) -@kindex S p (概略) -@findex gnus-summary-post-news -@c @icon{gnus-summary-post-news} -現在のグループに記事を投稿します (@code{gnus-summary-post-news})。 - -@item S f -@itemx f -@kindex f (概略) -@kindex S f (概略) -@findex gnus-summary-followup -@c @icon{gnus-summary-followup} -現在の記事のフォローアップを投稿します (@code{gnus-summary-followup})。 - -@item S F -@itemx F -@kindex S F (概略) -@kindex F (概略) -@c @icon{gnus-summary-followup-with-original} -@findex gnus-summary-followup-with-original -本記事を取り込んで、現在の記事にフォローアップをします -(@code{ggnus-summary-followup-with-original})。この命令はプロセス/接頭引数 -の習慣を用います。 - -@item S n -@kindex S n (概略) -@findex gnus-summary-followup-to-mail -メールのメッセージを受け取っていたとしても、本記事を引用して、現在の記事 -のフォローアップをニューズに投稿します -(@code{gnus-summary-followup-to-mail-with-original})。 -この命令はプロセス/接頭引数の習慣を用います。 - -@item S N -@kindex S N (Summary) -@findex gnus-summary-followup-to-mail-with-original -Post a followup to the current article via news, even if you got the -message through mail and include the original message -(@code{gnus-summary-followup-to-mail-with-original}). -この命令はプロセス/接頭引数の習慣を用います。 - -@item S o p -@kindex S o p (概略) -@findex gnus-summary-post-forward -現在の記事をニューズグループに転送します -(@code{gnus-summary-post-forward})。接頭引数が与えられたときは、転送記事 -のヘッダーを完全に取り込みます。 - -@item S O p -@kindex S O p (概略) -@findex gnus-uu-digest-summary-post-forward -@cindex digests -@cindex making digests -現在の一連の記事を要約して、その結果をニューズグループに送ります -(@code{gnus-uu-digest-mail-forward})。この命令はプロセス/接頭引数の習慣 -を用います。 - -@item S u -@kindex S u (概略) -@findex gnus-uu-post-news -@c @icon{gnus-uu-post-news} -ファイルを Uuencode し、分割して、組にして投稿します -(@code{gnus-uu-post-news})。(@pxref{Uuencoding and Posting})。 -@end table - -また @pxref{(message)Header Commands} にさらなる情報があります。 - - -@node Canceling and Superseding -@section 記事を取り消す -@cindex canceling articles -@cindex superseding articles - -何かを書いた後で、本当に、本当に、ほ ん と う にそれを投稿していなければ -なぁと思ったことはありませんか。 - -えーと、メールは取り消すことはできないのですが、ニューズの投稿は取り消す -ことができます。 - -@findex gnus-summary-cancel-article -@kindex C (概略) -@c @icon{gnus-summary-cancel-article} -取り消したい記事を見つけてください(取り消すことができるのは自分の記事だけ -です。変なことは試さないでください)。それから、 @kbd{C} か @kbd{S c}を押 -してください (@code{gnus-summary-cancel-article})。あなたの記事が取り消さ -れます――世界中の機械があなたの記事を取り消します。この命令はプロセス/接 -頭引数の習慣を用います (@pxref{Process/Prefix})。 - -しかし、注意してほしいのはすべてのサイト (site) が取り消しを扱っているわ -けではないことです。ですから、たいていのサイトが問題の記事を取り消しても、 -あちこちであなたの記事は生き残るかもしれません。 - -Gnus は、取り消すときに『現在』の選択方法を使います。標準の投稿方法を使い -たいのであれば、文字接頭引数 @samp{a} を使ってください(@pxref{Symbolic -Prefixes})。 - -もし何か間違いをしたのに気付いて、訂正をしたいのであれば、@dfn{代替} -(@dfn{superseding}) 記事を投稿して本記事を置き換えることができます。 - -@findex gnus-summary-supersede-article -@kindex S (概略) -本記事のところへ移動して、@kbd{S s} を押してください -(@code{gnus-summary-supersede-article})。普通の方法でそれを送る前に、記事 -を好きなように編集することができます。代替に関しても、取り消しと同じことが -当てはまります。こちらの方がもっとよく当てはまるかもしれません:いくつかの -サイトは代替を受け付けません。これらのサイトでは、あなたがほとんど同じ記事 -を2回投稿したようになります。 - -もしさっき記事を投稿したばかりですぐに変更したくなた場合、記事が最初にあ -なたのサイトに現れる前に取り消し/代替をするための巧妙な手段があります。 -まず、投稿バッファ(@code{*sent ... *} のようになっています)に戻ります。 -そこにはあなたがちょうど投稿した記事があり、すべてのヘッダーがそのままあ -ります。それらの中の @code{Message-ID} という語のところを変更することに -よって @code{Message-ID} ヘッダーを @code{Cancel} もしくは -@code{Supersedes} に変更してください。 - -ちょっと覚えておいてください:`supersede'(代替)という語の中に `c' は無い -ということを。 - - -@node Marking Articles -@section 記事に印を付ける -@cindex article marking -@cindex article ticking -@cindex marks - -記事に付けられる印はいくつかあります。 - -記事の @dfn{購読度}(おぉ、ニート・キーノ新語句だ!)を決定する印がありま -す。英字の印は一般的には@dfn{既読}を意味し、英字でない文字は一般的に -@dfn{未読}を意味します。 - -加えて、購読度に影響しない印もあります。 - -@menu -* Unread Articles:: 未読記事への印 -* Read Articles:: 既読記事への印 -* Other Marks:: 購読度に影響しない印 -@end menu - -@ifinfo -これらの印を操作する過剰なくらいの命令があります: -@end ifinfo - -@menu -* Setting Marks:: 印の付け方と消し方 -* Setting Process Marks:: 後の実行のための記事の印の付け方 -@end menu - - -@node Unread Articles -@subsection 未読記事 - -以下の印はいろいろな方法で記事に未読の(ような)印を付けます。 - -@table @samp -@item ! -@vindex gnus-ticked-mark -可視記事 (Ticked) として印をつけます (@code{gnus-ticked-mark})。 - -@dfn{可視記事}とは、常に可視状態である記事のことです。おもしろいと思う記事 -があった場合や、単に読むのを先に延ばしたいときや、後で返答をしたいときに、 -普通は可視印を付けます。しかし、記事は期限切れ消去されることもありますので、 -永遠に記事を保存しておきたい場合は、その記事を永続にする必要があります -(@pxref{Persistent Articles})。 - -@item ? -@vindex gnus-dormant-mark -保留として印を付けます (@code{gnus-dormant-mark})。 - -@dfn{保留記事}はフォローアップがあったときにだけ概略バッファに現れます。フォ -ローアップが無いときも表示させたいときは、命令 @kbd{/ D} を使うことができ -ます。 - -@item SPACE -@vindex gnus-unread-mark -未読として印を付けます (@code{gnus-unread-mark})。 - -@dfn{未読記事}は今まで全く読まれていない記事のことです。 -@end table - - -@node Read Articles -@subsection 既読記事 -@cindex expirable mark - -以下のすべての印は記事に既読の印を付けます。 - -@table @samp - -@item r -@vindex gnus-del-mark -利用者が手動やそのようなもので命令 @kbd{d} によって既読の印を付けた記事 -です (@code{gnus-del-mark})。 - -@item R -@vindex gnus-read-mark -実際に読まれた記事 (@code{gnus-read-mark})。 - -@item O -@vindex gnus-ancient-mark -前回のセッションで既読の印を付けて、今は@dfn{古く}なってしまった記事。 - -@item K -@vindex gnus-killed-mark -削除の印 (@code{gnus-killed-mark})。 - -@item X -@vindex gnus-kill-file-mark -削除ファイルによって削除の印がついた記事 -(@code{gnus-kill-file-mark})。 - -@item Y -@vindex gnus-low-score-mark -低すぎるスコアのために既読の印がついた記事 -(@code{gnus-low-score-mark})。 - -@item C -@vindex gnus-catchup-mark -キャッチアップによって既読の印がついた記事 -(@code{gnus-catchup-mark})。 - -@item G -@vindex gnus-canceled-mark -取り消された記事 (@code{gnus-canceled-mark})。 - -@item F -@vindex gnus-souped-mark -@sc{SOUP} されている記事 (@code{gnus-souped-mark})。 @xref{SOUP}. - -@item Q -@vindex gnus-sparse-mark -まばらに参照された記事 (@code{gnus-sparse-mark})。 -@xref{Customizing Threading}. - -@item M -@vindex gnus-duplicate-mark -重複抑制により既読の印のついた記事 (@code{gnus-duplicated-mark})。 -@xref{Duplicate Suppression}. - -@end table - -これらのすべての印は、本当はただ記事が既読として印がついていることを意味 -するだけです。適応スコアリングをしたときには違ったように解釈されますけれ -ど。 - -もう一つ、特別な印があります: - -@table @samp -@item E -@vindex gnus-expirable-mark -期限切れ削除可能として印のついた記事 (@code{gnus-expirable-mark})。 - -記事を@dfn{期限切れ削除可能}として印を付ける(もしくは、自動的にそのように -印を付ける)ことは、普通のグループではあまり意味がありません――利用者はニュー -ズ記事の期限による削除を制御していません。しかし、例えばメールグループでは、 -@dfn{期限切れ削除可能}として印のついた記事は、いつでも gnus によって削除さ -れることがあります。 -@end table - - -@node Other Marks -@subsection 他の印 -@cindex process mark -@cindex bookmarks - -記事が読まれたかどうかには関係しない印がいくつかあります。 - -@itemize @bullet - -@item -現在の記事にしおりを挟むことができます。あなたは猫の尿の習慣に関する長い -論文を読んでいて、それを読み終わる前に夕食を食べるために家に帰らなければ -ならなかったとしましょう。そのときに、記事にしおりを挟むことができ、次に -その記事に出くわしたときに、gnus はそのしおりのところへ移動するでしょう。 -@xref{Setting Marks} - -@item -@vindex gnus-replied-mark -返答をしたか、フォローアップをした(例えば、答えた)記事はすべて2桁目に -@samp{A} の印がつきます (@code{gnus-replied-mark})。 - -@item -@vindex gnus-cached-mark -記事キャッシュに貯められている記事は2桁目に @samp{*} の印がつきます -(@code{gnus-replied-mark})。 @xref{Article Caching} - -@item -@vindex gnus-saved-mark -(何らかの方法によって;必ずしも宗教的というわけではなく)『保存された』記 -事は2桁目に @samp{S} の印がつきます (@code{gnus-saved-mark})。 - -@item -@vindex gnus-not-empty-thread-mark -@vindex gnus-empty-thread-mark -もし @samp{%e} の仕様が使われると、スレッドがあるかどうかは、3桁目に -@code{gnus-not-empty-thread-mark} と @code{gnus-empty-thread-mark} のそれ -ぞれによって印がつきます。 - -@item -@vindex gnus-process-mark -最後に @dfn{プロセス印} があります(@code{gnus-process-mark})。いろいろな種 -類の命令がプロセス印があるとそれに対して実行されます。例えば、@kbd{X u} -(@code{gnus-uu-decode-uu}) はプロセス印の付いたすべての記事を uudecode し -て、表示します。プロセス印の付いた記事は2桁目に @samp{#} があります。 - -@end itemize - -これらの『非購読度』の印はディフォルトではたいてい2桁目に現れるということ -に気付いたかもしれません。ですから、キャッシュされていて、保存されていて、 -返答をした記事にプロセス印が付いている場合、どのようになるのでしょう? - -たいしたことはありません。優先順位は次のようになっています: プロセス → -キャッシュ → 返答済み → 保存。ですから、ある記事がキャッシュに入っていて、 -返答されていた場合、キャッシュ印があるだけで、返答済み印はありません。 - - -@node Setting Marks -@subsection 印を付ける -@cindex setting marks - -すべての印つけ命令は数値接頭引数を受け付けます。 - -@table @kbd -@item M c -@itemx M-u -@kindex M c (概略) -@kindex M-u (概略) -@findex gnus-summary-clear-mark-forward -@cindex mark as read -現在の記事から、すべての購読度印を消去します -(@code{gnus-summary-clear-mark-forward})。要するに、記事に未読の印を付け -ます。 - -@item M t -@itemx ! -@kindex ! (概略) -@kindex M t (概略) -@findex gnus-summary-tick-article-forward -現在の記事に可視記事印を付けます -(@code{gnus-summary-tick-article-forward})。 @xref{Article Caching} - -@item M ? -@itemx ? -@kindex ? (概略) -@kindex M ? (概略) -@findex gnus-summary-mark-as-dormant -現在の記事に保留記事印を付けます -(@code{gnus-summary-mark-as-read-forward})。 - -@item D -@kindex D (概略) -@findex gnus-summary-mark-as-read-backward -現在の記事に既読の印を付け、前の行にポイントを移動します -(@code{gnus-summary-mark-as-read-backward})。 - -@item M k -@itemx k -@kindex k (概略) -@kindex M k (概略) -@findex gnus-summary-kill-same-subject-and-select -現在の記事と同じ表題を持つすべての記事を既読として印を付け、次の未読記事 -を選択します (@code{gnus-summary-kill-same-subject-and-select})。 - -@item M K -@itemx C-k -@kindex M K (概略) -@kindex C-k (概略) -@findex gnus-summary-kill-same-subject -現在の記事と同じ表題を持つすべての記事を既読として印を付けます -(@code{gnus-summary-kill-same-subject})。 - -@item M C -@kindex M C (概略) -@findex gnus-summary-catchup -@c @icon{gnus-summary-catchup} -すべての未読記事に既読の印を付けます (@code{gnus-summary-catchup})。 - -@item M C-c -@kindex M C-c (概略) -@findex gnus-summary-catchup-all -グループのすべての記事に――可視記事や保留記事でさえも、既読の印を付けます -(@code{gnus-summary-catchup-all})。 - -@item M H -@kindex M H (概略) -@findex gnus-summary-catchup-to-here -現在のグループのポイントまでを既読として印を付けます -(@code{gnus-summary-catchup-to-here})。 - -@item C-w -@kindex C-w (概略) -@findex gnus-summary-mark-region-as-read -ポイントとマークの間の記事に既読の印を付けます -(@code{gnus-summary-mark-region-as-read})。 - -@item M V k -@kindex M V k (概略) -@findex gnus-summary-kill-below -ディフォルトのスコア(もしくは数値接頭引数)よりも低いスコアの記事を削除し -ます。 - -@item M e -@itemx E -@kindex M e (概略) -@kindex E (概略) -@findex gnus-summary-mark-as-expirable -現在の記事を期限切れ削除可能として印を付けます -(@code{gnus-summary-mark-as-expirable})。 - -@item M b -@kindex M b (概略) -@findex gnus-summary-set-bookmark -現在の記事にしおりを設定します (@code{gnus-summary-set-bookmark})。 - -@item M B -@kindex M B (概略) -@findex gnus-summary-remove-bookmark -現在の記事のしおりを削除します (@code{gnus-summary-remobe-bookmark})。 - -@item M V c -@kindex M V c (概略) -@findex gnus-summary-clear-above -ディフォルトのスコア(もしくは数値接頭引数)よりも大きいスコアを持つ記事の -すべての印を消去します (@code{gnus-summary-clar-above})。 - -@item M V u -@kindex M V u (概略) -@findex gnus-summary-tick-above -ディフォルトのスコア(もしくは数値接頭引数)よりも大きいスコアを持つすべて -の記事に可視印を付けます (@code{gnus-summary-tick-above})。 - -@item M V m -@kindex M V m (概略) -@findex gnus-summary-mark-above -印の入力を促し、ディフォルトのスコア(もしくは数値接頭引数)よりも大きなス -コアを持つすべての記事にその印を付けます(@code{gnus-summary-mark-above})。 -@end table - -@vindex gnus-summary-goto-unread -変数 @code{gnus-summary-goto-unread} は印が付けられた後にどのような動作が -なされるかを決定します。もし @code{nil} でないと、ポイントは次/前の未読記 -事に移動します。もし @code{nil} であると、ポイントは一行上か下に行くだけで -す。特別な場合として、この変数が @code{never} であると、すべての印を付ける -命令と(@kbd{SPACE} のような)他の命令は次の記事が未読であろうが無かろうが -その記事に移動します。ディフォルトは @code{t} です。 - - -@node Setting Process Marks -@subsection プロセス印を付ける -@cindex setting process marks - -@table @kbd - -@item M P p -@itemx # -@kindex # (概略) -@kindex M P p (概略) -@findex gnus-symmary-mark-as-processable -現在の記事にプロセス印を付けます -(@code{gnus-summary-mark-as-processable})。 -@findex gnus-summary-unmark-as-processable - -@item M P u -@itemx M-# -@kindex M P u (概略) -@kindex M-# (概略) -もし現在の記事にプロセス印があれば取り除きます -(@code{gnus-summary-unmark-as-processable})。 - -@item M P U -@kindex M P U (概略) -@findex gnus-summary-unmark-all-processable -すべての記事からプロセス印を取り除きます -(@code{gnus-summary-unmark-all-processable})。 - -@item M P i -@kindex M P i (概略) -@findex gnus-uu-invert-processable -プロセス印の付いている記事とそうでない記事を逆にします -(@code{gnus-uu-mark-by-regexp})。 - -@item M P R -@kindex M P R (概略) -@findex gnus-uu-mark-by-regexp -正規表現によって記事に印を付けます (@code{gnus-uu-mark-by-regexp})。 - -@item M P r -@kindex M P r (概略) -@findex gnus-uu-mark-region -リージョンの記事に印を付けます (@code{gnus-uu-mark-region})。 - -@item M P t -@kindex M P t (概略) -@findex gnus-uu-mark-thread -現在の(副)スレッドのすべての記事に印を付けます -(@code{gnus-uu-mark-thread})。 - -@item M P T -@kindex M P T (概略) -@findex gnus-uu-unmark-thread -現在の(副)スレッドのすべての記事から印を取り除きます -(@code{gnus-uu-unamrk-thread})。 - -@item M P v -@kindex M P v (概略) -@findex gnus-uu-mark-over -接頭引数よりも大きなスコアを持つすべての記事に印を付けます -(@code{gnus-uu-mark-over})。 - -@item M P s -@kindex M P s (概略) -@findex gnus-uu-mark-series -現在の一連の記事に印を付けます (@code{gnus-uu-mark-series})。 - -@item M P S -@kindex M P S (概略) -@findex gnus-uu-mark-sparse -既にいくつか印の付いた記事を持つ一連の記事群全てに印を付けます -(@code{gnus-uu-mark-sparse})。 - -@item M P a -@kindex M P a (概略) -@findex gnus-uu-mark-all -一連の記事が出てくる順番にそれに属するすべての記事に印を付けます -(@code{gnus-uu-mark-all})。 - -@item M P b -@kindex M P b (概略) -@findex gnus-uu-mark-buffer -バッファのすべての記事を現れている順番に印を付けます -(@code{gnus-uu-mark-buffer})。 - -@item M P k -@kindex M P k (概略) -@findex gnus-summary-kill-process-mark -現在のプロセス印をスタックに積んで、すべての記事を無印にします -(@code{gnus-summary-kill-process-mark})。 - -@item M P y -@kindex M P y (概略) -@findex gnus-summary-yank-process-mark -スタックから前回のプロセス印を取り出して、それを復元します -(@code{gnus-summary-yank-process-mark})。 - -@item M P w -@kindex M P w (概略) -@findex gnus-summary-save-process-mark -現在のプロセス印をスタックに積みます -(@code{gnus-summary-save-process-mark})。 - -@end table - - -@node Limiting -@section 制限をする -@cindex limiting - -概略バッファが現在グループにある記事の一部だけを表示するように制限できれば -便利なことがあります。多くの制限命令が持つ効果は概略バッファから少し(もし -くは多く)の記事を概略バッファから削除することです。 - -すべての制限命令はサーバーから既に取得された記事の一部分に作用します。こ -れらの命令はどれもサーバーに追加の記事を要求しません。 - -@table @kbd - -@item / / -@itemx / s -@kindex / / (概略) -@findex gnus-summary-limit-to-subject -概略バッファをいくつかの表題と合致するものだけに制限します -(@code{gnus-summary-limit-to-subject})。 - -@item / a -@kindex / a (概略) -@findex gnus-summary-limit-to-author -概略バッファを何人かの著者に合致するものだけに制限します -(@code{gnus-summary-limit-to-author})。 - -@item / u -@itemx x -@kindex / u (概略) -@kindex x (概略) -@findex gnus-summary-limit-to-unread -概略バッファを既読の印が付いていない記事に制限します -(@code{gnus-summary-limit-to-unread})。もし接頭引数が与えられれば、バッ -ファを厳密に未読記事のみに制限します。これは、可視と保留の記事は含まれな -いということです。 - -@item / m -@kindex / m (概略) -@findex gnus-summary-limit-to-marks -印を尋ねて、その印が付いていない記事に制限します -(@code{gnus-summary-limit-to-marks})。 - -@item / t -@kindex / t (概略) -@findex gnus-summary-limit-to-age -数字を尋ねて、概略バッファをその数字の日より古い(もしくは同じ)記事に制限 -します (@code{gnus-summary-limit-to-marks})。もし接頭引数が与えられれば、 -その数字の日よりも新しい記事に制限します。 - -@item / n -@kindex / n (概略) -@findex gnus-summary-limit-to-articles -概略バッファを現在の記事に制限します -(@code{gnus-summary-limit-to-articles})。プロセス/接頭引数の習慣を使いま -す (@pxref{Process/Prefix})。 - -@item / w -@kindex / w (概略) -@findex gnus-summary-pop-limit -前の制限をスタックから取り出して、復元します -(@code{gnus-summary-pop-limit})。もし接頭引数を与えられれば、すべての制 -限をスタックから取り出します。 - -@item / v -@kindex / v (概略) -@findex gnus-summary-limit-to-score -概略バッファをあるスコアと同じか、それより大きなスコアを持つ記事に制限し -ます (@code{gnus-summary-limit-to-score})。 - -@item / E -@itemx M S -@kindex M S (概略) -@kindex / E (概略) -@findex gnus-summary-limit-include-expunged -すべての消去された記事を表示します -(@code{gnus-summary-limit-include-expunged})。 - -@item / D -@kindex / D (概略) -@findex gnus-summary-limit-include-dormant -すべての保留記事を表示します (@code{gnus-summary-limit-include-dormant})。 - -@item / * -@kindex / * (概略) -@findex gnus-summary-limit-include-cached -すべてのキャッシュに入っている記事を表示します -(@code{gnus-summary-limit-include-cached})。 - -@item / d -@kindex / d (概略) -@findex gnus-summary-limit-exclude-dormant -すべての保留記事を隠します (@code{gnus-summary-limit-exclude-dormant})。 - -@item / T -@kindex / T (概略) -@findex gnus-summary-limit-include-thread -現在のスレッドのすべての記事を表示します -(@code{gnus-summary-limit-include-thread})。 - -@item / c -@kindex / c (概略) -@findex gnus-summary-limit-exclude-childless-dormant -子記事の無いすべての保留記事を隠します -(@code{gnus-summary-limit-exclude-childless-dormant})。 - - -@item / C -@kindex / C (概略) -@findex gnus-summary-limit-mark-excluded-as-read -すべての未読のみの印の記事を既読として印を付けます -(@code{gnus-summary-limit-mark-excluded-as-read})。もし接頭引数が与えら -れれば、可視と保留のみの印の記事も既読として印を付けます。 - -@end table - - -@node Threading -@section スレッド -@cindex threading -@cindex article threading - -Gnus はディフォルトで記事をスレッドにします。@dfn{スレッドにする} とは、あ -る記事への応答を応答した記事の直後に置く――階層的流儀で ということです。 - -スレッドは記事の @code{References} 欄を調べることによって行われます。完全 -な世界では、これだけで良い木を作り上げるのに十分なのですが、不運なことに、 -@code{References} 欄はしばしば壊れているか、時には単にないということがあり -ます。不思議なニュースの増殖が問題を増やしますので、喜ばしい結果を得るため -には他の発見法を採用しなければなりません。過剰な対策法は存在していて、その -恐るべき詳細は @pxref{Customizing Threading} に詳しく書いてあります。 - -まず、概念の概観です: - -@table @dfn -@item 根本 (root) -スレッドで一番頂点にある記事です;スレッドの最初の記事です。 - -@item スレッド (thread) -木のような記事の構成です。 - -@item 部分スレッド (sub-thread) -木のような構造の(より)小さな部分です。 - -@item 無束縛スレッド (loose threads) -記事の期限切れ削除や、根本が既に前回のセッションで読まれたことにより概略バッ -ファに表示されない、等の理由により、スレッドはしばしば根本を失います。その -ようなときには、普通は多くの部分スレッドがあって、本当は1つのスレッドに属 -しているのですが、根本にはつながっていない、ということになります。こういう -スレッドが無束縛スレッドと呼ばれています。 - -@item スレッド集め (thread gathering) -まばらスレッドを大きなスレッドに集めようとする試みです。 - -@item まばらスレッド (sparse threads) -無い記事が『推測された』スレッドで、概略バッファに空行で表示されます。 - -@end table - - -@menu -* Customizing Threading:: 変更可能なスレッドに影響する変数 -* Thread Commands:: 概略バッファでのスレッドに基づいた命令 -@end menu - - -@node Customizing Threading -@subsection スレッドをカスタマイズする -@cindex customizing threading - -@menu -* Loose Threads:: Gnus が無束縛スレッドを集めて大きなスレッドにする方法 -* Filling In Threads:: スレッドを埋める -* More Threading:: スレッドをいじくるさらに多くの変数 -* Low-Level Threading:: これで終わったと思ったでしょう... でもあなたは間違っていた! -@end menu - - -@node Loose Threads -@subsection 無束縛スレッド -@cindex < -@cindex > -@cindex loose threads - -@table @code -@item gnus-summary-make-false-root -@vindex gnus-summary-make-false-root -もし @code{nil} でないと、gnus は全てのつながっていない部分木を1つの大き -な木にして、頂上にみせかけの根本を作ります。(ちょっと待ってください。頂 -上に根元 (root) ですって?ええ、そうなのです。)つながっていない部分木は本 -当の根本が期限切れ削除されたか、前回のセッションで根本を読んだり削除し -たときにできます。 - -本当のスレッドが無いときは、gnus は何かでっち上げをする必要があります。こ -の変数は gnus が使うべきごまかしの方法を示しています。値としてとることがで -きる4つの候補があります。 - -@iftex -@iflatex -\gnusfigure{The Summary Buffer}{390}{ -\put(0,0){\epsfig{figure=tmp/summary-adopt.ps,width=7.5cm}} -\put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-empty.ps,width=7.5cm}}} -\put(0,400){\makebox(0,0)[tl]{\epsfig{figure=tmp/summary-none.ps,width=7.5cm}}} -\put(445,400){\makebox(0,0)[tr]{\epsfig{figure=tmp/summary-dummy.ps,width=7.5cm}}} -} -@end iflatex -@end iftex - -@cindex adopting articles - -@table @code - -@item 養子 (adopt) -Gnus は最初の孤児を親にします。この親はすべての他の記事を養子にします。 -この養子記事は、標準の角括弧 (@samp{[]}) の代わりに、先の尖った括弧 -(@samp{<>}) で印付けられます。これがディフォルトの方法です。 - -@item みせかけ (dummy) -@vindex gnus-summary-dummy-line-format -Gnus は親のふりをするみせかけの概略行をつくります。みせかけの行はどの本 -当の記事にも対応しませんので、それを選択することは、みせかけの記事の後の -最初の本当の記事を選択をするだけになります。みせかけの根本の様式を指定 -するために、 @code{gnus-summary-dummy-line-format} が使われます。これは -たった一つだけのフォーマットの仕様を受け付けます: @samp{S} で、これは記 -事の表題です。 @xref{Formatting Variables}. - -@item 空 (empty) -Gnus は実際にはどの記事も親にはせず、単に最初の孤児を除いてすべての孤児の -表題欄を空のままにします。(実際は、@code{gnus-summary-same-subject} を表 -題として使います。 (@pxref{Summary Buffer Format}).) - -@item none -全くどの記事も親にしません。スレッドを集めて、一つの記事の後に他の記事を -表示するだけです。 - -@item nil -無束縛スレッドを集めません。 -@end table - -@item gnus-summary-gather-subject-limit -@vindex gnus-summary-gather-subject-limit -無束縛スレッドは記事の表題を比較することによって集められます。もしこの変数 -が @code{nil} であると、gnus は無束縛スレッドを一つの大きな超スレッドに集 -める前に、無束縛スレッドの表題が完全に一致することを要求します。これは、長 -い表題の行を切り落としてしまう間抜けなニューズリーダーが存在する現在では、 -あまりに厳しい要求かも知れません。もしそう思うのなら、この変数を例えば -20 に設定して、表題の最初の 20 文字だけが一致することを要求するようにする -ことができます。この変数を本当に低い数字に設定すると、gnus が目に入る全て -を一つのスレッドに集めるのを見ることができるでしょう。そして、それはあまり -有用ではありません。 - -@cindex fuzzy article gathering -この変数を特別な値 @code{fuzzy} に設定すれば、gnus は表題にあいまいな文 -字列比較アルゴリズムを使います (@pxref{Fuzzy Matching})。 - -@item gnus-sumplify-subject-fuzzy-regexp -@vindex gnus-simplify-subject-fuzzy-regexp -これは正規表現か、あいまい表題指定が使われているときに表題から合致したも -のが取り除かれる、正規表現のリストであることができます。 - -@item gnus-simplify-ignored-prefixes -@vindex gnus-simplify-igonored-prefixes -もし @code{gnus-summary-gather-subject-limit} を 10 くらいに低く設定したな -らば、この変数を何か意味のあるものに設定することを考えるでしょう: - -@c Written by Michael Ernst -@lisp -(setq gnus-simplify-ignored-prefixes - (concat - "\\`\\[?\\(" - (mapconcat - 'identity - '("looking" - "wanted" "followup" "summary\\( of\\)?" - "help" "query" "problem" "question" - "answer" "reference" "announce" - "How can I" "How to" "Comparison of" - ;; ... - ) - "\\|") - "\\)\\s *\\(" - (mapconcat 'identity - '("for" "for reference" "with" "about") - "\\|") - "\\)?\\]?:?[ \t]*")) -@end lisp - -この正規表現に合致するすべての語は、2つの表題を比較する前に取り除かれます。 - -@item gnus-simplify-subject-functions -@vindex gnus-simplify-subject-functions -@code{nil} でないと、この変数は @code{gnus-summary-gather-subject-limit} -を上書きします。この変数は文字列 @code{Subject} を反復して簡単な形にたど -り着くために適用する関数のリストである必要があります。 - -このリストに入れて役に立つような関数は次のようなものです: - -@table @code -@item gnus-simplify-subject-re -@findex gnus-simplify-subject-re -前の方にある @samp{Re:} を取り除きます。 - -@item gnus-simplify-subject-fuzzy -@findex gnus-simplify-subject-fuzzy -あいまいに簡単にします。 - -@item gnus-simplify-whitespace -@findex gnus-simplify-whitespace -余分な空白 (whitespace) を取り除きます。 -@end table - -もちろん、あなた自身の関数を書くこともできます。 - - -@item gnus-summary-gather-exclude-subject -@vindex gnus-summary-gather-exclude-subject -無束縛スレッド集めは表題のみに行われますので、特に @samp{} や -@samp{(none)}のような良くある表題のときは、多くの間違いを起こす可能性が -あります。この状況を少しよくするために、どの表題が集める過程から除かれる -かを決める正規表現 @code{gnus-summary-gather-exclude-subject} を使うこと -ができます。ディフォルトは @samp{^ *$\\|^(none)$} です。 - -@item gnus-summary-thread-gathering-function -@vindex gnus-summmary-thread-gathering-function -Gnus は @code{Subject} 欄を見ることによってスレッドを集めます。これは、結 -果的に全く関係の無い記事が同じ『スレッド』に含まれることがあるということで、 -これは混乱の元です。代替手段は、合致するものを見つけるために -@code{References} 欄にある @code{Message-ID} をすべて探すことです。これは -関係の無い記事が集められたスレッドに含まれることは全く無いことを保証します -が、こわれたニューズリーダーで投稿した記事は適切に集められないということで -もあります。選択権はあなたにあります――疫病かコレラか。 - -@table @code -@item gnus-gather-threads-by-subject -@findex gnus-gather-threads-by-subject -この関数はディフォルトの収集関数で、排他的に @code{Subject} を見ます。 - -@item gnus-gather-threads-by-references -この関数は排他的に @code{References} 欄を見ます。 -@end table - -@code{References} によって集めることを試してみたいのであれば、次のように -することができます: - -@lisp -(setq gnus-summary-thread-gathering-function - 'gnus-gather-threads-by-references) -@end lisp - -@end table - - -@node Filling In Threads -@subsubsection スレッドを埋める - -@table @code -@item gnus-fetch-old-headers -@vindex gnus-fetch-old-headers -もし @code{nil} でないと、gnus は古いスレッドをもっと古いヘッダー――既読 -印の付いている記事のヘッダー を取得することで大きくしようとします。もしで -きるだけ少ない概略行を表示したいけれど、できるだけたくさんの非密スレッドに -接続しておきたいときは、この変数を @code{some} か数字に設定することができ -ます。もし数字に設定したときは、それより多い追加のヘッダーは取得されません。 -どちらの場合でも、古いヘッダーの取得が動作するのは、使っているバックエンド -(backend) が overview ファイルを使っているかどうかです――これは普通は -@code{nntp}, @code{nnspool} と @code{nnml} です。スレッドのルートがサーバー -によって期限切れ削除されたときは、gnus はどうしようもないことを覚えておい -てください。 - -この変数は @code{invisible} に設定することもできます。これは視覚的な効果 -は何もありませんが、命令 @kbd{A T} をよく使うのであれば役に立つでしょう -(@pxref{Finding the Parent})。 - -@item gnus-build-sparse-threads -@vindex gnus-build-sparse-threads -古いヘッダーを取得すると遅くなることがあります。同じような低賃金の効果を得 -るために、この変数を @code{some} に設定することができます。そうすると、 -gnus は全ての記事の完全な @code{References} 欄を見て、同じスレッドに属する -記事をつなごうとします。これは gnus が記事がスレッドから失われていると推測 -したところのスレッド表示に@dfn{ずれ}を残すでしょう。(これらのずれは普通の -概略行のように現れます。もしずれを選択したときは、gnus はその当の記事を取 -得しようとします。)この変数が @code{t} であると、gnusは全ての『ずれ』をス -レッドを補完するのに役に立つかを考慮せずに表示します。最後に、この変数が -@code{more} であると、 gnus はどこにもつながっていない枝葉のまばらな節を切 -り落としません。この変数はディフォルトでは @code{nil} です。 - -@end table - - -@node More Threading -@subsection もっとスレッドを - -@table @code -@item gnus-show-threads -@vindex gnus-show-threads -この変数が @code{nil} であると、スレッドは作られず、ここにある残りのすべ -ての変数は全く効果が無くなります。スレッド作りを止めるとグループの選択が -少し速くなりますが、記事を読むのがもっと遅く、不便になることは確実です。 - -@item gnus-thread-hide-subtree -@vindex gnus-thread-hide-subtree -これが @code{nil} でないと、すべてのスレッドは概略バッファが生成されたと -きに隠れます。 - -@item gnus-thread-expunge-below -@vindex gnus-thread-expunge-below -この数字より少ない総合的スコア (@code{gnus-thread-score-function}) を持 -つすべてのスレッドは消去されます。この変数はディフォルトでは @code{nil} -で、これはどのスレッドも消去されないということです。 - -@item gnus-thread-hide-killed -@vindex gnus-thread-hide-killed -もしスレッドを削除して、この変数が @code{nil} でないと、部分木は隠されます。 - -@item gnus-thread-ignore-subject -@vindex gnus-thread-ignore-subject -時々、誰かがスレッドの真中で表題を変更することがあります。もしこの変数が -@code{nil} でないと、表題の変更は無視されます。もし @code{nil} だと、こ -れがディフォルトですが、表題の変更をすると別のスレッドになります。 - -@item gnus-thread-indent-level -@vindex gnus-thread-indent-level -この数字は部分スレッドがどれくらい字下げ (indent) されるべきかを決めます。 -ディフォルトは 4 です。 - -@end table - - -@node Low-Level Threading -@subsection 低レベルにおけるスレッド作成 - -@table @code - -@item gnus-parse-headers-hook -@vindex gnus-parse-headers-hook -すべてのヘッダーを解析する前に実行されるフックです。ディフォルトの値は -@code{(gnus-set-summary-default-charset)} です。これは変数 -@code{gnus-newsgroup-default-charset-alist} で指定されている値から概略バッ -ファの @code{default-mime-charset} を設定します。 - -@item gnus-alter-header-function -@vindex gnus-alter-header-function -これが @code{nil} でないと、ヘッダー構造の交換を可能にするようにこの関数が -呼ばれます。関数は一つの引数、記事ヘッダーのベクトル、とともに呼ばれ、それ -が何らかの方法で交換されます。例えば、(接頭語やその他のものを付け加えるこ -とによる)体系的な方法で @code{Message-ID} を交換するメールからニュースへ -のゲートウェイがある場合、@code{Message-ID} がもっと意味のあるものにするた -めに、この変数を設定して元に戻すことができます。これは一つの例です: - -@lisp -(setq gnus-alter-header-function 'my-alter-message-id) - -(defun my-alter-message-id (header) - (let ((id (mail-header-id header))) - (when (string-match - "\\(<[^<>@@]*\\)\\.?cygnus\\..*@@\\([^<>@@]*>\\)" id) - (mail-header-set-id - (concat (match-string 1 id) "@@" (match-string 2 id)) - header)))) -@end lisp - -@end table - - -@node Thread Commands -@subsection スレッドの命令 -@cindex thread commands - -@table @kbd - -@item T k -@itemx M-C-k -@kindex T k (概略) -@kindex M-C-k (概略) -@findex gnus-summary-kill-thread -現在の(部分)スレッドに既読の印を付けます -(@code{gnus-summary-kill-thread})。もし接頭引数が正であると、代わりにすべ -ての印を取り除きます。接頭引数が負であると、代わりに記事を可視にします。 - -@item T l -@itemx M-C-l -@kindex T l (概略) -@kindex M-C-l (概略) -@findex gnus-summary-lower-thread -現在の(部分)スレッドのスコアを下げます -(@code{gnus-summary-lower-thread})。 - -@item T i -@kindex T i (概略) -@kindex gnus-summary-raise-thread -現在の(部分)スレッドのスコアを上げます -(@code{gnus-summary-raise-thread})。 - -@item T # -@kindex T # (概略) -@findex gnus-uu-mark-thread -プロセス印を現在の(部分)スレッドに付けます -(@code{gnus-uu-mark-thread})。 - -@item T M-# -@kindex T M-# (概略) -@findex gnus-uu-unmark-thread -現在の(部分)スレッドからプロセス印を取り除きます -(@code{gnus-uu-unmark-thread})。 - -@item T T -@kindex T T (概略) -@findex gnus-summary-toggle-threads -スレッド表示を切り替えます (@code{gnus-summary-toggle-threads})。 - -@item T s -@kindex T s (概略) -@findex gnus-summary-show-thread -もしあれば、現在の記事の下に隠れているスレッドを表示します -(@code{gnus-summary-show-thread})。 - -@item T h -@kindex T h (概略) -@findex gnus-summary-hide-thread -現在の(部分)スレッドを隠します (@code{gnus-summary-hide-thread})。 - -@item T S -@kindex T S (概略) -@findex gnus-summary-show-all-threads -すべての隠されているスレッドを表示します -(@code{gnus-summary-show-all-threads})。 - -@item T H -@kindex T H (概略) -@findex gnus-summary-hide-all-threads -すべてのスレッドを隠します (@code{gnus-summary-hide-all-threads})。 - -@item T t -@kindex T t (概略) -@findex gnus-summary-rethread-current -現在の記事のスレッドをもう一度作り直します -(@code{gnus-summary-rethread-current})。これは概略バッファがスレッド表示さ -れていないときでも動作します。 - -@item T ^ -@kindex T ^ (概略) -@findex gnus-summary-reparent-thread -現在の記事を印付き(もしくは前の)記事の子記事にします -(@code{gnus-summary-reparent-thread})。 - -@end table - -以下の命令はスレッド移動命令です。これらはすべて数値接頭引数を受け付けま -す。 - -@table @kbd - -@item T n -@kindex T n (概略) -@findex gnus-summary-next-thread -次のスレッドに移動します (@code{gnus-summary-next-thread})。 - -@item T p -@kindex T p (概略) -@findex gnus-summary-prev-thread -前のスレッドに移動します (@code{gnus-summary-prev-thread})。 - -@item T d -@kindex T d (概略) -@findex gnus-summary-down-thread -スレッドを降下します (@code{gnus-summary-down-thread})。 - -@item T u -@kindex T u (概略) -@findex gnus-summary-up-thread -スレッドを上昇します (@code{gnus-summary-up-thread})。 - -@item T o -@kindex T o (概略) -@findex gnus-summary-top-thread -スレッドの頂上に移動します (@code{gnus-summary-top-thread})。 -@end table - -@vindex gnus-thread-operation-ignore-subject -スレッドを作成するときに表題を無視すると、自然にスレッドにはいくつかの違っ -た表題があることになります。それから `T k' -(@code{gnus-summary-kill-thread}) のような命令を発するときに、全体のスレッ -ドを削除するのではなく、現在の記事と同じ表題を持つ部分だけを削除したいとき -があるかもしれません。もしこの発想が良いと思うのであれば、 -@code{gnus-thread-operation-ignore-subject} をいじくることができます。これ -が @code{nil} でないと(これがディフォルトですが)、スレッドの命令を実行し -ているときに表題は無視されます。この変数が @code{fuzzy} であると、あいまい -に等しい表題を持つ記事だけが含まれます (@pxref{Fuzzy Matching})。 - - -@node Sorting -@section 並び替え - -@findex gnus-thread-sort-by-total-score -@findex gnus-thread-sort-by-date -@findex gnus-thread-sort-by-score -@findex gnus-thread-sort-by-subject -@findex gnus-thread-sort-by-author -@findex gnus-thread-sort-by-number -@vindex gnus-thread-sort-functions -もしスレッドの概略表示を使っているのであれば、関数のリストである -@code{gnus-thread-sort-functions} を設定することでスレッドを並び替えること -ができます。ディフォルトでは、並び替えは記事番号によってなされます。既に作 -られている並び替え述語関数は @code{gnus-thread-sort-by-number}, -@code{gnus-thread-sort-by-author}, @code{gnus-thread-sort-by-subject}, -@code{gnus-thread-sort-by-date}, @code{gnus-thread-sort-by-score} と -@code{gnus-thread-sort-by-total-score} です。 - - -各関数は2つのスレッドをとり、最初のスレッドが他のスレッドより先に並び替え -られるべきであれば、@code{nil} でない値をかえします。普通、並び替えは本当 -はそれぞれのスレッドの根本を見るだけによりなされることに気を付けてください。 -もし2つ以上の関数を使う場合、優先的並び替えキーはリストの最後の関数です。 -おそらくいつも @code{gnus-thread-sort-by-number} を並び替え関数のリスト―― -最初が好ましい に入れておくべきでしょう。これは他の並び替え基準に関して等 -しいスレッドは記事が上がっていく順番に表示されることを保証します。 - -スコア、表題、そして最後に番号、の順に並び替えたいのであれば、次のように -できます: - -@lisp -(setq gnus-thread-sort-functions - '(gnus-thread-sort-by-number - gnus-thread-sort-by-subject - gnus-thread-sort-by-total-score)) -@end lisp - -最高スコアのスレッドが概略バッファの最初に表示されます。スレッドが同じス -コアの場合は、英字順に並びかえられます。スコアと表題が同じスレッドは番号 -で並び替えられ、(普通は)記事が到着した順番になります。 - -スコア、到着の逆順に並び替えたいのであれば、次のようにできます: - -@lisp -(setq gnus-thread-sort-functions - '((lambda (t1 t2) - (not (gnus-thread-sort-by-number t1 t2))) - gnus-thread-sort-by-score)) -@end lisp - -@vindex gnus-thread-score-function -変数 @code{gnus-thread-score-function}(ディフォルトは @code{+})に入って -いる関数はスレッドの総合のスコアを計算するために用いられます。役に立つ関数 -は、@code{max}, @code{min}, もしくは2乗、もしくはあなたの好奇心をくすぐる -ような何かでしょう。 - -@findex gnus-article-sort-functions -@findex gnus-article-sort-by-date -@findex gnus-article-sort-by-score -@findex gnus-article-sort-by-subject -@findex gnus-article-sort-by-author -@findex gnus-article-sort-by-number -何か奇妙な理由などでスレッド表示を使っていないのなら、変数 -@code{gnus-article-sort-functions} をいじくる必要があります。これは -@code{gnus-thread-sort-functions} と非常に似ていますが、記事の比較には少々 -違った関数を使います。使用可能な並び替え述語関数は -@code{gnus-article-sort-by-number}, @code{gnus-article-sort-by-author}, -@code{gnus-article-sort-by-subject}, @code{gnus-article-sort-by-date} およ -び @code{gnus-article-sort-by-score} です。 - -スレッドを使っていない表題の概略表示を並び替えたいのであれば、次のような -ことをすることができます: - -@lisp -(setq gnus-article-sort-functions - '(gnus-article-sort-by-number - gnus-article-sort-by-subject)) -@end lisp - - - -@node Asynchronous Fetching -@section 非同期記事取得 -@cindex asynchronous article fetching -@cindex article pre-fetch -@cindex pre-fetch - -もしニュースを遠くの @sc{nntp} サーバーから取得しているのであれば、ネット -ワークの待ち時間が記事を読むことは骨の折れることにしてしまうかもしれません。 -@kbd{n} を押して次の記事が現れるまで、しばらく待たなければなりません。どう -して前の記事を読んでいる間に gnus が先に行って記事を取得しないのでしょう? -本当に、そうした方が良いのではないのでしょうか。 - -まず、いくつかの警告です。非同期記事取得、特に gnus がそれを行っている方 -法にはいくつかの落とし穴があります。 - -例えば、あなたは短い記事 1 を読んでいて、記事 2 はとても長くあなたはそれを -読むことには興味が無いとしましょう。Gnus はこのことはわからないので、先に -行って記事 2 を取得します。あなたは記事 3 を読むことにしますが、gnus は記 -事 2 を取得している最中なので、接続は封鎖されています。 - -この状況を避けるために、gnus はサーバーに2つの(それは2と数えてください) -接続を張ることができます。これはあまりして良いことではないと考える人もいる -でしょうが、私には実際の代替手段が見つからないのです。余分な接続をするため -には何らかの時間がかかりますので、gnus の起動は遅くなります。 - -Gnus はあなたが読むであろう記事よりもたくさんの記事を取得します。これは -記事の先-取得を使わないときよりも、あなたのマシンと @sc{nntp} サーバー間 -にもっと負荷がかかるということになるでしょう。サーバー自身ももっと負荷が -かかるようになります――余分な記事の要求と、余分な接続で。 - -はい、これで本当はこのようなことをすべきで無い事が分かったでしょう... 本 -当にそうしたいと思わない限りは。 - -@vindex gnus-asynchronous -これが方法です: @code{gnus-asynchronous} を @code{t} に設定してください。 -残りのことは自動的に起こります。 - -@vindex gnus-use-article-prefetch -@code{gnus-use-article-prefetch} を設定することにより、どれくらいの記事が -先に取得されるべきかを操作することができます。これはディフォルトでは 30で、 -グループの記事を読んでいるときに、バックエンドが次の 30 記事を先-取得する -ということです。この変数が @code{t} であると、バックエンドは制限無く取得で -きるすべての記事を先-取得しようとします。これが @code{nil} であると、先-取 -得は行われません。 - -@vindex gnus-async-prefetch-article-p -@findex gnus-async-read-p -おそらく、先-取得をしたくない記事がいくつかあるでしょう――例えば、既読記 -事。変数 @code{gnus-async-prefetch-article-p} は記事が先に取得されるべきか -どうかを制御します。この関数は問題の記事が先-取得されるべきであれば -@code{nil} でない値をかえすべきです。ディフォルトは -@code{gnus-async-read-p} で、それは既読記事には @code{nil} をかえします。 -この関数は記事のデータ構造を唯一の引数として呼ばれます。 - -例えば、もし 100 行よりも短い未読記事のみを先に取得したいのであれば、次の -ようにできます: - -@lisp -(defun my-async-short-unread-p (data) - "Return non-nil for short, unread articles." - (and (gnus-data-unread-p data) - (< (mail-header-lines (gnus-data-header data)) - 100))) - -(setq gnus-async-prefetch-article-p 'my-async-short-unread-p) -@end lisp - -これらの関数は何度も何度も呼ばれますので、gnus を遅くしすぎないように、 -短く甘美であるのが好ましいです。おそらく、このようなものをバイトコンパイ -ル (byte-compile) するのは良い着想でしょう。 - -@vindex gnus-prefetched-article-deletion-strategy -記事は非同期バッファから遅かれ早かれ削除されなければなりません。 -@code{gnus-prefetched-article-deletion-strategy} はいつ記事を削除するか -を指定しています。これは以下の要素を含むようなリストです: - -@table @code -@item read -記事が読まれたときに削除します。 - -@item exit -グループを抜けたときに記事を削除します。 -@end table - -ディフォルトの値は @code{(read exit)} です。 - -@vindex gnus-use-header-prefetch -@code{gnus-use-header-prefetch} が @code{nil} でないと、次のグループから -記事を先に取得します。 - - -@node Article Caching -@section 記事のキャッシュ -@cindex article caching -@cindex caching - -もし@emph{非常に}遅い @sc{nntp} 接続であるならば、記事キャッシュをすること -を考えるかもしれません。そうすると、それぞれの記事はあなたのホームディレク -トリの下にローカルに溜めらます。既に推測されているかも知れませんが、これは -@emph{巨大な}ディスクスペースを食い、iノードも非常に速く食いつぶす可能性が -あるため、それはあなたの頭を泳がせる事になるかもしれません。ウォッカの中で。 - -でも注意深く使われれば、それは記事を保存する簡単な方法になり得ます。 - -@vindex gnus-use-long-file-name -@vindex gnus-cache-directory -@vindex gnus-use-cache -キャッシュを実行するためには、@code{gnus-use-cache} を @code{t} に設定し -ます。ディフォルトでは、すべての可視または保留として印の付いている記事は -ローカルのキャッシュに複写されます。このキャッシュが平らな構造か階層的で -あるかは、いつもどおり、変数 @code{gnus-use-long-file-name} で制御されま -す。 - -可視か保留記事を再選択した場合は、サーバーの代わりにキャッシュから取得さ -れます。キャッシュにある記事は期限切れ削除されませんので、記事が属してい -るところに残したままで記事を保存する方法として使う事ができるかもしれませ -ん。保存したい記事をすべて保留の印を付けて、後は心配は要りません。 - -記事に既読の印が付いたときに、それはキャッシュから削除されるのでしょうか。 - -@vindex gnus-cache-remove-articles -@vindex gnus-cache-enter-articles -キャッシュ へ入る/から削除される は変数 @code{gnus-cache-enter-articles}と -@code{gnus-cache-remove-articles} によって制御されます。これらは両方ともシ -ンボルのリストです。前者はディフォルトでは @code{(ticked dormant)} で、可 -視と保留記事はキャッシュに入れられるという事です。後者はディフォルトでは -@code{(read)} で、既読の印が付いた記事はキャッシュから削除されるという事で -す。おそらくこれらの2つのリストは @code{ticked}, @code{dormant}, -@code{unread} および @code{read} からなるでしょう。 - -@findex gnus-jog-cache -それで、どうやって大量の記事取得と貯蓄実現されるのでしょうか。命令 -@code{gnus-jog-cache} は全ての購読グループに対して、すべての未読記事を要求 -し、スコアを付け、キャッシュに保存します。この命令を実際に、実際に実際に実 -際に、使うのは、 1) @sc{nntp} サーバーとの接続が本当に、本当に、本当に遅く -2) 本当に、本当に、本当に巨大なディスクを持っているときだけにするべきです。 -これは真面目にいっています。ダウンロードされる記事の数を少なくする一つの方 -法は、欲しくない記事のスコアを低くし、既読の印を付ける事です。そうした場合、 -それらはこの命令ではダウンロードされません。 - -@vindex gnus-uncacheable-groups -いくつかのグループではキャッシュをしたくないというのは良くある事です。例え -ば、@code{nnml} メールディレクトリーがホームディレクトリーの下にあれば、そ -れをあなたのホームディレクトリーの下の別の場所にキャッシュするのは意味の無 -い事です。あなたが2倍の容量を使う事が良いと感じない限りは。キャッシュを制 -限するために、正規表現 @code{gnus-uncacheable-groups} を例えば -@samp{^nnml} と設定してください。この変数はディフォルトでは @code{nil} で -す。 - -@findex gnus-cache-generate-nov-databases -@findex gnus-cache-generate-active -@vindex gnus-cache-active-file -キャッシュはどの記事が含まれているかの情報を現状ファイル (active file) -(@code{gnus-cache-active-file}) に溜めます。このファイル(もしくはキャッシュ -の他の部分)が何らかの理由でぐちゃぐちゃになってしまった場合、gnus は物事 -を正しくするために2つの関数をお勧めします。@kbd{M-x -gnus-cache-generate-nov-databases} はすべての @sc{nov} ファイルを(再)作 -成し、@kbd{gnus-cache-generate-active} は 現状ファイルを(再)作成します。 - - -@node Persistent Articles -@section 永続記事 -@cindex persistent articles -記事のキャッシュと近い関係にあるもに、@dfn{永続記事}があります。実際、それ -はキャッシュの別の見方で、私の意見ではその方がもっと役に立ちます。 - -例えば、ニューズグループを読んでいて、そのまま永遠に保存して秘蔵したい、い -くつかの価値ある宝石に出会ったとしましょう。普通はそれをファイルに保存しま -す(多くの保存命令の一つを使って)。それの問題は、単にあの、嫌なだけです。 -理想的には、記事はグループであなたが見つけた場所に永遠に残っているべきでしょ -う。ニューズサーバーにおける期限削除には影響されないで。 - -これが@dfn{永続記事}です――記事は削除されません。それは普通のキャッシュ命 -令を使って実装されていますが、永続記事の管理をするために2つの明示的な命令 -を使います: - -@table @kbd - -@item * -@kindex * (概略) -@findex gnus-cache-enter-article -現在の記事を永続にします (@code{gnus-cache-enter-article})。 - -@item M-* -@kindex M-* (概略) -@findex gnus-cache-remove-article -現在の記事を永続記事から取り除きます (@code{gnus-cache-remove-articles})。 -これは普通は記事を削除します。 -@end table - -この命令は両方ともプロセス/接頭引数の習慣を理解します。 - -もし永続記事にだけ興味があるのでしたら、可視記事(やその他のもの)がキャッ -シュに入るのを避けるために、@code{gnus-use-cache} を @code{passive} に設定 -するのが良いでしょう: - -@lisp -(setq gnus-use-cache 'passive) -@end lisp - - -@node Article Backlog -@section 記事のバックログ -@cindex backlog -@cindex article backlog -もし遅い接続しかない場合で、キャッシュを使うという発想はあまり魅力的ではな -いとき(実際そうなのですが)、@dfn{バックログ}に切り替える事によって状況を -何とかすることができます。これは既に読んだ記事を再取得しなくて良いように、 -gnus が既に読んだ記事を一時保存しておくところです。これはもちろん、あなた -に最近読んだ記事を再び選択する癖があるときだけに役立ちます。もし絶対にそれ -をしないのであれば、バックログをすることは gnus を少し遅くし、メモリーの使 -用量をいくらか増やします。 - -@vindex gnus-keep-backlog -もし @code{gnus-keep-backlog} を数字 @var{n} に設定すると、gnus は最大で -@var{n} の古い記事を後の再取得のためにバッファに溜めておきます。この変数が -@code{nil} ではなく、数字でもない場合、gnus は@emph{全て}の既読記事をたく -わえます。これはあなたの Emacs が、暴発してあなたのマシンが落ちるまで制限 -なく膨れ上がるということです。私はあなた方全てが元気でいられるようにここに -書き加えました。 - -この変数はディフォルトでは @code{nil} です。 - - -@node Saving Articles -@section 記事の保存 -@cindex saving articles - -Gnus はたくさんの方法で記事を保存する事ができます。以下のものは非常に率直 -な方法(例えば、記事が保存する前にほとんど何もなされない)で記事を保存する -ための説明です。違った手段(uudecodeする、shar ファイルを展開する)につい -ては@code{gnus-uu} を使うのが良いでしょう (@pxref{Decoding Articles})。 - -@vindex gnus-save-all-headers -@code{gnus-save-all-headers} が @code{nil} でないと、gnus は記事を保存す -る前に望ましくないヘッダーを消去しません。 - -@vindex gnus-saved-headers -もし上の変数が @code{nil} であると、正規表現 @code{gnus-saved-headers} -に合致するすべてのヘッダーは残され、残りのものは保存する前に削除されます。 - -@table @kbd - -@item O o -@itemx o -@kindex O o (概略) -@kindex o (概略) -@findex gnus-summary-save-article -@c @icon{gnus-summary-save-article} -ディフォルトの記事保存を用いて現在の記事を保存します -(@code{gnus-summary-save-article})。 - -@item O m -@kindex O m (概略) -@findex gnus-summary-save-article-mail -現在の記事をメールの様式で保存します -(@code{gnus-summary-save-article-mail})。 - -@item O r -@kindex O r (概略) -@findex gnus-summary-save-article-rmail -現在の記事を rmail の様式で保存します -(@code{gnus-summary-save-article-rmail})。 - -@item O f -@kindex O f (概略) -@findex gnus-summary-save-article-file -@c @icon{gnus-summary-save-article-file} -現在の記事を普通のファイル (plain file) 様式で保存します -(@code{gnus-summary-save-article-file})。 - -@item O F -@kindex O F (概略) -@findex gnus-summary-write-article-file -現在の記事を普通のファイル様式で保存し、以前のファイルの内容を上書きしま -す (@code{gnus-summary-write-article-file})。 - -@item O b -@kindex O b (概略) -@findex gnus-summary-save-article-body-file -現在の記事の本文 (body) を普通のファイル様式で保存します -(@code{gnus-summary-save-article-body-file})。 - -@item O h -@kindex O h (概略) -@findex gnus-summary-save-article-folder -現在の記事を mh のフォルダーの様式で保存します -(@code{gnus-summary-save-article-folder})。 - -@item O v -@kindex O v (概略) -@findex gnus-summary-save-article-vm -現在の記事を VM フォルダーに保存します -(@code{gnus-summary-save-article-vm})。 - -@item O p -@kindex O p (概略) -@findex gnus-summary-pipe-output -現在の記事をパイプに保存します。うーんと、あのぉ、私が言おうとしている事は―― -現在の記事をプロセスにパイプするということです -(@code{gnus-summary-pipe-output})。 -@end table - -@vindex gnus-prompt-before-saving -すべてのこれらの命令はプロセス/接頭引数の習慣を使います -(@pxref{Process/Prefix})。もしこれらの関数を使ってたくさんの記事を保存し -た場合、それぞれのすべての記事に対してファイル名の入力を要求される事に飽 -き飽きするでしょう。入力促進動作は変数 @code{gnus-prompt-before-saving} -によって制御されます。これはディフォルトでは @code{always} で、あなたが -知っていて嫌がっている、過剰な促進動作をします。代わりにこの変数を -@code{t} に設定すると、あなたが保存するそれぞれの一連の記事に対して一回 -だけ促されます。本当に gnus にすべての思考をさせたいのであれば、この変数 -を@code{nil} にすることさえできます。そして、記事を保存するためのファイ -ルを促される事はありません。Gnus は単純にすべての記事をディフォルトのファ -イルに保存します。 - - -@vindex gnus-default-article-saver -Gnus があなたの望むとおりになるように、変数 -@code{gnus-default-article-saver} をカスタマイズする事ができます。下の4つ -の既製関数を使う事ができますし、自分自身の関数を作る事もできます。 - -@table @code - -@item gnus-summary-save-in-rmail -@findex gnus-summary-save-in-rmail -@vindex gnus-rmail-save-name -@findex gnus-plain-save-name -これはディフォルトの様式、@dfn{babyl} です。変数 -@code{gnus-ramil-save-name} に入っている関数を、記事を保存するためのファ -イル名を取得するために使用します。ディフォルトは -@code{gnus-plain-save-name} です。 - - -@item gnus-summary-save-in-mail -@findex gnus-summary-save-in-mail -@vindex gnus-mail-save-name -Unix メール (mbox) ファイルに保存します。変数 @code{gnus-mail-save-name} -に入っている関数を、記事を保存するためのファイル名を取得するために使用し -ます。ディフォルトは @code{gnus-plain-save-name} です。 - -@item gnus-summary-save-in-file -@findex gnus-summary-save-in-file -@vindex gnus-file-save-name -@findex gnus-numeric-save-name -記事を通常のファイルの後に追加します。変数 @code{gnus-file-save-name} に -入っている関数を、記事を保存するためのファイル名を取得するために使用しま -す。ディフォルトは @code{gnus-numeric-save-name} です。 - -@item gnus-summary-save-body-in-file -@findex gnus-summary-save-body-in-file -記事の本体を通常のファイルの後に追加します。変数 -@code{gnus-file-save-name} に入っている関数を、記事を保存するためのファ -イル名を取得するために使用します。ディフォルトは -@code{gnus-numeric-save-name} です。 - - -@item gnus-summary-save-in-folder -@findex gnus-summary-save-in-folder -@findex gnus-folder-save-name -@findex gnus-Folder-save-name -@vindex gnus-folder-save-name -@cindex rcvstore -@cindex MH folders -MH ライブラリーの @code{rcvstore} を用いる事によって記事を MH フォルダー -に保存します。変数 @code{gnus-folder-save-name} に入っている関数を、記事 -を保存するファイル名を取得するために使用します。ディフォルトは -@code{gnus-folder-save-name} ですが、@code{gnus-Folder-save-name} も使う -事ができて、こちらは先頭が大文字、残りが小文字になった名前をつくります。 - -@item gnus-summary-save-in-vm -@findex gnus-summary-save-in-vm -記事を VM フォルダーに保存します。この設定を使うためには VM メールリーダー -が必要です。 -@end table - -@vindex gnus-article-save-directory -これらの全ての関数は最後の一つを除いて、環境変数 @code{SAVEDIR} によって -初期化される @code{gnus-article-save-directory} に記事を保存します。これ -はディフォルトでは @file{~/News/} です。 - -上にあるように、記事を保存するためのファイルの適切な名前を見つけるために、 -関数は違った関数を用います。以下は名前を生成するために使用可能な関数のリス -トです: - -@table @code - -@item gnus-Numeric-save-name -@findex gnus-Numeric-save-name -@file{~/News/Alt.andera-dworkin/45} のようなファイル名。 - -@item gnus-numeric-save-name -@findex gnus-numeric-save-name -@file{~/News/alt.andera-dworkin/45} のようなファイル名。 - -@item gnus-Plain-save-name -@findex gnus-Plain-save-name -@file{~/News/Alt.andera-dworkin} のようなファイル名。 - -@item gnus-plain-save-name -@findex gnus-plain-save-name -@file{~/News/alt.andera-dworkin} のようなファイル名。 -@end table - -@vindex gnus-split-methods -連想リスト @code{gnus-split-methods} に正規表現を放り込む事によって、 -gnus に記事を保存する場所を提案する事ができます。例えば、gnus に関連した記 -事をファイル @file{gnus-stuff} に、VM に関連した記事を @code{vm-stuff} 保 -存したければ、この変数を以下のようにする事ができます: - -@lisp -(("^Subject:.*gnus\\|^Newsgroups:.*gnus" "gnus-stuff") - ("^Subject:.*vm\\|^Xref:.*vm" "vm-stuff") - (my-choosing-function "../other-dir/my-stuff") - ((equal gnus-newsgroup-name "mail.misc") "mail-stuff")) -@end lisp - -これはそれぞれの要素が、2つの要素――@dfn{合致} と @dfn{ファイル} を持つ -リストであるリストであるという事がわかります。合致は文字列(この場合は記事 -のヘッダーに合致する正規表現として使われます)および、シンボル(グループ名 -を引数として、関数として呼ばれます)および、リスト(これは評価 -(@code{eval}) されます)であることができます。もしこれらの動作の一つでも -@code{nil} でない結果を返すと、@dfn{ファイル}がディフォルトの促進として使 -われます。加えて、呼ばれた関数か式が文字列か文字列のリストを返したときは、 -演算の結果自体が使われます。 - -基本的には、現在の記事を保存するのに使われる可能性のあるファイル名のリスト -を手に入れる事になります。(すべての『合致』が使われます。)それから本当に -名前として使いたいものを促され、この変数を適用する事により得られた結果から -ファイル名補完をして入力します。 - -この変数はディフォルトでは @code{((gnus-article-archive-name))} で、gnus -保存する記事の @code{Archive-name} 行を調べて、それをファイル名の提案と -して使うという事です。 - -これはファイル名を少しきれいにする関数の例です。 -@samp{nnml:mail.whatever} のようなメールグループがたくさんあるのであれば、 -保存するためのファイル名を作る前にこれらのグループ名の最初を切り落とした -いかもしれません。次の物はちょうどそれをします: - -@lisp -(defun my-save-name (group) - (when (string-match "^nnml:mail." group) - (substring group (match-end 0)))) - -(setq gnus-split-methods - '((gnus-article-archive-name) - (my-save-name))) -@end lisp - - -@vindex gnus-use-long-file-name -最後に @code{gnus-use-long-file-name} という変数があります。これが -@code{nil} であると、すべての上記の関数はグループ名のすべてのピリオド -(@samp{.}) をスラッシュ (@samp{/}) で置き換えます――これは関数はすべての -ファイルを一番上のディレクトリーに置くのではなく、階層的なディレクトリーを -作るという事です(@file{~/News/alt.andrea-dworkin} の代わりに -@file{~/News/alt/andrea-dworkin}。)この変数はたいていのシステムにおいてディ -フォルトで @code{t} です。しかし、歴史的な理由から Xenix と usg-unix-v マ -シンではディフォルトで @code{nil} です。 - -この関数は削除とスコアのファイル名に影響します。この変数がリストで、リス -トに要素 @code{not-score} があると、長いファイル名はスコアファイルには使 -われず、リストに要素 @code{not-save} があると、長いファイル名は保存には -使われず、要素 @code{not-kill} があると、長いファイル名は削除ファイルに -は使われません。 - -もし記事をスプールのような階層に保存したいのであれば、次のようにできます - -@lisp -(setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy -(setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding -@end lisp - -それから @kbd{o} によって記事を保存するだけです。それからこの階層を短命な -@code{nneething} グループによって読む事ができます――グループバッファで -@kbd{G D} とし、一番上のディレクトリーを引数 (@file{~/News/}) として渡しま -す。 - - -@node Decoding Articles -@section 記事の復号化 -@cindex decoding articles - -ときどき利用者は何らかの方法で符号化された記事(もしくは記事群)を投稿し -ます。Gnus はあなたのためにそれらを復号化する事ができます。 - -@menu -* Uuencoded Articles:: 記事を uuencode する。 -* Shell Archives:: shar 記事を解凍する。 -* PostScript Files:: ポストスクリプトを分割する。 -* Other Files:: 普通の保存と binhex. -* Decoding Variables:: 幸せな復号化のための変数。 -* Viewing Files:: 復号化の結果を見たい? -@end menu - -@cindex series -@cindex article series -これらすべての関数はプロセス/接頭引数の習慣 (@pxref{Process/Prefix}) を、 -『一つの記事』を『一つの群』と解釈する拡張をして、どの記事に操作をするかを -見つけるために使います。Gnus は自分自身でどの記事がその群に属しているかを -判断し、すべての記事を復号化して、その結果のファイルを 展開/閲覧/保存 する -ことができます。 - -Gnus は以下の簡単な規則に則ってどの記事が群に属するのかを推測します: 表題 -は行の最後の2つの数字を除いて(ほとんど)同じである必要があります。(空白 -は大体無視されますが。) - -例えば: @samp{cat.gif (2/3)} というような表題を選ぶと、gnus は正規表現 -@samp{^cat.gif ([0-9]+/[0-9]+).*$} に合致するすべての記事を見つけようとし -ます。 - -@samp{cat.gif (2/3) Part 6 of a series} のような標準でない表題はどの自動 -閲覧命令によっても適切に認識されないため、手で記事に @kbd{#} の印を付け -なければなりません。 - - -@node Uuencoded Articles -@subsection uuencode された記事 -@cindex uudecode -@cindex uuencoded articles - -@table @kbd - -@item X u -@kindex X u (概略) -@findex gnus-uu-decode-uu -@c @icon{gnus-uu-decode-uu} -現在の群を uudecode します (@code{gnus-uu-decode-uu})。 - -@item X U -@kindex X U (概略) -@findex gnus-uu-decode-uu-and-save -現在の群を uudecode して保存します (@code{gnus-uu-decode-uu-and-save})。 - -@item X v u -@kindex X v u (概略) -@findex gnus-uu-decode-uu-view -現在の群を uudecode して、表示します (@code{gnus-uu-decode-uu-view})。 - -@item X v U -@kindex X v U (概略) -@findex gnus-uu-decode-uu-and-save-view -現在の記事を uudecode して、表示して保存します -(@code{gnus-uu-decode-uu-and-save-view})。 - -@end table - -これらすべてはプロセス印によって印付けられた記事の存在に対して反応すると -いうことを覚えておいてください。例えば、もしニューズグループ全体を復号化 -して保存したいのであれば、普通は @kbd{M P a} (@code{gnus-uu-mark-all}) -とし、それから @kbd{X U} (@code{gnus-uu-decode-uu-and-save}) とします。 - -この全ては、白日の下に明白にキーを打っていた @sc{GNUS 4.1} のときとは -@code{gnus-uu} の動作が全く違っています。この版の @code{gnus-uu} は普通 -は何かの方法 (@pxref{Setting Process Marks}) で記事に印を付けて、それか -ら @kbd{X u} を押す事を前提としています。 - -@vindex gnus-uu-notify-files -注意: @code{gnus-uu-notify-files} に合致する名前、 -@samp{[Cc][Ii][Nn][Dd][Yy][0-9]+.\\(gif\\|jpg\\)} にハードコードされる、を -持つ記事を復号化しようとしたときは、@code{gnus-uu} は問題の記事をちょうど -閲覧した事を知らせるために、自動的に @samp{comp.unix.wizards} に記事を投稿 -します。この機能を使わないようにする事はできません。 - - -@node Shell Archives -@subsection シェルアーカイブ -@cindex unshar -@cindex shell archives -@cindex shared articles - -シェルアーカイブ(『shar ファイル』)はソースを配布するための人気のある方 -法でしたが、今日ではそんなに使われていません。とにかくこれらを扱うための命 -令があります: - -@table @kbd - -@item X s -@kindex X s (概略) -@findex gnus-uu-decode-unshar -現在の群を解凍します (@code{gnus-uu-decode-unshar})。 - -@item X S -@kindex X S (概略) -@findex gnus-uu-decode-unshar-and-save -現在の群を解凍し保存します (@code{gnus-uu-decode-unshar-and-save})。 - -@item X v s -@kindex X v s (概略) -@findex gnus-uu-decode-unshar-view -現在の群を解凍し表示します (@code{gnus-uu-decode-unshar-view})。 - -@item X v S -@kindex X v S (概略) -@findex gnus-uu-decode-unshar-and-save-view -現在の群を解凍し、表示して保存します -(@code{gnus-uu-decode-unshar-and-save-view})。 -@end table - - -@node PostScript Files -@subsection ポストスクリプトファイル -@cindex PostScript - -@table @kbd - -@item X p -@kindex X p (概略) -@findex gnus-uu-decode-postscript -現在のポストスクリプト群を展開します (@code{gnus-uu-decode-postscript})。 - -@item X P -@kindex X P (概略) -@findex gnus-uu-decode-postscript-and-save -現在のポストスクリプト群を展開して保存します -(@code{gnus-uu-decode-postscript-and-save})。 - -@item X v p -@kindex X v p (概略) -@findex gnus-uu-decode-postscript-view -現在のポストスクリプト群を表示します -(@code{gnus-uu-decode-postscript-view})。 - -@item X v P -@kindex X v P (概略) -@findex gnus-uu-decode-ostscript-and-save-view -現在のポストスクリプト群を表示し保存します -(@code{gnus-uu-decode-postscript-and-save-view})。 -@end table - - -@node Other Files -@subsection 他のファイル - -@table @kbd -@item X o -@kindex X o (概略) -@findex gnus-uu-decode-save -現在の群を保存します (@code{gnus-uu-decode-save})。 - -@item X b -@kindex X b (概略) -@findex gnus-uu-decode-binhex -現在の記事を binhex 解凍します (@code{gnus-uu-decode-binhex})。これは本 -当は動作しません。 -@end table - - -@node Decoding Variables -@subsection 復号化のための変数 - -形容詞です。動詞ではありません。 - -@menu -* Rule Variables:: ファイルがどのように表示されるかを決める変数。 -* Other Decode Variables:: 他の復号化の変数。 -* Uuencoding and Posting:: uuencode するのをカスタマイズする変数。 -@end menu - - -@node Rule Variables -@subsubsection 規則変数 -@cindex rule variables - -Gnus はファイルを閲覧するのを決定するのに@dfn{規則変数}を用います。これら -の変数はすべて以下のような様式です - -@lisp - (list '(regexp1 command2) - '(regexp2 command2) - ...) -@end lisp - -@table @code - -@item gnus-uu-user-view-rules -@vindex gnus-uu-user-view-rules -@cindex sox -この変数はファイルを閲覧するときに最初に調べられます。例えば、もし -@samp{.au} 音ファイルを変換するために @code{sox} を使いたいときは、次の -ようにできます: -@lisp -(setq gnus-uu-user-view-rules - (list '(\"\\\\.au$\" \"sox %s -t .aiff > /dev/audio\"))) -@end lisp - -@item gnus-uu-user-view-rules-end -@vindex gnus-uu-user-view-rules-end -この変数は gnus が利用者とディフォルトの閲覧規則から合致するものを見つけ -られなかったときに調べられます。 - -@item gnus-uu-user-archive-rules -@vindex gnus-uu-user-archive-rules -この変数はアーカイブを展開するときにどの命令が使われるべきかを決めるため -に使う事ができます。 -@end table - - -@node Other Decode Variables -@subsection 他の復号化の変数 - -@table @code -@vindex gnus-uu-grabbed-file-functions - -@item gnus-uu-grabbed-file-functions -このリストのすべての関数はそれぞれのファイルが上手く復号化された直後に呼ば -れます――ですから、すぐにファイルを移動や閲覧したりすることができ、何かを -する前にすべてのファイルが復号化されるのを待つ必要はありません。このリスト -に入れる事のできる既製関数は: - -@table @code - -@item gnus-uu-grab-view -@findex gnus-uu-grab-view -ファイルを閲覧します。 - -@item gnus-uu-grab-move -@findex gnus-uu-grab-move -ファイルを移動します(もし保存関数を使っているのであれば)。 -@end table - -@item gnus-uu-be-dangerous -@vindex gnus-uu-be-dangerous -復号化の最中に変な状況が起こったときに何をするかを指定します。もし -@code{nil} であると、できるだけ保守的になります。もし @code{t} であると、 -動作しないものは無視して、現存するファイルを上書きします。その他の場合は、 -それぞれのときに尋ねます。 - -@item gnus-uu-ignore-files-by-name -@vindex gnus-uu-ignore-files-by-name -この正規表現に合致する名前のファイルは閲覧されません。 - -@item gnus-uu-ignore-files-by-type -@vindex gnus-uu-ignore-files-by-type -この変数に合致する @sc{mime} の型を持つファイルは閲覧されません。Gnus はファ -イル名に基づいて型を推測している事に注意してください。@code{gnus-uu} は -(まだ)@sc{mime} パッケージではありませんので、これは少し変です。 - -@item gnus-uu-tmp-dir -@vindex gnus-uu-tmp-dir -@code{gnus-uu} がその仕事をする場所です。 - -@item gnus-uu-do-not-unpack-archives -@vindex gnus-uu-do-not-unpack-archives -@code{nil} でないのは、@code{gnus-uu} は表示するためのファイルを探すため -にアーカイブの中までは入っていかないという事です。 - -@item gnus-uu-view-and-save -@vindex gnus-uu-view-and-save -@code{nil} でないのは、利用者はファイルを閲覧した後に常に保存するかどう -かを尋ねられるという事です。 - -@item gnus-uu-ignore-default-view-rules -@vindex gnus-uu-ignore-default-view-rules -@code{nil} でないのは、@code{gnus-uu} はディフォルトの閲覧規則を無視する -という事です。 - -@item gnus-uu-ignore-default-archive-rules -@vindex gnus-uu-ignore-default-archive-rules -@code{nil} でないのは、@code{gnus-uu} はディフォルトのアーカイブ展開命令 -を無視するという事です。 - -@item gnus-uu-kill-carriage-return -@vindex gnus-uu-kill-carriage-return -@code{nil} でないのは、@code{gnus-uu} は記事からすべてのキャリッジリター -ン (carriage return) を取り去るという事です。 - -@item gnus-uu-unmark-articles-not-decoded -@vindex gnus-uu-unmark-articles-not-decoded -@code{nil} でないのは、@code{gnus-uu} は復号化に失敗した記事に未読の印を -付けるという事です。 - -@item gnus-uu-correct-stripped-uucode -@vindex gnus-uu-correct-stripped-uucode -@code{nil} でないというのは、@code{gnus-uu} は続く空白が削除されてしまって -いる uuencode されたファイルを修復しようと@emph{試す}という事です。 - -@item gnus-uu-pre-uudecode-hook -@vindex gnus-uu-pre-uudecode-hook -@code{uudecode} にメッセージを送る前に実行されるフックです。 - -@item gnus-uu-view-with-metamail -@vindex gnus-uu-view-with-metamail -@cindex metamail -@code{nil} でないのは、@code{gnus-uu} は規則変数で定義された閲覧命令を無 -視して、ファイル名に基づいた @sc{mime} 内容の型に取り替えるという事です。 -その結果は閲覧のために @code{metamail} にかけられます。 - -@item gnus-uu-save-in-digest -@vindex gnus-uu-save-in-digest -@code{nil} でないのは、@code{gnus-uu} が復号化をしないで保存をするように -言われたときに、要約を保存するという事です。この変数が @code{nil} である -と、@code{gnus-uu} は 何も飾りをしないで全てをファイルに保存します。要約 -は RFC1153 準じています――意味のある量を指定して、番号を発行する簡単な方 -法が見つからなかったので、単純にそれらは切り落としています。 - -@end table - - -@node Uuencoding and Posting -@subsection uuencode と投稿 - -@table @code - -@item gnus-uu-post-include-before-composing -@vindex gnus-uu-post-include-before-composing -@code{nil} でないのは、@code{gnus-uu} が記事を作成する前に符号化するファ -イルを尋ねるという事です。この変数が @code{t} であると、@kbd{C-c C-i} に -よって符号化されたファイルを取り込むか、記事を投稿するときに取り込むか、 -どちらかをする事ができます。 - -@item gnus-uu-post-length -@vindex gnus-uu-post-length -記事の最大の長さです。符号化されたファイルは全体のファイルを投稿するのに -必要な量のファイルに分割されます。 - -@item gnus-uu-post-threaded -@vindex gnus-uu-post-threaded -@code{nil} でないのは、@code{gnus-uu} が符号化されたファイルをスレッドで投 -稿するという事です。これはあまり賢い方法ではないかも知れません。というのは、 -今まで私が見た中で uuencode された記事を集めるのに、スレッドを追っていく事 -のできる他の復号装置が存在しないからです。(えーと、私はそれをする一つのパッ -ケージを見た事があります――@code{gnus-uu} です。しかしなぜか、それが数の -うちに入るとは思えないのです...)ディフォルトは @code{nil} です。 - -@item gnus-uu-post-separate-description -@vindex gnus-uu-post-separate-description -@code{nil} でないのは、記述は別の記事で投稿されるという事です。最初の記 -事は普通は (0/x) のように番号が付けられます。もしこの変数が @code{nil} -であると、利用者の書いた記述は最初のファイルの始めに取り込まれ、(1/x) の -番号が付けられます。ディフォルトは @code{t} です。 - -@end table - - -@node Viewing Files -@subsection ファイルの閲覧 -@cindex viewing files -@cindex pseudo-articles - -復号化した後でファイルが何らかのアーカイブである場合、gnus はアーカイブを -展開しようと試み、アーカイブの中に閲覧できるファイルがあるかを調べます。例 -えば、gzip された tar ファイル @file{pics.tar.gz} があって、ファイル -@file{pic1.jpg} と @file{pic2.gif} を含んでいる場合、gnus は主ファイルを解 -凍して tar を展開し、それから2つの絵を閲覧します。この展開の過程は再帰的 -なので、アーカイブにアーカイブのアーカイブがあると、それはすべて展開されま -す。 - -最後に、gnus は普通はそれぞれの抽出された記事ごとに@dfn{疑似記事}を概略バッ -ファに挿入します。これらの『記事』に移動した場合は、実行する命令(普通は -gnus が提案をします)を入力するように促され、それから命令が実行されます。 - -@vindex gnus-view-pseudo-asynchronously -@code{gnus-view-pseudo-asynchronously} が @code{nil} であると、Emacs は -先へ進む前に閲覧が終わるまで待ちます。 - -@vindex gnus-view-pseudos -@code{gnus-view-pseudos} が @code{automatic} であると、gnus は概略バッファ -に疑似記事を挿入しませんが、それらをすぐに閲覧します。この変数が -@code{not-confirm} であると、利用者は閲覧が済む前に確認さえも求められま -せん。 - -@vindex gnus-view-pseudos-separately -@code{gnus-view-pseudos-separately} が @code{nil} でないと、一つの疑似記 -事が閲覧されるそれぞれのファイルに対して作成されます。@code{nil} である -と、同じ閲覧命令を使うすべての命令がその命令の引数のリストとして渡されま -す。 - -@vindex gnus-insert-pseudo-articles -@code{gnus-insert-pseudo-articles} が @code{nil} でないと、復号化のとき -に疑似記事を挿入します。ディフォルトでは @code{t}です。 - -それで、そのような感じです。@emph{実質サーバー}からの@emph{実質グループ}の -@emph{疑似記事} 読んでいます。そして考えます: どうして全てが現実ではなく -なってしまったのだろうか?どうしてここに来てしまったのだろうか? - - -@node Article Treatment -@section 記事の扱い - -この巨大な説明文書を読んできて、人々が書いた事を読む、といったようなニュー -ズリーダーの本当の目的を完全に忘れてしまったかも知れません。記事を読む事 -です。残念な事に、人々は書く事は非常に苦手としていますので、記事を読みや -すくするための関数と変数が山のようにあります。 - -@menu -* Article Highlighting:: 記事を果物サラダのように見えるようにしたい。 -* Article Fontisizing:: 強調された文を素敵にする。 -* Article Hiding:: 特定の情報は消し去りたいとも思う。 -* Article Washing:: 人生をもっとよくするたくさんの気の利いた関数。 -* Article Buttons:: URL や Message-ID や アドレスなどをクリックする。 -* Article Date:: ぐずぐず言うな、世界時だ! -* Article Signature:: 署名って何? -@end menu - - -@node Article Highlighting -@subsection 記事のハイライト -@cindex highlight - -記事バッファを果物サラダのようにしたいだけでなく、華やかな果物サラダのよ -うに見えるようにしたいでしょう。 - -@table @kbd - -@item W H a -@kindex W H a (概略) -@findex gnus-article-highlight -現在の記事をハイライト (highlight) します -(@code{gnus-article-highlight})。 - -@item W H h -@kindex W H h (概略) -@findex gnus-article-highlight-headers -@vindex gnus-header-face-alist -ヘッダーをハイライトします (@code{gnus-article-highlight-headers})。ハイラ -イトは変数 @code{gnus-header-face-alist} にしたがってなされ、それはそれぞ -れの要素が @var{(正規表現 名前 内容)} という様式のリストです。 @var{正規表 -現}はヘッダーに合致する正規表現、@var{名前}はヘッダーの名前をハイライトす -るのに使われるフェイス (face) (@pxref{FacesandFonts})、@var{内容}はヘッダー -の値をハイライトするフェイスです。最初に合致したものが使われます。@var{正 -規表現}は @samp{^} が付けられるべきではない事に注意してください――gnus が -それを付け加えます。 - -@item W H c -@kindex W H c (概略) -@findex gnus-article-highlight-citation -引用された文をハイライトします (@code{gnus-article-highlight-citation})。 - -引用ハイライトをカスタマイズするいくつかの変数は: - -@table @code -@vindex gnus-cite-parse-max-size - -@item gnus-cite-parse-max-size -記事の大きさがこの変数(ディフォルトでは 25000)より大きい記事は、引用ハイ -ライトは行われません。 - -@item gnus-cite-prefix-regexp -@vindex gnus-cite-prefix-regexp -ある行が取り得る最大の引用接頭語に合致する正規表現です。 - -@item gnus-cite-max-prefix -@vindex gnus-cite-max-prefix -引用接頭語の最大の長さです(ディフォルトでは 20 です)。 - -@item gnus-cite-face-list -@vindex gnus-cite-face-list -引用をハイライトするために使われるフェイスのリストです (@pxref{Faces and -Fonts})。同じメッセージの中に複数の記事からの引用があると、gnus はそれぞ -れの記事からの引用をそれ用のフェイスで表示しようとします。これにより、誰 -が何を書いたかが分かりやすくなるでしょう。 - -@item gnus-supercite-regexp -@vindex gnus-supercite-regexp -普通の Supercite 属性行に合致する正規表現です。 - -@item gnus-supercite-secondary-regexp -@vindex gnus-supercite-secondary-regexp -引き裂かれた Supercite 属性行に合致する正規表現です。 - -@item gnus-cite-minimum-match-count -@vindex gnus-cite-minimum-match-count -それが引用であると決定する前に調べなければならない最小の同一接頭語です。 - -@item gnus-cite-attribution-prefix -@vindex gnus-cite-attribution-prefix -属性行の始まりに合致する正規表現です。 - -@item gnus-cite-attribution-suffix -@vindex gnus-cite-attribution-suffix -属性行の最後に合致する正規表現です。 - -@item gnus-cite-attribution-face -@vindex gnus-cite-attribution-face -属性行に使われるフェイスです。その属性に属する文のためのフェイスと融合さ -れます。 - -@end table - - -@item W H s -@kindex W H s (概略) -@vindex gnus-signature-separator -@vindex gnus-signature-face -@findex gnus-article-highlight-signature -署名 (signature) をハイライトします -(@code{gnus-article-highlight-signature})。 -@code{gnus-signature-separator} (@pxref{Article Signature}) の後の全ての -ものは署名と考えられ、@code{gnus-signature-face} でハイライトされます。 -それはディフォルトでは @code{italic} です。 - -@end table - - -@node Article Fontisizing -@subsection 記事のフォント変更 -@cindex emphasis -@cindex article emphasis - -@cindex gnus-article-emphasize -@kindex W e (概略) -人々はよくニューズの記事で @samp{_これ_} や @samp{*これ*} のようなものを -使って単語を強調します。Gnus は 記事を命令 @kbd{W e} -(@code{gnus-article-emphasize}) にかける事によって素敵に見えるようにでき -ます。 - -@vindex gnus-article-emphasis -強調がどのように演算されるかは変数 @code{gnus-article-emphasis} によって制 -御されます。これは最初の要素が合致するべき正規表現である連想リストです。2 -番目の要素はどの正規表現のグループが強調語全体を見つけるために使われるかを -示す数字です。3番目はどの正規表現のグループが表示されハイライトされるかを -決める数字です。(この2つのグループの間の記事は隠されます。)4番目はハイ -ライトのフェイスです。 - -@lisp -(setq gnus-article-emphasis - '(("_\\(\\w+\\)_" 0 1 gnus-emphasis-underline) - ("\\*\\(\\w+\\)\\*" 0 1 gnus-emphasis-bold))) -@end lisp - -@vindex gnus-emphasis-underline -@vindex gnus-emphasis-bold -@vindex gnus-emphasis-italic -@vindex gnus-emphasis-underline-bold -@vindex gnus-emphasis-underline-italic -@vindex gnus-emphasis-bold-italic -@vindex gnus-emphasis-underline-bold-italic -ディフォルトでは7つの規則があり、それらは以下のフェイスを用います: -@code{gnus-emphasis-bold}, @code{gnus-emphasis-italic}, -@code{gnus-emphasis-underline}, @code{gnus-emphasis-bold-italic}, -@code{gnus-emphasis-underline-italic}, -@code{gnus-emphasis-underline-bold}, -@code{gnus-emphasis-underline-bold-italic}. - -これらのフェイスを変更したいのであれば、@kbd{M-x customize} か -@code{copy-face} を使う事ができます。例えば、@code{gnus-emphasis-italic} -に代わりに赤のフェイスを使うようにしたいときは、次のようにできます: - -@lisp -(copy-face 'red 'gnus-emphasis-italic) -@end lisp - - -@node Article Hiding -@subsection 記事を隠す -@cindex article hiding - -もしくは、それぞれの記事の特定のものを隠したいかもしれません。たいていの -記事には普通はありすぎるくらい作りかえるものがあります。 - -@table @kbd - -@item W W a -@kindex W W a (概略) -@findex gnus-article-hide -概略バッファで最大限隠します (@kbd{gnus-article-hide})。 - -@item W W h -@kindex W W h (概略) -@findex gnus-article-hide-headers -ヘッダーを隠します (@code{gnus-article-hide-headers})。 @xref{Hiding -Headers}. - -@item W W b -@kindex W W b (概略) -@findex gnus-article-hide-boring-headers -あまり興味のもてないヘッダーを隠します -(@code{gnus-article-hide-boring-headers})。 @xref{Hiding Headers}. - -@item W W s -@kindex W W s (概略) -@findex gnus-article-hide-signature -署名を隠します (@code{gnus-article-hide-signature})。 @xref{Article -Signature}. - -@item W W p -@kindex W W p (概略) -@findex gnus-article-hide-pgp -@vindex gnus-article-hide-pgp-hook -@sc{pgp} 署名を隠します (@code{gnus-article-hide-pgp})。 @sc{pgp} 署名が -隠された後にフック @code{gnus-article-hide-pgp-hook} が実行されます。 - -@item W W P -@kindex W W P (概略) -@findex gnus-article-hide-pem -@sc{pem} (privacy enhanced messages(プライバシー拡張メッセージ)) 部分を -隠します (@code{gnus-article-hide-pem})。 - -@item W W c -@kindex W W c (概略) -@findex gnus-article-hide-citation -引用を隠します (@code{gnus-article-hide-citation})。隠蔽をカスタマイズする -いくつかの変数は: - -@table @code - -@item gnus-cite-hide-percentage -@vindex gnus-cite-hide-percentage -引用された文がこの変数(ディフォルトでは 50)より大きい割合のときは、引用 -された分を隠します。 - -@item gnus-cite-hide-absolute -@vindex gnus-cite-hide-absolute -引用された文は少なくともこの長さ(ディフォルトでは 10)でなければ隠されま -せん。 - -@item gnus-cited-text-button-line-format -@vindex gnus-cited-text-button-line-format -Gnus はどこの引用文が隠されているかを示すためにボタンを付け加え、文章の -隠蔽を切り替えられるようにします。この変数の様式はこれらのフォーマットの -ような変数によって指定されます (@pxref{Formatting Variables})。次の指定 -は有効です: - -@table @samp -@item b -隠された文の最初のポイントです。 -@item e -隠された文の最後のポイントです。 -@item l -隠された文の長さです。 -@end table - -@item gnus-cited-lines-visible -@vindex gnus-cited-lines-visible -引用文の最初からの表示される行数です。 - -@end table - -@item W W C -@kindex W W C (概略) -@findex gnus-article-hide-citation-in-followups -根本でない記事の引用文を隠します -(@code{gnus-article-hide-citation-in-followups})。これは対話的命令として -はあまり役に立たないかもしれませんが、@code{gnus-article-display-hook} -に入れる事のできる手軽な関数であるでしょう (@pxref{Customizing -Articles})。 - -@end table - -これらの全ての『隠蔽』命令は切り替え命令ですが、これらの命令に負の接頭引数 -を与えると、それらは前に隠されていたものを表示します。正の接頭引数を与えれ -ば、それらは常に隠します。 - -引用カスタマイズのための他の変数の情報のために @pxref{Article -Highlighting} も参照してください。 - - -@node Article Washing -@subsection 記事洗濯 -@cindex washing -@cindex article washing - -私たちはこれをもっともな理由の下で『記事洗濯』(article washing) と呼んでい -ます。すなわち、キー @kbd{A} は使われているので、代わりにキー @kbd{W} を使 -う必要があるのです。 - -私たちは@dfn{洗濯}を『何かの何かを何か別のものに変換する』と定義しています -が、普通はもっと良く見える何かに落ち着きます。それにもっときれいです、たぶ -ん。 - -@table @kbd - -@item W l -@kindex W l (概略) -@findex gnus-summary-stop-page-breaking -ページの区切りを現在の記事から取り除きます -(@code{gnus-summary-stop-page-breaking})。 - -@item W r -@kindex W r (概略) -@findex gnus-summary-caesar-message -@c @icon{gnus-summary-caesar-message} -記事バッファでカエサル変換 (Caesar rotate) (rot13) をします -(@code{gnus-summary-caesar-message})。カエサル変換か rot13 を用いて読む事 -のできる、判読不可能な記事です(典型的には、攻撃的な冗談などです。) - -普通は ``rot13'' と呼ばれています。それはアルファベットの位置が 13 個回転 -するからです。例えば、@samp{B}(2番目の文字) → @samp{O}(15番目の文字)。 -これは時々『カエサル変換』と呼ばれる事もあります。というのは、カエサルがこ -の形式の、えーと、ちょっと簡単な暗号化を採用したという噂があるからです。 - -@item W t -@kindex W t (概略) -@findex gnus-summary-toggle-header -記事バッファにすべてのヘッダーを表示するかどうかを切り替えます -(@code{gnus-summary-toggle-header})。 - -@item W v -@kindex W v (概略) -@findex gnus-summary-verbose-header -記事バッファにすべてのヘッダーを永遠に表示するかどうかを切り替えます -(@code{gnus-summary-verbose-header})。 - -@item W m -@kindex W m (概略) -@findex gnus-summary-toggle-mime -記事を @sc{mime} 記事として表示するかどうかを切り替えます -(@code{gnus-summary-toggle-mime})。 - -@item W o -@kindex W o (概略) -@findex gnus-article-treat-overstrike -オーバーストライクを処理します (@code{gnus-article-treat-overstrike})。 - -@item W d -@kindex W d (概略) -@findex gnus-article-treat-dumbquotes -M******** sm*rtq**t*s を処理します -(@code{gnus-article-treat-dumbquotes})。 - -@item W w -@kindex W w (概略) -@findex gnus-article-fill-cited-article -語の折り返しをします (@code{gnus-article-fill-cited-articles})。もしこの -関数を @code{gnus-article-display-hook} の中で使った場合、それはかなり後 -の方で実行されるべきで、当然すべてのハイライトの後になります。 - -折り返しをするときに、幅を指定するために命令に数値接頭引数を与える事がで -きます。 - -@item W c -@kindex W c (概略) -@findex gnus-article-remove-cr -キャリッジリターン (CR) (すなわち、行の最後の @samp{^M}) を取り除きます -(@code{gnus-article-remove-cr})。 - -@item W f -@kindex W f (概略) -@cindex x-face -@findex gnus-article-display-x-face -@findex gnus-article-x-face-command -@vindex gnus-article-x-face-command -@vindex gnus-article-x-face-too-ugly -@iftex -@iflatex -\include{xface} -@end iflatex -@end iftex -すべての X-Face 欄を探して表示します(@code{gnus-article-display-x-face})。 -この命令は変数 @code{gnus-article-x-face-command} によって与えられた関数に -よって実行されます。この変数が文字列ならば、この文字列がサブシェルで実行さ -れます。関数ならば、この関数が顔を引数として呼ばれます。もし -@code{gnus-article-x-face-too-ugly}(これは正規表現です)が @code{From} 欄 -に合致すれば、顔は表示されません。Emacs でのディフォルトの動作は -@code{xv} をフォークして見ようとします。XEmacs でのディフォルトの動作は -@code{From} 欄の前に顔を表示します。(XEmacs が X-Face 機能付きでコンパイ -ルされていると良いでしょう――それは表示を少し早くします。もし根本的 -X-Face 機能がないのであれば、gnus は @code{pbmplus} やその仲間の外部プログ -ラムを使って @code{X-Face} 欄を変換しようと試みます。)この関数を表示フッ -クに入れたいのであれば、おそらくそれあ最後になるべきでしょう。 - -@item W b -@kindex W b (概略) -@findex gnus-article-add-buttons -クリックできるボタンを記事に加えます (@code{gnus-article-add-buttons})。 -@xref{Article Buttons} - -@item W B -@kindex W B (概略) -@findex gnus-article-add-buttons-to-head -クリックできるボタンを記事のヘッダーに加えます -(@code{gnus-article-add-buttons-to-head})。 - -@item W E l -@kindex W E l (概略) -@findex gnus-article-strip-leading-blank-lines -記事の始めからのすべての空白行を取り除きます -(@code{gnus-article-strip-leading-blank-lines})。 - -@item W E m -@kindex W E m (概略) -@findex gnus-article-strip-multiple-blank-lines -すべての空白行を空行で置き換え、すべての複数の空行を一つの空行で置き換え -ます (@code{gnus-article-strip-multiple-blank-lines})。 - -@item W E t -@kindex W E t (概略) -@findex gnus-article-remove-trailing-blank-lines -記事の最後のすべての空白行を取り除きます -(@code{gnus-article-remove-trailing-blank-lines})。 - -@item W E a -@kindex W E a (概略) -@findex gnus-article-strip-blank-lines -上の3つの命令をすべて行います (@code{gnus-article-strip-blank-lines})。 - -@item W E A -@kindex W E A (概略) -@findex gnus-article-strip-all-blank-lines -すべての空白行を取り除きます (@code{gnus-article-strip-all-blank-lines})。 - -@item W E s -@kindex W E s (概略) -@findex gnus-article-strip-leading-space -記事の本体のすべての行の始めからのすべての空白を取り除きます -(@code{gnus-article-strip-leading-space})。 - -@end table - - -@node Article Buttons -@subsection 記事のボタン -@cindex buttons - -よく記事の中に他のものへの参照が入れられる事があります。そして、gnus が -それに関する事を、それらの参照の上で @kbd{RET} を打つか、マウスの真中の -ボタンを使う事によって、最小限の努力で取得する事ができれば素敵でしょう。 - -Gnus はディフォルトで特定の標準の参照に@dfn{ボタン}を付けます: ちゃんとし -た URL、メールアドレス、Message-ID です。これは2つの変数によって制御され -ていて、その一つは記事の本体を扱い、もう一つは記事のヘッダーを扱います。 - -@table @code - -@item gnus-button-alist -@vindex gnus-button-alist -それぞれの入力要素が次のような様式の連想リストです: - -@lisp -(REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR) -@end lisp - -@table @var - -@item regexp -この正規表現 (regexp) に合致するすべての文は外部参照であるとみなされます。 -これは埋め込まれた URL に合致する典型的な正規表現です -@samp{]*\\)>}。 - -@item button-par -Gnus は合致したもののどの部分がハイライトされるのかを知らなければなりま -せん。これは正規表現のどの副表現がハイライトされるかを指定する番号です。 -全てをハイライトしたいのなら、ここで 0 を使ってください。 - -@item use-p -この式は @code{評価} され、結果が @code{nil} でなければ、これは合致であ -るとみなされます。これは間違った合致を避けるために特別な選別をしたいとき -に役に立ちます。 - -@item function -この関数 (function) はこのボタンをクリックしたときに呼ばれます。 - -@item data-par -@var{button-par} のように、これは部分表現の番号ですが、これは合致のどの部 -分が @var{function} にデータとして送られるかを指定します。 - -@end table - -ですから、URL をボタンにする完全な入力要素は - -@lisp -("]*\\)>" 0 t gnus-button-url 1) -@end lisp - -@item gnus-header-button-alist -@vindex gnus-header-button-alist -それが記事のヘッダーだけに適用され、それぞれの入力要素がどのヘッダーにボ -タン化を適用するかを示す追加の要素がある事を除き、これは他の連想リストと -同じようなものです: - -@lisp -(HEADER REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR) -@end lisp - -@var{HEADER} は正規表現です。 - -@item gnus-button-url-regexp -@vindex gnus-button-url-regexp -埋め込まれた URL に合致する正規表現です。それは上の変数のディフォルトの -値で使われます。 - -@item gnus-article-button-face -@vindex gnus-article-button-face -ボタンに使われるフェイスです。 - -@item gnus-article-mouse-face -@vindex gnus-article-mouse-face -マウスのカーソルがボタンの上にあるときに使われるフェイスです。 - -@end table - - -@node Article Date -@subsection 記事の日付 - -日付は聞いた事の無い何か辺鄙な時間帯 (timezone) で作成されている事が良くあ -るので、記事が送られたときに何時であったかを知る事ができるのは非常に良い事 -でしょう。 - -@table @kbd - -@item W T u -@kindex W T u (概略) -@findex gnus-article-date-ut -UT (別名 GMT, ZULU) で日付を表示します (@code{gnus-article-date-ut})。 - -@item W T i -@kindex W T i (概略) -@findex gnus-article-date-iso-8601 -@cindex ISO 8601 -日付を国際的な形式、ISO 8601 で表示します -(@code{gnus-article-date-iso8601})。 - -@item W T l -@kindex W T l (概略) -@findex gnus-article-date-local -日付をその地域の時間帯で表示します (@code{gnus-article-date-local})。 - -@item W T s -@kindex W T s (概略) -@vindex gnus-article-time-format -@findex gnus-article-date-user -@findex format-time-string -日付を利用者定義の様式を使って表示します (@code{gnus-article-date-user})。 -その様式は変数 @code{gnus-article-time-format} で指定され、 -@code{format-time-string} に渡される文字列です。様式指定をする事ができる -一覧は変数の説明文を見てください。 - -@item W T e -@kindex W T e (概略) -@findex gnus-article-date-lapsed -@findex gnus-start-date-timer -@findex gnus-stop-date-timer -記事が投稿されてから今までどれくらいの時間が経過したかを表示します -(@code{gnus-article-date-lapsed})。この行が連続して更新されるようにした -いのであれば、 - -@lisp -(gnus-start-date-timer) -@end lisp - -をあなたの @file{.gnus.el} ファイルに入れるか、何かのフックで実行するよ -うにする事ができます。タイマーを止めたいのであれば、命令 -@code{gnus-stop-date-timer} を使う事ができます。 - -@item W T o -@kindex W T o (概略) -@findex gnus-article-date-original -本来の日付を表示します (@code{gnus-article-date-original})。これはあなたが -普通は他の変換関数を使っていて、それが完全に間違った事をしているのではない -かと心配しているときに役に立ちます。例えば、記事が 1854 年に投稿されたとなっ -ているとしましょう。しかし、そのような事は@emph{完全に}不可能です。私が -信用できませんか? *くすくす(笑)* - -@end table - - -@node Article Signature -@subsection 記事の署名 -@cindex signatures -@cindex article signature - -@vindex gnus-signature-separator -それぞれの記事は2つの部分に分けられます――見出し (header) と本体 -(body) です。本体は署名部分と文章部分に分けられます。どれが署名とみなされ -るかを決める変数は @code{gnus-signature-separator} です。これは普通は -son-of-RFC 1036 で指示されている標準の @samp{^-- $} です。しかし、多くの人 -が標準でない署名分離を用いますので、この変数は一つ一つ試される、正規表現の -リストであることもできます。(探索は本体の最後から始めへとなされます。)よ -くありそうな値は: - -@lisp -(setq gnus-signature-separator - '("^-- $" ; 標準 - "^-- *$" ; 普通の壊し方 - "^-------*$" ; 多くの人は長ーーい横棒の - ; 行を使います。あぁ! - "^ *--------*$" ; 2倍のあぁぁ! - "^________*$" ; 下線も人気があります - "^========*$")) ; 邪道! -@end lisp - -あなたが寛容であればあるほど、間違った結果を得る事になるでしょう。 - -@vindex gnus-signature-limit -@code{gnus-signature-limit} はどれが署名とみなされるかへの制限を提供しま -す。 - -@enumerate -@item -これが整数であれば、署名はこの整数より(文字で)長くなっていてはいけません。 -@item -これが浮動小数点数であれば、署名はその数字より(行で)長くなっていてはいけ -ません。 -@item -これが関数であれば、その関数は引数なしで呼ばれ、それが @code{nil} を返せ -ば、バッファには署名がありません。 -@item -これが文字列であれば、それは正規表現として使われます。もしそれが合致すれ -ば、その当の文字列は署名ではありません。 -@end enumerate - -この変数は要素が上に挙げられた型のリストである事もできます。これは例です: - -@lisp -(setq gnus-signature-limit - '(200.0 "^---*Forwarded article")) -@end lisp - -これは署名分離物の後に 200 を超える行か、署名分離物の後の文章が正規表現 -@samp{^---*Forwarded article} に合致すれば、結局それは署名ではないという事 -です。 - - -@node Article Commands -@section 記事命令 - -@table @kbd - -@item A P -@cindex PostScript -@cindex printing -@kindex A P (概略) -@vindex gnus-ps-print-article -@findex gnus-summary-print-article -記事バッファのポストスクリプト (PostScript) イメージを作成して印刷します -(@code{gnus-summary-print-article})。@code{gnus-ps-print-hook} がバッファ -を印刷する直前に実行されるでしょう。 - -@end table - - -@node Summary Sorting -@section 概略の並び替え -@cindex summary sorting - -私はどうしてあなたがそうしたいのかはわからないのですが、それでもあなたは -たくさんの方法で概略バッファを並び替える事ができます。 - -@table @kbd - -@item C-c C-s C-n -@kindex C-c C-s C-n (概略) -@findex gnus-summary-sort-by-number -記事番号によって並び替えます (@code{gnus-summary-sort-by-number})。 - -@item C-c C-s C-a -@kindex C-c C-s C-a (概略) -@findex gnus-summary-sort-by-author -著者によって並び替えます (@code{gnus-summary-sort-by-author})。 - -@item C-c C-s C-s -@kindex C-c C-s C-s (概略) -@findex gnus-summary-sort-by-subject -表題によって並び替えます (@code{gnus-summary-sort-by-subject})。 - -@item C-c C-s C-d -@kindex C-c C-s C-d (概略) -@findex gnus-summary-sort-by-date -日付によって並び替えます (@code{gnus-summary-sort-by-date})。 - -@item C-c C-s C-l -@kindex C-c C-s C-l (概略) -@findex gnus-summary-sort-by-lines -行によって並び替えます (@code{gnus-summary-sort-by-lines})。 - -@item C-c C-s C-i -@kindex C-c C-s C-i (概略) -@findex gnus-summary-sort-by-score -スコアによって並び替えます (@code{gnus-summary-sort-by-score})。 -@end table - -これらの関数はスレッドを使っているときと使っていないときの両方で動作しま -す。後者の場合は、すべての概略行が一行一行並び替えられます。前者の場合は、 -根本と根本を基本として並び替えられ、それはあなたが求めている事とは異 -なっているかもしれません。スレッドを使う事を切り替えるには @kbd{T T} を -打ってください (@pxref{Thread Commands})。 - - -@node Finding the Parent -@section 親記事を探す -@cindex parent articles -@cindex referring articles - -@table @kbd -@item ^ -@kindex ^ (概略) -@findex gnus-summary-refer-parent-article -現在の記事の親記事を読みたくて、それが概略バッファに表示されていないくて -も、おそらくそれは可能でしょう。というのは、現在のグループが @sc{nntp} -で取得されていて、親がまだ期限消去されていない上、現在の記事の -@code{References} がぶち壊されていなければ、ただ、@kbd{^} か @kbd{A r} -を押せば良いだけです (@code{gnus-summary-refer-parent-article})。もし全 -てが上手く行けば、親記事を取得できるでしょう。もし親記事が既に概略バッファ -に表示されているのであれば、ポイントがその記事に移動するでしょう。 - -正の数値接頭引数を与えられれば、祖先まで多くの記事を戻って取得します。負 -の数字接頭引数が与えられれば、その祖先の記事だけを取得します。ですから、 -@kbd{3 ^} とすれば、gnus は現在の記事の親と、祖父母と、曾祖父母を取得し -ます。 @kbd{-3 ^} とすれば、gnus は現在の記事の曾祖父母だけを取得します。 - -@item A R (概略) -@findex gnus-summary-refer-references -@kindex A R (概略) -記事の @code{References} 欄にある全ての記事を取得します -(@code{gnus-summary-refer-references})。 - -@item A T (概略) -@findex gnus-summary-refer-thread -@kindex A T (概略) -現在の記事が出てきているスレッドの、完全なスレッドを表示します -(@code{gnus-summary-refer-thread})。この命令は動作するために現在のグルー -プのすべてのヘッダーを取得しなければなりませんので、普通は少し時間がかか -ります。もし、これをしばしば行うのであれば、 -@code{gnus-fetch-old-headers} を @code{invisible} に設定することを考えた -ほうが良いでしょう (@pxref{Filling In Threads})。これは普通は視覚的な効 -果はありませんが、この命令の動作をかなり速くするでしょう。もちろん、グルー -プに入るのは少し遅くなります。 - -@vindex gnus-refer-thread-limit -変数 @code{gnus-refer-thread-limit} はこの命令を実行するときにどのくらい古 -い(すなわち、現在の記事で最初に表示されたよりも前の記事)ヘッダーを取得す -るかを指定します。ディフォルトは 200 です。もし @code{t} であれば、取得可 -能なすべてのヘッダーを取得します。この変数は命令 @code{A T} に数値接頭引数 -を与える事により上書きする事ができます。 - -@item M-^ (概略) -@findex gnus-summary-refer-article -@kindex M-^ (概略) -@cindex Message-ID -@cindex fetching by Message-ID -どのグループに属しているかに関わらず、任意の記事を @sc{nntp} サーバーに -尋ねる事ができます。@kbd{M-^} (@code{gnus-summary-refer-article}) は -@code{Message-ID}、それはあの長く、なかなか読む事のできない -@samp{<38o6up$6f2@@hymir.ifi.uio.no>} のような参照をあなたに尋ねます。 -あなたはすべてを正確に打ち込まなければなりません。残念ながら、あいまいな -検索はできないのです。 -@end table - -ニュースでない選択方法から @code{Message-ID} で取得するときには現在の選択 -方法が使われますが、この命令に接頭引数を与える事でこれを上書きする事ができ -ます。 - -@vindex gnus-refer-article-method -もしあなたの読んでいるグループが @code{Message-ID} での取得があまり良くで -きないようなグループ(@code{nnspool} など)である場合、 -@code{gnus-refer-article-method} を @sc{nntp} に設定する事ができます。おそ -らく、あなたが会話している @sc{nntp} サーバーがあなたの読んでいるスプール -を更新していると非常に良いでしょう。しかし、それはどうしても必要なわけでは -ありません。 - -ほとんどのメールバックエンドは @code{Message-ID} での取得が可能ですが、 -あまり優雅な方法でやっているわけではありません。@code{nnmbox} と -@code{nnbabyl} はどのグループからの記事も位置を得ることができますが、 -@code{nnml} と @code{nnfolder} は現在のグループに投稿した記事の位置しか -得る事ができません。(その他のものは時間がかかりすぎます。)@code{nnmh} -では全く不可能です。 - -@node Alternative Approaches -@section 代替手段 - -違った人は違った方法を使ってニューズを読もうとします。これは gnus でもそ -うであるので、我々は概略バッファーのためのマイナーモード (minor mode) に -少しの選択肢を与えてあります。 - -@menu -* Pick and Read:: まず、記事に印を付けて、それから読む -* Binary Groups:: すべての記事を自動-復号化する -@end menu - - -@node Pick and Read -@subsection 選んで読む -@cindex pick and read - -いくつかのニュースリーダー(@code{nn} や、あのぉ、VM/CMS での -@code{Netnews} など)は2相の読むための界面を使います。利用者はまず概略バッ -ファで読みたい記事に印を付けます。それから、記事バッファだけを表示して記事 -を読みます。 - -@vindex gnus-pick-mode -@kindex M-x gnus-pick-mode -Gnus はこれをするための概略バッファマイナーモードを提供します―― -@code{gnus-pick-mode} です。これは基本的には簡単に印を付けられるように少し -のプロセス印命令が1打鍵命令になり、概略バッファへ切り替えるための追加命令 -を1つ提供します。 - -これが pick mode を使ったときに使用可能なキーです: - -@table @kbd -@item . -@kindex . (選択) -@findex gnus-summary-mark-as-processable -現在の行の記事を選択します (@code{gnus-summary-mark-as-processable})。数値 -接頭引数を与えられれば、その行に移動して選択します。(行数は普通は概略選択 -行の最初に表示されています。) - -@item SPACE -@kindex SPACE(選択) -@findex gnus-pick-next-page -概略バッファを一ページ次にスクロールします (@code{gnus-pick-next-page})。 -もしバッファの最後であれば、選択記事を読み始めます。 - -@item u -@kindex u (選択) -@findex gnus-summary-unmark-as-processable -記事を未選択にします (@code{gnus-summary-unmark-as-processable})。 - -@item U -@kindex U (選択) -@findex gnus-summary-unmark-all-processable -すべての記事を未選択にします -(@code{gnus-summary-unmark-all-processable})。 - -@item t -@kindex t (選択) -@findex gnus-uu-mark-thread -スレッドを選択します (@code{gnus-uu-mark-thread})。 - -@item T -@kindex T (選択) -@findex gnus-uu-unmark-thread -スレッドを未選択にします (@code{gnus-uu-unmark-thread})。 - -@item r -@kindex r (選択) -@findex gnus-uu-mark-region -領域を選択します (@code{gnus-uu-mark-region})。 - -@item R -@kindex R (選択) -@findex gnus-uu-unmark-region -領域を未選択にします (@code{gnus-uu-unmark-region})。 - -@item e -@kindex e (選択) -@findex gnus-uu-mark-by-regexp -正規表現に合致する記事を選択します (@code{gnus-uu-mark-by-regexp})。 - -@item E -@kindex E (選択) -@findex gnus-uu-unmrak-by-regexp -正規表現に合致する記事を未選択にします (@code{gnus-uu-unmark-by-regexp})。 - -@item b -@kindex b (選択) -@findex gnus-uu-mark-buffer -バッファを選択します (@code{gnus-uu-mark-buffer})。 - -@item B -@kindex B (選択) -@findex gnus-uu-unmark-buffer -バッファを未選択にします (@code{gnus-uu-unmark-buffer})。 - -@item RET -@kindex RET (選択) -@findex gnus-pick-start-reading -@vindex gnus-pick-display-summary -選択された記事を読み始めます (@code{gnus-pick-start-reading})。接頭引数 -を与えられれば、まずすべての未選択記事に既読の印を付けます。 -@code{gnus-pick-display-summary} が @code{nil} でないと、概略バッファは -読んでいる間も表示されます。 - -@end table - -これが良い考えだと思うのであれば、次のようにする事ができます: - -@lisp -(add-hook 'gnus-summary-mode-hook 'gnus-pick-mode) -@end lisp - -@vindex gnus-pick-mode-hook -@code{gnus-pick-minor-mode-hook} は pick マイナーモードバッファで実行さ -れます。 - -@vindex gnus-summary-pick-line-format -pick モードでの概略行の様式は標準の様式とは少し違います。それぞれの行の -最初に行数が表示されます。 Pick モードの行の様式は変数 -@code{gnus-summary-pick-line-format} で制御されます (@pxref{Formatting -Variables})。これは @code{gnus-summary-line-format} と同じ様式指定を受け -付けます (@pxref{Summary Buffer Lines})。 - - -@node Binary Groups -@subsection バイナリーグループ -@cindex binary groups - -@findex gnus-binary-mode -@kindex M-x gnus-binary-mode -もし多くの時間をバイナリーグループ (binary group) で過ごしているのなら、い -つも @kbd{X u}, @kbd{n}, @kbd{RET} を叩くのが嫌になっているでしょう。 -@kbd{M-x gnus-binary-mode} は記事を普通の方法で表示する代わりに、普通の -gnus の記事選択関数を記事群を uudecode しその結果を表示するように変更する、 -概略バッファのためのマイナーモードです。 - -@kindex g (バイナリー) -@findex gnus-binary-show-article -実際は、このモードにしたときに、現実の記事を見るための唯一の命令が -@kbd{g} です (@code{gnus-binary-show-article})。 - -@vindex gnus-binary-mode-hook -@code{gnus-binary-mode-hook} がバイナリーマイナーモードバッファで呼ばれ -ます。 - - -@node Tree Display -@section 木表示 -@cindex trees - -@vindex gnus-use-trees -もし普通の gnus の概略表示を好きでないならば、@code{gnus-use-trees} を -@code{t} に設定してみると良いかもしれません。これは(ディフォルトで)追加 -の @dfn{木バッファ} (tree buffer) を作成します。木バッファではすべての概略 -モード命令を実行する事ができます。 - -もちろん、木表示をカスタマイズする変数が少しあります: - -@table @code -@item gnus-tree-mode-hook -@vindex gnus-tree-mode-hook -すべての木モードバッファで実行されるフックです。 - -@item gnus-tree-mode-line-format -@vindex gnus-tree-mode-line-format -木モードバッファでのモード行のためのフォーマット文字列です。ディフォルト -は @samp{Gnus: %%b %S %Z} です。使用可能な指定は -@pxref{Summary Buffer ModeLine} を参照してください。 - -@item gnus-selected-tree-face -@vindex gnus-selected-tree-face -木バッファで選択された記事をハイライトするために使われるフェイスです。ディ -フォルトでは @code{modeline} です。 - -@item gnus-tree-line-format -@vindex gnus-tree-line-format -木の節のためのフォーマット文字列です。でもこの名前は少し誤った名称です―― -それは行ではなく、ただ節を定義するだけです。ディフォルトの値は -@samp{%(%[%3,3n%]%)} で、それは投稿者の名前の最初の3文字を表示します。す -べての節が同じ長さであるのは重要ですので、@samp{%4,4n} のような指定を -@emph{使わなければならない} のです。 - -有効な指定は: - -@table @samp -@item n -投稿者の名前。 -@item f -@code{From} 欄。 -@item N -記事の番号。 -@item [ -開き括弧。 -@item ] -閉じ括弧。 -@item s -表題。 -@end table - -@xref{Formatting Variables}。 - -表示に関連した変数は: - -@table @code -@item gnus-tree-brackets -@vindex gnus-tree-brackets -これは『本当の』記事と『まばら記事』に違いを付けるために使われます。 -様式は -@var{((本当の開 . 本当の閉) (まばら開 . まばら閉) (偽の開 . 偽の閉))} -となっていて、ディフォルトは -@code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))} です。 - -@item gnus-tree-parent-child-edges -@vindex gnus-tree-parent-child-edges -これは親の節を子に接続するために使われる文字を含んだリストです。ディフォ -ルトは @code{(?- ?\\ ?|)} です。 - -@end table - -@item gnus-tree-minimize-window -@vindex gnus-tree-minimize-winodw -もしこの変数が @code{nil} でないと、他の gnus ウィンドウがもっと場所を取 -れるように gnus は木バッファをできるだけ小さくします。もしこの変数が数字 -であると、木バッファはその数字より大きくなる事はありません。ディフォルト -は @code{t} です。フレームでいくつかのウィンドウが横に並んで表示されてい -て、木バッファがそのうちの一つである場合、木ウィンドウを最小化することは -その隣に表示されているすべてのウィンドウの大きさを変更する事に注意してく -ださい。 - -@item gnus-generate-tree-function -@vindex gnus-generate-tree-function -@findex gnus-generate-horizontal-tree -@findex gnus-generate-vertical-tree -実際にスレッドの木を作成する関数です。2つの既定義の使用可能な関数は: -@code{gnus-generate-horizontal-tree} と -@code{gnus-generate-vertical-tree}(これがディフォルトです)です。 - -@end table - -水平木バッファ (horizontal tree buffer) の例です: - -@example -@{***@}-(***)-[odd]-[Gun] - | \[Jan] - | \[odd]-[Eri] - | \(***)-[Eri] - | \[odd]-[Paa] - \[Bjo] - \[Gun] - \[Gun]-[Jor] -@end example - -同じスレッドが垂直木バッファ (vertical tree buffer) で表示されたものです: - -@example -@{***@} - |--------------------------\-----\-----\ -(***) [Bjo] [Gun] [Gun] - |--\-----\-----\ | -[odd] [Jan] [odd] (***) [Jor] - | | |--\ -[Gun] [Eri] [Eri] [odd] - | - [Paa] -@end example - -もし水平木を使っているのなら、概略バッファで木を隣り合わせで表示できれば -嬉しいでしょう。次のようなものをファイル @file{.gnus.el} に加える事がで -きます: - -@lisp -(setq gnus-use-trees t - gnus-generate-tree-function 'gnus-generate-horizontal-tree - gnus-tree-minimize-window nil) -(gnus-add-configuration - '(article - (vertical 1.0 - (horizontal 0.25 - (summary 0.75 point) - (tree 1.0)) - (article 1.0)))) -@end lisp - -@xref{Windows Configuration}。 - - -@node Mail Group Commands -@section メールグループ命令 -@cindex mail group commands - -いくつかの命令はメールグループのみで意味を持ちます。これらの命令が現在の -グループで有効でないなら、それらは大騒ぎをしてあなたに知らせるでしょう。 - -すべてのこれらの命令は(期限削除と編集命令は除く)プロセス/接頭引数の習慣 -を使います (@pxref{Process/Prefix})。 - -@table @kbd - -@item B e -@kindex B e (概略) -@findex gnus-summary-expire-articles -グループのすべての期限削除可能な記事を期限切れ削除します -(@code{gnus-summary-expire-articles})。 - -@item B M-C-e -@kindex B M-C-e (概略) -@findex gnus-summary-expire-articles-now -グループのすべての期限削除可能な記事削除します -(@code{gnus-summay-expire-articles-now})。これは現在のグループの該当する -@strong{全て}の期限削除記事は永遠に空の大きな @file{/dev/null} へ消え去る -という事です。 - -@item B DEL -@kindex B DEL (概略) -@findex gnus-summary-delete-article -@c @icon{gnus-summary-mail-delete} -メール記事を削除します。これは『あなたのディスクから今から永遠に削除して、 -二度と戻らない』の『削除』です。注意して使ってください -(@code{gnus-summary-delete-article})。 - -@item B m -@kindex B m (概略) -@cindex move mail -@findex gnus-summary-move-article -あるメールグループから別のところへ記事を移動します -(@code{gnus-summary-move-article})。 - -@item B c -@kindex B c (概略) -@cindex copy mail -@findex gnus-summary-copy-article -@c @icon{gnus-summary-mail-copy} -あるグループ(メールグループや他のもの)からメールグループに記事を複製しま -す (@code{gnus-summary-copy-article})。 - -@item B B -@kindex B B (概略) -@cindex crosspost mail -@findex gnus-summary-crosspost-article -現在の記事を他のグループにクロスポストします -(@code{gnus-summary-crosspost-article})。これは他のグループ記事の新しい複 -製を作成し、記事の Xref 欄も適切に更新されます。 - -@item B i -@kindex B i (概略) -@findex gnus-summary-import-article -任意のファイルを現在のメールグループに取り込みます -(@code{gnus-summary-import-article})。あなたはファイル名と、@code{From} 欄 -と @code{Subject} 欄の入力を促されます。 - -@item B r -@kindex B r (概略) -@findex gnus-summary-respool-article -メール記事をスプールし直します (@code{gnus-summary-move-article})。 -@code{gnus-summary-respool-default-method} が再スプールするときのディフォ -ルトの選択方法として使用されます。この変数はディフォルトで @code{nil} で、 -これは現在のグループの選択方法が代わりに使われるという事です。 - -@item B w -@itemx e -@kindex B w (概略) -@kindex e (概略) -@findex gnus-summary-edit-article -@kindex C-c C-c (記事) -現在の記事を編集します (@code{gnus-summary-edit-article})。編集を終了し -て変更を永遠にするために、@kbd{C-c C-c} を打ちます。もし命令 -@kbd{C-c C-c} に数値接頭引数を与えると、gnus は記事を再ハイライトしませ -ん。 - -@item B q -@kindex B q (概略) -@findex gnus-summary-respool-query -もし記事を再スプールしたいときは、再スプールをする前にどのグループに記事 -が移るかに興味があるでしょう。この命令でそれがわかります -(@code{gnus-summary-respool-query})。 - -@item B p -@kindex B p (概略) -@findex gnus-summary-article-posted-p -一部の人はあなたの投稿へのフォローアップをするときに、『親切な』複製を送る -傾向があります。これらは普通はそこに @code{Newsgroups} 欄が付いているので -すが、いつもそうであるとは限りません。この命令 -(@code{gnus-summary-article-posted-p}) は現在の記事をあなたのニュースサー -バーから(というよりは、むしろ @code{gnus-refer-article-method} や -@code{gnus-select-method} から)取得しようとし、記事を発見できたかどうかを -報告します。それが記事を発見しなかったとしても、それはとにかく投稿されてい -るかもしれません――メールの伝達はニュースの伝達よりもずっと速く、ニュース -の複製がまだ到着していないだけかもしれないのです。 - -@end table - -@vindex gnus-move-split-methods -@cindex moving articles -もし、規則的に記事を移動(もしくは複製)するのであれば、gnus に記事をどこ -に入れれば良いか提案させたいと思うでしょう。 -@code{gnus-move-split-methods} は @code{gnus-split-methods} と同じ構文を使 -う変数です (@pxref{Saving Articles})。あなたが妥当だと思うような提案をする -ようにその変数をカスタマイズする事ができます。 - -@lisp -(setq gnus-move-split-methods - '(("^From:.*Lars Magne" "nnml:junk") - ("^Subject:.*gnus" "nnfolder:important") - (".*" "nnml:misc"))) -@end lisp - - -@node Various Summary Stuff -@section いろいろな概略の物件 - -@menu -* Summary Group Information:: 情報指向の命令。 -* Searching for Articles:: 複数記事命令。 -* Summary Generation Commands:: 概略バッファの(再)作成。 -* Really Various Summary Commands:: あのやっかいな他に適合しない命令。 -@end menu - -@table @code -@vindex gnus-summary-mode-hook -@item gnus-summary-mode-hook -概略モードバッファを作成するときにこのフックが呼ばれます。 - -@vindex gnus-summary-generate-hook -@item gnus-summary-generate-hook -これはスレッド作成と概略バッファ作成の前に実行する最後のものとして呼ばれ -ます。これはニューズグループの持っているデータに基づいてスレッドの変数を -カスタマイズするために非常に便利です。このフックはほとんどの概略バッファ -変数が設定された後に呼ばれます。 - -@vindex gnus-summary-prepare-hook -@item gnus-summary-prepare-hook -それは概略バッファが作成された後に呼ばれます。例えば、それは何か他の邪悪 -な方法で行をハイライトしたり、バッファの見え方を修正したりするのに使った -りするかも知れません。 - -@vindex gnus-summary-ignore-duplicates -@item gnus-summary-ignore-duplicates -Gnus が同じ @code{Message-ID} を持つ2つの記事を発見したときは、何か思い切っ -た事をしなければなりません。別の記事が同じ @code{Message-ID} を持つ事は許 -されていませんが、それは何らかの出所からメールを読んでいるときに起こるかも -しれません。Gnus はこの変数によって何が起こるかをカスタマイズできるように -なっています。もしそれが @code{nil}(これがディフォルトです)であれば、 -gnus は @code{Message-ID} を付け替えて(表示のためだけに)記事を他の記事と -同じように表示します。この変数が @code{t} であると、それは記事を表示しませ -ん---最初から存在しなかったかのように。 - -@end table - - -@node Summary Group Information -@subsection 概略グループ情報 - -@table @kbd - -@item H f -@kindex H f (概略) -@findex gnus-summary-fetch-faq -@vindex gnus-grou-faq-directory -現在のグループの FAQ(frequently asked questions(頻繁にされる質問)のリス -ト)を取得しようとします (@code{gnus-summary-fetch-faq})。Gnus は普通は遠 -隔マシンのディレクトリである @code{gnus-group-faq-directory} から FAQ を取 -得しようとします。この変数はディレクトリーのリストである事もできます。その -場合は、この命令に接頭引数を与える事でいろいろなサイト (site) から選ぶ事が -できます。おそらく @code{ange-ftp} もしくは @code{efs} がファイルの取得に -使われるでしょう。 - -@item H d -@kindex H d (概略) -@findex gnus-summary-describe-group -現在のグループに関する短い記述を与えます -(@code{gnus-summary-describe-group})。接頭引数が与えられると、サーバーから -強制的に記述の再読み込みをします。 - -@item H h -@kindex H h (概略) -@findex gnus-summary-describe-briefly -最重要概略打鍵の非常に短い記述を与えます -(@code{gnus-summary-describe-briefly})。 - -@item H i -@kindex H i (概略) -@findex gnus-info-find-node -Gnus の info の節 (node) に移動します (@code{gnus-info-find-node})。 -@end table - - -@node Searching for Articles -@subsection 記事を探す - -@table @kbd - -@item M-s -@kindex M-s (概略) -@findex gnus-summary-search-article-forward -直後にある全ての記事を正規表現で検索します -(@code{gnus-summary-search-article-forward})。 - -@item M-r -@kindex M-r (概略) -@findex gnus-summary-search-article-backward -前にある全ての記事を正規表現で検索します -(@code{gnus-summary-search-article-backward})。 - -@item & -@kindex & (概略) -@findex gnus-summary-execute-command -この命令はあなたにヘッダー部分とその部分に合致する正規表現、合致した場合 -に実行される命令の入力を促進します (@code{gnus-summary-execute-command})。 -もし接頭引数を与えられれば、代わりに後ろ向きに探します。 - -@item M-& -@kindex M-& (概略) -@findex gnus-summary-universal-argument -プロセス印によって印付けられた全ての記事の操作を実行します -(@code{gnus-summary-universal-argument})。 -@end table - -@node Summary Generation Commands -@subsection 概略生成命令 - -@table @kbd - -@item Y g -@kindex Y g (概略) -@findex gnus-summary-prepare -現在の概略バッファを再作成します (@code{gnus-summary-prepare})。 - -@item Y c -@kindex Y c (概略) -@findex gnus-summary-insert-cached-articles -全ての(現在のグループに)キャッシュされた記事 を概略バッファに挿入します -(@code{gnus-summary-insert-cached-articles})。 - -@end table - - -@node Really Various Summary Commands -@subsection 本当にいろいろな概略命令 - -@table @kbd - -@item C-d -@kindex C-d (概略) -@findex gnus-summary-enter-digest-group -もし現在のグループが他の記事の集まりであるならば(例えば、摘要 (digest))、 -そのような記事でできているグループに入るためにこの命令を使うかもしれません -(@code{gnus-summary-enter-digest-group})。Gnus はこの命令に接頭引数を与え -ない限り、どのような型の記事が現在表示されているかを推測しようとし、それは -強制的に『摘要』という解釈になります。基本的に、他の様式からなる他のメッセー -ジの集合であったときは、@kbd{C-d} とすることによりもっと便利な方法でそれら -のメッセージを読む事ができるようになります。 - -@item M-C-d -@kindex M-C-d (概略) -@findex gnus-summary-read-document -この命令は上のものに非常に似ていますが、いくつかの文書を一つの大ーきいグ -ループに集めます (@code{gnus-summary-read-read-document})。それはいくつ -かの @code{nndoc} グループをそれぞれの文書のために 開き、それからこれら -の @code{nndoc} グループの上に @code{nnvirtual} グループを開く事によって -この事を可能にしています。この命令はプロセス/接頭引数の習慣を理解します -(@pxref{Process/Prefix})。 - -@item C-t -@kindex C-t (概略) -@findex gnus-summary-togle-truncation -概略行の切断を切り替えます (@code{gnus-summary-toggle-truncation})。これ -はおそらく概略バッファの行中央表示関数を混乱させますので、記事を読んでい -る間に切断を切っているのは良い考えではないでしょう。 - -@item = -@kindex = (概略) -@findex gnus-summary-expand-window -概略バッファのウィンドウを拡大します -(@code{gnus-summary-expand-window})。接頭引数を与えられれば、@code{記事} -ウィンドウを拡大します。 - -@item M-C-e -@kindex M-C-e (概略) -@findex gnus-summary-edit-parameters -現在のグループのグループの媒介変数 (parameter) (@pxref{Group -Parameters}) を編集します (@code{gnus-summary-edit-parameters})。 - -@end table - - -@node Exiting the Summary Buffer -@section 概略バッファを抜ける -@cindex summary exit -@cindex exiting groups - -普通は概略バッファから抜けると、グループの全ての情報を更新してグループバッ -ファに戻ります。 - -@table @kbd - -@item Z Z -@itemx q -@kindex Z Z (Summary) -@findex q (概略) -@findex gnus-summary-exit -@vindex gnus-summary-exit-hook -@vindex gnus-summary-prepare-exit-hook -@c @icon{gnus-summary-exit} -現在のグループを出て、グループの全ての情報を更新します -(@code{gnus-summary-exit})。抜け出るためのたいていの事をする前に -@code{gnus-summary-prepare-exit-hook} が呼ばれ、それはディフォルトで -@code{gnus-summary-expire-articles} を呼びます。抜け出る過程を追えた後に -@code{gnus-summary-exit-hook} が呼ばれます。(未読の) グループが残ってい -ないときにグループモードに戻るときに -@code{gnus-group-no-more-groups-hook} が実行されます。 - -@item Z E -@itemx Q -@kindex Z E (概略) -@findex Q (概略) -@findex gnus-summary-exit-no-update -グループのどの情報も更新せずに現在のグループを抜け出ます -(@code{gnus-summary-exit-no-update})。 - -@item Z c -@itemx c -@kindex Z c (概略) -@kindex c (概略) -@findex gnus-summary-catchup-and-exit -@c @icon{gnus-summary-catchup-and-exit} -グループの全ての保留でない記事 (unticked article) に既読の印を付けて、そ -れから抜けます (@code{gnus-summary-catchup-and-exit})。 - -@item Z C -@kindex Z C (概略) -@findex gnus-summary-catchup-all-and-exit -保留記事も含めて、全ての記事に既読の印を付けて、それから抜けます -(@code{gnus-summary-catchup-all-and-exit})。 - -@item Z n -@kindex Z n (概略) -@findex gnus-summary-catchup-and-goto-next-group -全ての記事に既読の印を付けて次のグループへ移動します -(@code{gnus-summary-catchup-and-goto-next-group})。 - -@item Z R -@kindex Z R (概略) -@findex gnus-summary-reselect-current-group -現在のグループを出て、それから入り直します -(@code{gnus-summary-reselect-current-group})。もし接頭引数を与えられれば、 -既読と未読の両方の全ての記事を選択します。 - -@item Z G -@itemx M-g -@kindex Z G (概略) -@kindex M-g (概略) -@findex gnus-summary-rescan-group -@c @icon{gnus-summary-mail-get} -グループを抜け、グループの新しい記事を調べ、グループを選択します -(@code{gnus-summary-rescan-group})。もし接頭引数を与えられれば、既読と未 -読の両方の全ての記事を選択します。 - -@item Z N -@kindex Z N (概略) -@findex gnus-summary-next-group -グループを抜けて、次のグループへ移動します -(@code{gnus-summary-next-group})。 - -@item Z P -@kindex Z P (概略) -@findex gnus-summary-prev-group -グループを抜けて、前のグループへ移動します -(@code{gnus-summary-prev-group})。 - -@item Z s -@kindex Z s (概略) -@findex gnus-summary-save-newsrc -現在の既読/印付き記事の数をドリブルバッファ (dribble buffer) に保存し、 -それからドリブルバッファを保存します (@code{gnus-summary-save-newrc})。 -もし接頭引数を与えられれば、ファイル @file{.newsrc} も保存します。この命 -令を使うと、更新なしで抜け出る事 (@kbd{Q} 命令) は意味が無くなります。 -@end table - -@vindex gnus-exit-group-hook -現在のグループを抜けるときに @code{gnus-exit-group-hook} が呼ばれます。 - -@findex gnus-summary-wake-up-the-dead -@findex gnus-dead-summary-mode -@vindex gnus-kill-summary-on-exit -あなたにグループを抜けて、それから考えを変える癖があるのであれば、 -@code{gnus-kill-summary-on-exit} を @code{nil} に設定するのが良いかもしれ -ません。もしそうすれば、gnus はそれから抜け出るときに概略バッファを削除し -ません。(何という驚き!)その代わりに、それはバッファの名前を -@samp{*Dead Summary ... *} のようなものに変更し、 -@code{gnus-dead-summary-mode} と呼ばれるマイナーモードを導入します。今や、 -そのバッファに切り替えれば、全てのキーが関数 -@code{gnus-summary-wake-up-the-dead} に割り当てられていることに気付くでしょ -う。死んだ概略バッファ (dead summary buffer) でどれかのキーを叩く事と、生 -きた普通の概略バッファになるでしょう。 - -死んだ概略バッファは同時に一つしか存在する事はできません。 - -@vindex gnus-use-cross-reference -概略バッファを抜け出ると、現在のグループのデータは更新されます(どの記事を -読んで、どの記事に返答したか、などなど。)もし変数 -@code{gnus-use-cross-reference} が @code{t} であると(それがディフォルトで -す)、そのグループに相互参照された (cross referenced) 記事は既読の印が付き、 -それが相互投稿 (cross post) された他の購読しているグループでも既読の印が付 -きます。この変数が @code{nil} でも @code{t} でなければ、記事は購読と未購読 -の両方のグループで既読の印が付きます (@pxref{Crosspost Handling})。 - - -@node Crosspost Handling -@section 相互投稿の扱い - -@cindex velveeta -@cindex spamming -相互投稿 (cross post) された記事に既読の印を付ける事は、同じ記事を2回以上 -読まないですむという事を保証します。もちろん、だれかがそれをいくつかのグルー -プに別々に投稿しない限りは。同じ記事をいくつかのグループに投稿する事(相互 -投稿でなくて)は @dfn{spamming} と呼ばれ、あなたはそのような憎むべき犯罪を -行うものにに対して、法律によって不快な記事を送ることが義務づけられています。 -spam を選別するために、NoCeM 取扱を試したいと思うかもしれません -(@pxref{NoCeM})。 - -覚えてください: 相互投稿は構いませんが、同じ記事を別々にいくつかのグルー -プに投稿するのは許されません。大量の相互投稿 (@dfn{velveeta}) はどうしても -避けられるべきで、過剰相互投稿に対して不満を言うために命令 -@code{gnus-summary-mail-crosspost-complaint} を使うことさえできます。 - -@cindex cross-posting -@cindex Xref -@cindex @sc{nov} -相互投稿を gnus が正しく扱えないようになる原因の一つは、@sc{nov} 行に -@code{Xref} 欄を含まない、@sc{xover}(これは非常に良いです、というのはそれ -は速度をとても速くするからです)の使用可能な @sc{nntp} サーバーを使ってい -ることです。これは害悪なのですが、あぁ、悲しいかな、非常に良くある事です。 -Gnus はあなたが読んだ全ての記事に @code{Xref} 行を登録する事で、正しい事を -しよう としますが、記事を削除するか、読まないで既読の印を付けると、gnus は -これらの記事に @code{Xref} の行をのぞきまわる機会を得る事が無く、相互参照 -機構を用いる事ができません。 - -@cindex LIST overview.fmt -@cindex overview.fmt -あなたの @sc{nntp} サーバーがその概観ファイル (overview file) に -@code{Xref} 欄を含んでいるかを調べるには、@samp{telnet your.nntp.server -nntp} として、@code{inn} サーバーで @samp{More READER} とし、それから -@samp{LIST overview.fmt} とする事を試してください。これは動作しないでしょ -うが、もし動作して、取得した最後の行が @samp{Xref:full} でないならば、ニュー -スの管理者が概観ファイルに @code{Xref} 欄を含むようにするまで、ニュース管 -理者に叫び、泣き付く事を続けるべきでしょう。 - -@vindex gnus-nov-is-evil -Gnus にいつでも正しい @code{Xref} を取得するようにさせたいのであれば、 -@code{gnus-nov-is-evil} を @code{t} にする必要があり、それは非常に速度を -遅くします。 - -ま、人生はそのようなものです。 - -代替手段に付いては @pxref{Duplicate Suppression} を参照してください。 - - -@node Duplicate Suppression -@section 重複の抑制 - -ディフォルトでは gnus は相互投稿機構を利用する事によって、同じ記事を2回以 -上読まないようにしようとします (@pxref{Crosspost Handling})。しかし、その -単純で効果的な方法は、いろいろな理由により、満足する結果をもたらさないかも -知れません。 - -@enumerate -@item -@sc{nntp} サーバーは @code{Xref} 欄の生成に失敗するかも知れません。これは -悪い事で、あまり起こりません。 - -@item -@sc{nntp} サーバーは @file{.overview} データベースに @code{Xref} 欄を含め -るのに失敗するかも知れません。これは悪い事で、非常に良くある事です、あぁ悲 -しい。 - -@item -同じグループ(もしくはいくつかの関連したグループ)を違った @sc{nntp} サー -バーから読んでいるかもしれません。 - -@item -グループに投稿された記事と重複するメールを受け取ったかもしれません。 -@end enumerate - -@code{Xref} の扱いに失敗する状況は他にもありますが、これら4つがとても良く -ある状況です。 - -もし、本当にもしも @code{Xref} の扱いに失敗したら、@dfn{重複抑制}に切り替 -える事を考えるかもしれません。そうすれば、gnus はあなたが読んだ全ての記事 -かそうでなければ、既読の印が付いた全ての記事の @code{Message-ID} を記憶し、 -それから、魔法のように、その後のそれらと出会った全ての場合に、既読の印を付 -けます――@emph{全て}のグループで。この機構を使うのは非常に非効率的ですが、 -過度に非効率なわけではありません。もちろん同じ記事を一回以上読むほうが好ま -しいです。 - -重複抑制はあまり繊細なものではありません。どちらかというと、大槌のようなも -のです。それは非常に単純な方法で動作しています――もし記事に既読の印を付け -れば、それはこの Message-ID を キャッシュに加えます。次にこのMessage-ID に -であったときは、@samp{M} 印によって記事に既読の印を付けます。それはその記 -事がどのグループにあるかは気にしません。 - -@table @code -@item gnus-suppress-duplicates -@vindex gnus-suppress-duplicates -@code{nil} でなければ、重複抑制をします。 - -@item gnus-save-duplicate-list -@vindex gnus-save-duplicate-list -@code{nil} でなければ、重複のリストをファイルに保存します。これは起動と終 -了の時間を長くしますので、初期状態では @code{nil} です。しかし、これは単一 -の gnus の実行期で読まれた重複記事だけが抑制されるという事です。 - -@item gnus-duplicate-list-length -@vindex gnus-duplicate-list-length -この変数はどのくらい多くの @code{Message-ID} を重複抑制リストに保ってお -くかも決定します。ディフォルトは 10000 です。 - -@item gnus-duplicate-file -@vindex gnus-duplicate-file -重複抑制のリストを蓄積しておくファイルの名前です。ディフォルトは -@file{~/News/suppression} です。 -@end table - -何度も gnus を終了して起動する傾向があるのであれば、おそらく -@code{gnus-save-duplicate-list} を @code{t} にするのは良い考えでしょう。 -もし gnus を続けて何週間も走らせておくのであれば、それを @code{nil} にす -るかもしれません。一方で、リストを保存する事は起動と終了をずっと遅くしま -すので、よく gnus を終了して起動するのであれば、 -@code{gnus-save-duplicate-list} を @code{nil} に設定するべきであるという -事になります。うーむ。私はあなたがどうするかに任せたい、と思います。 - - -@node The Article Buffer -@chapter 記事バッファ -@cindex article buffer - -記事は一つしかない記事バッファに表示されます。全ての概略バッファは(gnus -に共有しないように指示しない限り)同じ記事バッファを共有します。 - -@menu -* Hiding Headers:: どのヘッダーを表示するかを決める。 -* Using MIME:: @sc{mime} 記事として見せる。 -* Customizing Articles:: 記事の見栄えを仕立てる。 -* Article Keymap:: 記事バッファで使えるキー操作。 -* Misc Article:: その他。 -@end menu - - -@node Hiding Headers -@section 余分なヘッダーを隠す -@cindex hiding headers -@cindex deleting headers - -各記事の頭の部分はヘッダー(@dfn{head})と呼ばれます(残りの部分はボディ -(@dfn{body})です。すでにお気づきでしょうが)。 - -@vindex gnus-show-all-headers -ヘッダーにはたくさんの便利な情報が含まれています。記事を書いた人の名前、そ -れが書かれた日付、記事の表題などです。これはとても良いんですが、ヘッダーに -は大部分の人には見たくもない情報――記事があなたのところに着くまでどんなシ -ステムを経由してきたか、@code{Message-ID}, @code{References} などなど…も -うやんなっちゃうくらい――もたくさん含まれています。たぶんあなたはこれらの -行はいくつか取り除いてしまいたいと思うでしょう。もしこれらの行を全て記事バッ -ファ内に残しておきたければ、@code{gnus-show-all-headers} を @code{t} に設 -定してください。 - -Gnus はヘッダーを選り分けるために2つの変数を用意しています。 - -@table @code - -@item gnus-visible-headers -@vindex gnus-visible-headers -この変数が @code{nil} 以外であれば、どのヘッダーを記事バッファに -残したいかを指定する正規表現であるとみなされます。この変数にマッ -チしないヘッダーは全て隠されます。 - -例えば、記事を書いた人の名前と表題のみを見たければ、こう指定します。 - -@lisp -(setq gnus-visible-headers "^From:\\|^Subject:") -@end lisp - -この変数は、表示させたいヘッダーにマッチする正規表現をリストで指 -定することもできます。 - -@item gnus-ignored-headers -@vindex gnus-ignored-headers -この変数は @code{gnus-visible-headers} の反対です。この変数が設定されてい -れば(かつ @code{gnus-visible-headers} が @code{nil} であれば)、これは隠 -したいヘッダー行全てにマッチする正規表現であるとみなされます。この変数にマッ -チしない全てのヘッダー行は表示されます。 - -例えば、単に @code{References} 欄と @code{Xref} 欄のみを消し去りたければ、 -以下のようにします: - -@lisp -(setq gnus-ignored-headers "^References:\\|^Xref:") -@end lisp - -この変数は消したいヘッダーにマッチする正規表現のリストでも構いま -せん。 - -なお、@code{gnus-visible-headers} が @code{nil} 以外の場合は、こ -の変数には効果が無いことに注意してください。 - -@end table - -@vindex gnus-sorted-header-list -Gnus はヘッダーの並べ替え(sort)も行います(これはディフォルトで行われます)。 -この並べ替えは @code{gnus-sorted-header-list} 変数を設定することで制御する -ことができます。これはヘッダーをどういう順序で表示するかを指定する正規表現 -のリストです。 - -例えば、記事の著者名を最初に、次に表題を表示したければ、こんな風 -になるでしょう。 - -@lisp -(setq gnus-sorted-header-list '("^From:" "^Subject:")) -@end lisp - -表示するようになっているヘッダーでこの変数に指定されていないもの -は、この変数に指定されている全てのヘッダーの後に、適当な順序で表 -示されるでしょう。 - -@findex gnus-article-hide-boring-headers -@vindex gnus-article-display-hook -@vindex gnus-boring-article-headers -@code{gnus-article-hide-boring-headers} を -@code{gnus-article-display-hook} に入れることによって、もっとつ -まらないヘッダーを隠すことができます。この関数が何をするかは -@code{gnus-boring-article-headers} 変数に依存します。この変数は -リストですが、このリストには実際のヘッダーの名前が入るのではあり -ません。代わりに gnus がチェックして視界から消し去るためのさまざ -まな「つまらない条件」@dfn{boring conditions} のリストを指定しま -す。 - -この条件には以下のようなものがあります。 -@table @code -@item empty -空のヘッダーを全て消去します。 -@item newsgroups -@code{Newsgroups} 欄が現在のグループ名しか含んでいない場合には消去します。 -@item followup-to -@code{Followup-To} 欄が @code{Newsgroups} 欄と同一である場合には消去します。 -@item reply-to -@code{Reply-To} 欄が @code{From} 欄と同じアドレスを示している場合には消去 -します。 -@item date -その記事が過去3日以内のものであれば、@code{Date} 欄を消去します。 -@item long-to -@code{To} 欄があまりにも長い場合には消去します。 -@item many-to -@code{To} 欄が一つよりも多ければ、それらを全て消去します。 -@end table - -上記の最初の4つの要素を入れたければ、こんな風になります。 - -@lisp -(setq gnus-boring-article-headers - '(empty newsgroups followup-to reply-to)) -@end lisp - -これはこの変数のディフォルト値でもあります。 - - -@node Using MIME -@section @sc{mime} を使う -@cindex @sc{mime} - -パントマイム (mime) とは、意味も無く空中で手を振るものとして広く -知られており、その間観客はあくびをしながらぼんやりとしてます。 - -一方、@sc{mime} とは、意味も無く記事を符号化する標準であり、その -ために全てのニューズリーダが恐怖で死んでしまうものです。 - -@sc{mime} はその記事がどんな文字集合を使用しているか、その文字をどう符号化 -しているかを指定することができ、さらには絵やその他のみだらなものを無邪気な -格好の記事で埋め込むことさえ可能にします。 - -@vindex gnus-show-mime -@vindex gnus-article-display-method-for-mime -@vindex gnus-strict-mime -@findex gnus-article-display-mime-message -Gnus は @code{gnus-article-display-method-for-mime} に記事を押し付けるこ -とで @sc{mime} を扱います。この初期値は -@code{gnus-article-display-mime-message} です。この関数は SEMI MIME-View -プログラムを呼び出して実際の処理を行います。SEMI MIME-View に関する詳し -い情報は、マニュアルを参照してください(まだないけど(;_;))。 - -@sc{mime} を常に使用したければ、@code{gnus-show-mime} を -@code{t} に設定してください。しかし、@code{gnus-strict-mime} が -@code{nil} 以外であれば、@sc{mime} 処理は記事中に @sc{mime} ヘッ -ダーがあるときのみ使用されます。@code{gnus-show-mime} を設定して -いると、運が悪いと記事バッファには故障したような画面が見えること -もあるでしょう。これは避けようがありません。 - -GNUS や Gnus では、このたちの悪い問題で驚かされないようにするには、概略バッ -ファにおいて切り替え機能を使うというのが最善かも知れません(例えば、 -@samp{alt.sing-a-long} グループに入ると、あなたの気づかないうちに -@sc{mime} は記事中のサウンドファイルを復号して、何やら怪しげな長い長い歌が -あなたのスピーカーから大音響で流れ出し、あなたはボリュームボタンを見つけら -れず、というのはそんなものはもともとついてないからで、みんなはあなたの方を -睨みはじめ、あなたはプログラムを止めようとするけどできなくて、ボリュームを -制御するプログラムも見つけられなくて、そして部屋中の全員は突然あなたのこと -を軽蔑の眼差しで見るようになってしまい、あなたはちょっと面白くない思いをす -る、とか)。 - -現実の出来事と実在の人物に類似しているかもしれませんが、これは全 -てホントのことです。げほげほ。 - -まあ、そういう訳で、gnus では @code{metamail-buffer} を使うのを止めた訳で -す。そういう訳で、今では常に @code{gnus-show-mime} を @code{nil} 以外にし -ておき、周りに人がいない時を見計らって記事バッファに現われるボタンを押しま -しょう。 - - -@node Customizing Articles -@section 記事のカスタマイズ -@cindex article customization - -@vindex gnus-article-display-hook -@code{gnus-article-display-hook} は記事が記事バッファに書き込ま -れた直後に呼び出されます。これは記事が表示される前の処理を全て扱 -う、ということです。 - -@findex gnus-article-maybe-highlight -ディフォルトではこのフックには @code{gnus-article-hide-headers}、 -@code{gnus-article-treat-overstrike}, -@code{gnus-article-maybe-highlight} だけが含まれていますが、このフックに入 -れることができる関数は何千も、いや何百万もあります。各関数の概観は -@pxref{Article Highlighting}, @pxref{Article Hiding}, @pxref{Article -Washing}, @pxref{Article Buttons}, @pxref{Article Date} を参照してください。 -注意点として、このフックでは関数の順序が影響することがあるので、お望みの結 -果を得るにはちょっと手間取ってしまうかもしれません。 - -もちろん、あなた独自の関数を書くこともできます。この関数は記事バッファ内か -ら呼び出され、あなたのやりたいことをほとんど何でもできます。バッファに残し -ておかなければならない情報は何もありません――何でも変更することができます。 -ですが、ヘッダーは消去しない方が良いです。その代わり、ヘッダーをどこかにやっ -てしまいたければ、それらを見えないようにしてください。 - -@node Article Keymap -@section 記事のキー操作 - -概略バッファにおけるキー操作のほとんどは記事バッファでも使用でき -ます。これらは概略バッファでそのキーを押したかのように動作します。 -つまり、実は記事を読んでいる間、概略バッファを表示させておく必要 -もないということです。全ての操作は記事バッファから行うことができ -るのです。 - -それらに加えていくつかのキー操作が利用できます。 - -@table @kbd - -@item SPACE -@kindex SPACE (Article) -@findex gnus-article-next-page -一頁前にめくります (@code{gnus-article-next-page})。 - -@item DEL -@kindex DEL (Article) -@findex gnus-article-prev-page -一頁後ろに戻します (@code{gnus-article-prev-page})。 - -@item C-c ^ -@kindex C-c ^ (Article) -@findex gnus-article-refer-article -カーソル位置が @code{Message-ID} の近辺にあるときに @kbd{r} を押 -すと、gnus はサーバーからその記事を取ってこようとします -(@code{gnus-article-refer-article})。 - -@item C-c C-m -@kindex C-c C-m (Article) -@findex gnus-article-mail -カーソル位置の近くにあるアドレスに返信を送ります -(@code{gnus-article-mail})。接頭引数を与えると、そのメールに引用 -します。 - -@item s -@kindex s (Article) -@findex gnus-article-show-summary -バッファを再構成して、概略バッファを見えるようにします -(@code{gnus-article-show-summary})。 - -@item ? -@kindex ? (Article) -@findex gnus-article-describe-briefly -利用できるキー操作のごく簡単な説明を出します -(@code{gnus-article-describe-briefly})。 - -@item TAB -@kindex TAB (Article) -@findex gnus-article-next-button -次のボタンがあればそこに移動します -(@code{gnus-article-next-button})。これはボタン機能をオンにして -いるときのみ意味を持ちます。 - -@item M-TAB -@kindex M-TAB (Article) -@findex gnus-article-prev-button -一つ前のボタンがあればそこに移動します -(@code{gnus-article-prev-button})。 - -@end table - - -@node Misc Article -@section 記事のその他 - -@table @code - -@item gnus-single-article-buffer -@vindex gnus-single-article-buffer -@code{nil} 以外であれば、全てのグループに対して同じ記事バッファを使用しま -す(これはディフォルトです)。@code{nil} であれば、各グループ毎の固有の記 -事バッファを持つようになります。 - -@vindex gnus-article-prepare-hook -@item gnus-article-prepare-hook -このフックは記事が記事バッファに書き込まれた直後に呼び出されます。 -これは主に、何か記事の内容に依存する処理をする関数のために用意さ -れています。つまり記事バッファの内容を変更するような目的で使うべ -きではないでしょう。 - -@vindex gnus-article-display-hook -@item gnus-article-display-hook -このフックは記事を表示するときの最後に呼び出されるようになってい -て、記事バッファの内容の修正、ハイライト処理、ヘッダーを隠す、な -どといったことを行うために用意されています。 - -@item gnus-article-mode-hook -@vindex gnus-article-mode-hook -記事モードバッファで呼び出されるフックです。 - -@item gnus-article-mode-syntax-table -@vindex gnus-article-mode-syntax-table -記事バッファで用いられるシンタックステーブルです。これは -@code{text-mode-syntax-table} をもとに初期化されます。 - -@vindex gnus-article-mode-line-format -@item gnus-article-mode-line-format -この変数は @code{gnus-summary-mode-line-format} と同じ行に従った -様式文字列です。これは以下の一つの拡張を除いて、その変数と同じ様 -式指定を受付けます。 - -@table @samp -@item w -記事の「洗濯状態」@dfn{wash status}。これは記事に対して行われた -であろう洗濯操作を示す一文字からなる短い文字列になります。 -@end table - -@vindex gnus-break-pages - -@item gnus-break-pages -改頁 @dfn{page breaking} を行うかどうかを制御します。この変数が -@code{nil} 以外であれば、記事中に頁区切り文字が現れた場所ごとに -頁分割します。この変数が @code{nil} であれば頁分けは行われません。 - -@item gnus-page-delimiter -@vindex gnus-page-delimiter -これが上で触れた区切り文字です。ディフォルトでは @samp{^L} (フォー -ムフィード、改頁) です。 -@end table - - -@node Composing Messages -@chapter メッセージの作成 -@cindex composing messages -@cindex messages -@cindex mail -@cindex sending mail -@cindex reply -@cindex followup -@cindex post - -@kindex C-c C-c (投稿) -全ての投稿とメールの命令は、@kbd{C-c C-c} を押す事によって、記事を送信する -前に記事を好きなように編集する事のできる、メッセージバッファに移動します。 -@xref{Top, , Top, message, The Message Manual}。もし外部ニュースグループに -いて、記事を外部サーバーを使って投稿したいのであれば、@kbd{C-c C-c} に接頭 -引数を与えて、gnus に外部サーバーを使って投稿しようと試させる事ができます。 - -@menu -* Mail:: メールと返答。 -* Post:: 投稿とフォローアップ。 -* Posting Server:: どのサーバーを通して投稿するべきか? -* Mail and Post:: 同時にメールを出し返答する。 -* Archived Messages:: 送ったメッセージを gnus が貯めておくところ。 -* Drafts:: メッセージの延期と拒否されたメッセージ。 -* Rejected Articles:: サーバーがあなたの記事を好きでないときに何が起こる? -@end menu - -投稿するべきでなかった記事を削除するための情報は @pxref{Canceling and -Superseding} を参照してください。 - - -@node Mail -@section メール - -出て行くメールをカスタマイズする変数です: - -@table @code -@item gnus-uu-digest-headers -@vindex gnus-uu-digest-headers -要約メッセージ (digested message) に含まれるヘッダーに合致する正規表現の -リストです。ヘッダーは合致した順に取り込まれます。 - -@item gnus-add-to-list -@vindex gnus-add-to-list -@code{nil} でなければ、@kbd{a} をしたときに、@code{to-list} グループパラ -メータをそれのないメールグループに付け加えます。 - -@end table - - -@node Post -@section 投稿 - -ニューズ記事作成のための変数: - -@table @code -@item gnus-sent-message-ids-file -@vindex gnus-sent-message-ids-file -Gnus は送信した全てのメールの @code{Message-ID} 履歴ファイル (history -file) を保存します。もしメールを既に送った事が発見されたなら、利用者にメー -ルを再送するかどうかを尋ねます。(これは主に同じパケットを複数回送る傾向の -ある @sc{soup} パケットや、それに似たようなものを扱っているときに役に立ち -ます。)この変数はこの履歴ファイルがどこにあるかを指定します。ディフォルト -では @file{~/News/Sent-Message-IDs} です。Gnus が履歴ファイルを保持する事 -を望まないのであれば、この変数を @code{nil} に設定する事ができます。 - -@item gnus-sent-message-ids-length -@vindex gnus-sent-messages-ids-length -この変数はどれくらい多くの @code{Message-ID} を履歴ファイルに保持するか -を指定します。ディフォルトでは 1000 です。 - -@end table - - -@node Posting Server -@section 投稿するサーバー - -最新の(もちろん、非常に知的な)記事を送り出すために、あの魔法のような -@kbd{C-c C-c} キーを押した時、それはどこにいくのでしょう? - -尋ねてくれてありがとう。あなたを恨みます。 - -@vindex gnus-post-method - -それは非常に複雑になり得ます。普通は、gnus は同じ基本サーバーを使用します。 -しかし。あなたの基本サーバーが投稿を許可せず、読むことのみを許可しているの -ならば、おそらくあなたの(非常に知的でとんでもなく興味深い)記事を投稿する -ために、他のサーバーを使いたいと思うでしょう。@code{gnus-post-method} を他 -の方法に設定する事ができます。 - -@lisp -(setq gnus-post-method '(nnspool "")) -@end lisp - -さて、この設定をした後でサーバーがあなたの記事を拒否したり、サーバーが落ち -ていたりしたら、どうしたらよいのでしょう?この変数を上書きするために、命令 -@kbd{C-c C-c} に零でない接頭引数を与える事で、投稿に『現在の』サーバーを使 -わせる事ができます。 - -もし、零接頭引数をその命令に与えたなら(すなわち、@kbd{C-u 0 C-c C-c})、 -gnus は投稿にどの方法を使うかをあなたに尋ねます。 - -@code{gnus-post-method} を選択方法のリストにする事もできます。その場合は、 -gnus は常に投稿にどの方法を使うかをあなたに尋ねます。 - - -@node Mail and Post -@section メールと投稿 - -これはメールを出す事と投稿する事の両方に関連する変数のリストです: - -@table @code -@item gnus-mailing-list-groups -@findex gnus-mailing-list-groups -@cindex mailing lists - -もしあなたのニューズサーバーが本当にメーリングリストから @sc{nntp} サー -バーへのゲートウェイを提供しているのであれば、それらのグループは問題なく -読めるでしょう。しかし簡単にはそれらに投稿/フォローアップすることはでき -ません。一つの解決法は グループパラメータ (@pxref{Group Parameters}) に -@code{to-address} を加える事です。簡単にできるのは、 -@code{gnus-mailing-list-groups} を、本当にメーリングリストであるようなグ -ループに合致する正規表現に設定することです。その後は、すくなくとも、メー -リングリストへのフォローアップはたいていのときに動作します。これらのグルー -プに投稿する事は (@kbd{a}) それでも苦痛を引き起こすでしょうけど。 - -@end table - -あなたは自分が送るメッセージの綴りを調べたいと思うかも知れません。もしく -は、もし手で綴り調べをしたくないのであれば、自動綴り調べを @code{ispell} -パッケージを使う事によって付け加える事ができます: - -@cindex ispell -@findex ispell-message -@lisp -(add-hook 'message-send-hook 'ispell-message) -@end lisp - - -@node Archived Messages -@section メッセージの保管 -@cindex archived messages -@cindex sent messages - -Gnus はあなたが送ったメールとニュースを貯めておくためのいくつかの違った方 -法を提供します。ディフォルトの方法はメッセージを保存するために@dfn{事実上 -の書庫サーバー}(archive virtual server)を使います。これを完全に禁止したい -のであれば、変数 @code{gnus-message-archive-group} は @code{nil} になるべ -きで、これがディフォルトです。 - -@vindex gnus-message-archive-method -@code{gnus-message-archive-method} は送ったメッセージを蓄積するためにどの -事実上のサーバーを gnus が使うべきかを指定します。ディフォルトは: - -@lisp -(nnfolder "archive" - (nnfolder-directory "~/Mail/archive") - (nnfolder-active-file "~/Mail/archive/active") - (nnfolder-get-new-mail nil) - (nnfolder-inhibit-expiry t)) -@end lisp - -しかし、どのメール選択方法でも使う事ができます(@code{nnml}, -@code{nnmbox} などなど)。しかし @code{nnfolder} はこのような事をするのに -とても好ましい選択方法です。ディフォルトのディレクトリー選択を好きでないな -らば、次のようにできます: - -@lisp -(setq gnus-message-archive-method - '(nnfolder "archive" - (nnfolder-inhibit-expiry t) - (nnfolder-active-file "~/News/sent-mail/active") - (nnfolder-directory "~/News/sent-mail/"))) -@end lisp - -@vindex gnus-message-archive-group -@cindex Gcc -Gnus は外へ出て行く全てのメッセージに、一つかそれ以上のそのサーバーのグルー -プへ向かう @code{Gcc} 欄を挿入します。どのグループを使うかは変数 -@code{gnus-message-archive-group} によって決まります。 - -この変数は次のような事をするために使われます: - -@itemize @bullet -@item 文字列 -メッセージはそのグループに保存されます。 -@item 文字列のリスト -メッセージはそれらの全てのグループに保存されます。 -@item 正規表現、関数、様式の連想リスト -キーが『合致』すると、結果が使われます。 -@item @code{nil} -メッセージの保存は行われません。これがディフォルトです。 -@end itemize - -試してみましょう: - -@samp{MisK} と呼ばれる一つのグループに保存するならば: -@lisp -(setq gnus-message-archive-group "MisK") -@end lisp - -2つのグループ、@samp{MisK} と @samp{safe} に保存するならば: -@lisp -(setq gnus-message-archive-group '("MisK" "safe")) -@end lisp - -どのグループにいるかによって違ったグループに保存するなら: -@lisp -(setq gnus-message-archive-group - '(("^alt" "sent-to-alt") - ("mail" "sent-to-mail") - (".*" "sent-to-misc"))) -@end lisp - -もっと複雑なもの: -@lisp -(setq gnus-message-archive-group - '((if (message-news-p) - "misc-news" - "misc-mail"))) -@end lisp - -全てのニュースメッセージを一つのファイルに保存して、メールメッセージを一月 -につき一つのファイルに保存するには: - -@lisp -(setq gnus-message-archive-group - '((if (message-news-p) - "misc-news" - (concat "mail." (format-time-string - "%Y-%m" (current-time)))))) -@end lisp - -(XEmacs 19.13 には @code{format-time-string} はありませんので、その -@code{gnus-message-archive-group} のために違った値を使わなければなりません。) - -今や、メッセージを送ると、それは適切なグループに保存されます。(もし特定の -メッセージに対して保存をしたくないのであれば、挿入された @code{Gcc} 欄を取 -り除いてください。)保管グループは次に gnus を起動したときか、次にグループ -バッファで @kbd{F} を押したときにグループバッファに現れます。他のグループ -と同じようにそのグループに入って、記事を読む事ができます。そのグループが本 -当に大きくなって嫌になったら、なにか良いものにその名前を変更する事ができま -す(グループバッファで @kbd{G r} を使う事によって)―― -@samp{misc-mail-september-1995} や他のもに。新しいメッセージは古い(今は空 -になった)グループに溜められます。 - -以上が送ったメッセージを保管するディフォルトの方法です。Gnus はディフォ -ルトの方法を好きではない人には違ったやり方を勧めています。そのような場合 -は、@code{gnus-message-archive-group} を @code{nil} に設定するべきです。 -これは保管をしないようにします。 - -@table @code -@item gnus-outgoing-message-group -@vindex gnus-outgoing-message-group -全ての外にいくメッセージはこのグループに入れられます。もし全ての外に行く -メールと記事をグループ @samp{nnml:archive} に保管したいのであれば、この -変数をその値に設定する事ができます。この変数はグループ名のリストである事 -もできます。 - -もしそれぞれのメッセージをどのグループに入れるかをもっと制御したいのであれ -ば、この変数を現在のニューズグループ名を調べて、適切なグループ名(もしくは -名前のリスト)を返す関数に設定する事ができます。 - -この変数は @code{gnus-message-archive-group} の代わりに使う事ができます -が、後者の方が好ましい方法です。 -@end table - - -@c @node Posting Styles -@c @section Posting Styles -@c @cindex posting styles -@c @cindex styles -@c -@c All them variables, they make my head swim. -@c -@c So what if you want a different @code{Organization} and signature based -@c on what groups you post to? And you post both from your home machine -@c and your work machine, and you want different @code{From} lines, and so -@c on? -@c -@c @vindex gnus-posting-styles -@c One way to do stuff like that is to write clever hooks that change the -@c variables you need to have changed. That's a bit boring, so somebody -@c came up with the bright idea of letting the user specify these things in -@c a handy alist. Here's an example of a @code{gnus-posting-styles} -@c variable: -@c -@c @lisp -@c ((".*" -@c (signature . "Peace and happiness") -@c (organization . "What me?")) -@c ("^comp" -@c (signature . "Death to everybody")) -@c ("comp.emacs.i-love-it" -@c (organization . "Emacs is it"))) -@c @end lisp -@c -@c As you might surmise from this example, this alist consists of several -@c @dfn{styles}. Each style will be applicable if the first element -@c ``matches'', in some form or other. The entire alist will be iterated -@c over, from the beginning towards the end, and each match will be -@c applied, which means that attributes in later styles that match override -@c the same attributes in earlier matching styles. So -@c @samp{comp.programming.literate} will have the @samp{Death to everybody} -@c signature and the @samp{What me?} @code{Organization} header. -@c -@c The first element in each style is called the @code{match}. If it's a -@c string, then Gnus will try to regexp match it against the group name. -@c If it's a function symbol, that function will be called with no -@c arguments. If it's a variable symbol, then the variable will be -@c referenced. If it's a list, then that list will be @code{eval}ed. In -@c any case, if this returns a non-@code{nil} value, then the style is said -@c to @dfn{match}. -@c -@c Each style may contain a arbitrary amount of @dfn{attributes}. Each -@c attribute consists of a @var{(name . value)} pair. The attribute name -@c can be one of @code{signature}, @code{organization} or @code{from}. The -@c attribute name can also be a string. In that case, this will be used as -@c a header name, and the value will be inserted in the headers of the -@c article. -@c -@c The attribute value can be a string (used verbatim), a function (the -@c return value will be used), a variable (its value will be used) or a -@c list (it will be @code{eval}ed and the return value will be used). -@c -@c So here's a new example: -@c -@c @lisp -@c (setq gnus-posting-styles -@c '((".*" -@c (signature . "~/.signature") -@c (from . "user@@foo (user)") -@c ("X-Home-Page" . (getenv "WWW_HOME")) -@c (organization . "People's Front Against MWM")) -@c ("^rec.humor" -@c (signature . my-funny-signature-randomizer)) -@c ((equal (system-name) "gnarly") -@c (signature . my-quote-randomizer)) -@c (posting-from-work-p -@c (signature . "~/.work-signature") -@c (from . "user@@bar.foo (user)") -@c (organization . "Important Work, Inc")) -@c ("^nn.+:" -@c (signature . "~/.mail-signature")))) -@c @end lisp - -@node Drafts -@section 下書き -@cindex drafts - -もしメッセージ(メールもしくはニューズ)を書いているときに、突然オーブンに -ステーキが入っている事を思い出したなら(もしくは、あなたがとーってもすごい -菜食主義者で、茎をフードプロセッサーをいれているなら)、書いているメッセー -ジを保存する方法があれば良いと思うでしょう。そうすれば、いつか別の日に編集 -を続ける事ができ、それが完成したと思ったときに送る事ができます。 - -えぇ、心配しないでください。Gnus のメールと投稿命令を使う何らかのメッセー -ジを書き始めたときに、手に入れるバッファは自動的に特別な @dfn{draft} グルー -プに関連付けられます。普通の方法でバッファを保存すれば(たとえば、 -@kbd{C-x C-s})、その記事はそこに保存されます。(自動保存ファイルも下書き -グループ (draft group) に行きます。) - -@cindex nndraft -@vindex nndraft-directory -下書きグループは @samp{nndraft:draftx} と呼ばれる特別なグループ です(もし -あなたが全てを知らなければならないのであれば、それは @code{nndraft} グルー -プとして実装されています)。変数 @code{nndraft-directory} はそのファイルを -@code{nndraft} がどこに保管するべきかを指定します。このグループが特別であ -るというのは、その中の記事を永可視にしたり既読の印を付けたりできないからで -す――グループの全ての記事は永久に未読です。 - -もしグループが存在しないなら、それは作成され、購読されます。グループバッ -ファからそれを消し去る唯一の方法は、それを未購読にすることです。 - -@c @findex gnus-dissociate-buffer-from-draft -@c @kindex C-c M-d (Mail) -@c @kindex C-c M-d (Post) -@c @findex gnus-associate-buffer-with-draft -@c @kindex C-c C-d (Mail) -@c @kindex C-c C-d (Post) -@c If you're writing some super-secret message that you later want to -@c encode with PGP before sending, you may wish to turn the auto-saving -@c (and association with the draft group) off. You never know who might be -@c interested in reading all your extremely valuable and terribly horrible -@c and interesting secrets. The @kbd{C-c M-d} -@c (@code{gnus-dissociate-buffer-from-draft}) command does that for you. -@c If you change your mind and want to turn the auto-saving back on again, -@c @kbd{C-c C-d} (@code{gnus-associate-buffer-with-draft} does that. -@c -@c @vindex gnus-use-draft -@c To leave association with the draft group off by default, set -@c @code{gnus-use-draft} to @code{nil}. It is @code{t} by default. - -@findex gnus-draft-edit-message -@kindex D e(下書き) -記事の編集を続けたいときは、下書きグループに入って @kbd{D e} -(@code{gnus-draft-edit-message}) を押すだけです。あなたが残した状態のバッ -ファに移動します。 - -拒否された記事もこの下書きグループに入れられます (@pxref{Rejected -Articles})。 - -@findex gnus-draft-send-all-messages -@findex gnus-draft-send-message -それ以上編集しないで投稿(もしくはメール)したい拒否されたメッセージがたく -さんあるのであれば、命令 @kbd{D s} を使う事ができます。この命令はプロセス -/接頭引数の習慣を理解します (@pxref{Process/Prefix})。命令 @kbd{D S} -(@code{gnus-draft-send-all-messages}) はバッファの全てのメッセージを送り出 -します。 - -送りたくないメッセージがいくつかあるのであれば、命令 @kbd{D t} -(@code{gnus-draft-toggle-sending}) を使ってメッセージを配送不可の印を付 -ける事ができます。これは切り替え命令です。 - - -@node Rejected Articles -@section 拒否された記事 -@cindex rejected articles - -時々ニューズサーバーは記事を拒否します。おそらくサーバーはあなたの顔を好き -ではないのでしょう。おそらくそれは惨めに感じたからでしょう。おそらく -@emph{悪魔 (demon) がいるのでしょう}。 おそらく引用文を入れすぎたのでしょ -う。おそらくディスクが一杯だったのでしょう。おそらくサーバーが落ちていたの -でしょう。 - -これらの状況は、もちろん、完全に gnus の扱える範囲外です。(Gnus は、もち -ろん、あなたの外見を愛しており、いつも機嫌が良く、中を飛び回る天使がいて、 -どれくらい引用文が含まれていようと気にせず、一杯になったり、落っこちたり -しません。)ですから、gnus はこれらの記事を後でサーバーの気分がよくなる -まで保存します。 - -拒否された記事は自動的に特別な下書きグループ (@pxref{Drafts}) に入れられ -ます。サーバーが戻ってきたなら、普通はそのグループに入って全ての記事を送 -ります。 - - -@node Select Methods -@chapter 選択方法 -@cindex foreign groups -@cindex select methods - -@dfn{外部グループ} (foreign group) とは、普通 (もしくはディフォルト) の -方法で読まれないグループの事です。例えば、それは違った @sc{nntp} サーバー -のグループであったり、事実上のグループであったり、個人的なメールグループ -であったりするでしょう。 - -外部グループ (もしくは、本当に全てグループ) は @dfn{名前} と - @dfn{選択方法} で指定されます。後者を先に例に出すと、選択方法は最初の要 -素がどのバックエンドを使うか (たとえば、@code{nntp}、@code{nnspool}、 -@code{nnml}) で、2つめの要素が @dfn{サーバー名} である連想リストです。選 -択方法には、その当のバックエンドにとって特別の意味を持つ値である追加の要 -素があるかも知れません。 - -選択方法は @dfn{事実上のサーバー} を定義すると言うことができるかもしれま -せん---ですから私たちはちょうどそれをしました (@pxref{The Server -Buffer})。 - -グループの @dfn{名前} はバックエンドがグループを認識する名前です。 - -たとえば、@sc{nntp} サーバーのグループ @samp{soc.motss} は名前 -@samp{soc.motss} と選択方法 @code{(nntp "some.where.edu")} を持ちます。 -@code{nntp} バックエンドはこのグループを @samp{soc.motss} として知ってい -るだけですが、gnus はこのグループを @samp{nntp+some.where.edu:soc.motss} -と呼びます。 - -もちろん、違った方法は全てそれ特有のものがあります。 - -@menu -* The Server Buffer:: 事実上のサーバーを作って編集する。 -* Getting News:: USENET ニューズを gnus で読む。 -* Getting Mail:: 個人的なメールを gnus で読む。 -* Other Sources:: ディレクトリー、ファイル、SOUP パケットを読む。 -* Combined Groups:: 複数のグループを一つのグループに結合する。 -* Gnus Unplugged:: ニューズとメールをオフラインで読む。 -@end menu - -@node The Server Buffer -@section サーバーバッファ - -伝統的に、@dfn{サーバー} はそれに接続して、それから情報を要求するマシン -かソフトウェアです。 - -@menu -* Server Buffer Format:: このバッファの外見をカスタマイズできる。 -* Server Commands:: サーバーを操る命令。 -* Example Methods:: サーバー指定の例。 -* Creating a Virtual Server:: セッションの例。 -* Server Variables:: どの変数を設定するか。 -* Servers and Methods:: サーバー名を選択方法として使う事ができる。 -* Unavailable Servers:: 接続しようと試みたサーバーのいくつかが落ちているかもしれない。 -@end menu - -@vindex gnus-server-mode-hook -サーバーバッファを作成するときに @code{gnus-server-mode-hook} が実行されます。 - -@node Server Buffer Format -@subsection サーバーバッファの表示様式 -@cindex server buffer format - -@vindex gnus-server-line-format -サーバーバッファの行の外見を、変数 @code{gnus-server-line-format} 変数を -変更する事によって変える事ができます。これは @code{format} のような変数 -で、すこし単純な拡張がなされています: - -@table @samp - -@item h -どのようにニューズが取得されるか---バックエンドの名前。 - -@item n -サーバーの名前。 - -@item w -どこからニューズが取得されるべきか---アドレス。 - -@item s -サーバーの接続の 開いた/閉じた/拒否された 状態。 -@end table - -@vindex gnus-server-mode-line-format -モード行も変数 @code{gnus-server-mode-line-format} を使う事によってカス -タマイズする事ができます。以下の指定は理解されます: - -@table @samp -@item S -サーバー名。 - -@item M -サーバー方法。 -@end table - -@pxref{Formatting Variables} も参照してください。 - - -@node Server Commands -@subsection サーバー命令 -@cindex server commands - -@table @kbd - -@item a -@kindex a (サーバー) -@findex gnus-server-add-server -新しいサーバーを追加します (@code{gnus-server-add-server})。 - -@item e -@kindex e (サーバー) -@findex gnus-server-edit-server -サーバーを編集します (@code{gnus-server-edit-server})。 - -@item SPACE -@kindex SPACE (サーバー) -@findex gnus-server-read-server -現在のサーバーをざっと眺めます (@code{gnus-server-read-server})。 - -@item q -@kindex q (サーバー) -@findex gnus-server-exit -グループバッファに戻ります (@code{gnus-server-exit})。 - -@item k -@kindex k (サーバー) -@findex gnus-server-kill-server -現在のサーバーを切ります (kill) (@code{gnus-server-kill-server})。 - -@item y -@kindex y (サーバー) -@findex gnus-server-yank-server -先ほど切られた (killed) サーバーを貼り付けます (yank) -(@code{gnus-server-yank-server})。 - -@item c -@kindex c (サーバー) -@findex gnus-server-copy-server -現在のサーバーを複写します (@code{gnus-server-copy-server})。 - -@item l -@kindex l (サーバー) -@findex gnus-server-list-servers -全てのサーバーの一覧を挙げます (@code{gnus-server-list-servers})。 - -@item s -@kindex s (サーバー) -@findex gnus-server-scan-server -サーバーにその資源から新しい記事を調べるように要求します -(@code{gnus-server-scan-server})。これは主にメールサーバーに対して意味を -持ちます。 - -@item g -@kindex g (サーバー) -@findex gnus-server-regenerate-server -サーバーが全てのデータ構造を再作成するように求めます -(@code{gnus-server-regenerate-server})。これは同期からはずれてしまったメー -ルバックエンドがあるときに役に立ちます。 - -@end table - - -@node Example Methods -@subsection 方法の例 - -ほとんどの選択方法は非常に簡単で、自分自身をよく説明しています: - -@lisp -(nntp "news.funet.fi") -@end lisp - -直接スプールから読むのはもっと簡単です: - -@lisp -(nnspool "") -@end lisp - -見たとおり、選択方法の最初の要素はバックエンドの名前で、2番目は -@dfn{アドレス} (address) 、もしくはそう呼びたいのであれば、@dfn{名前} で -す。 - -これらの2つの要素の後には、任意の数の @var{(変数 様式)} の対を入れる事が -できます。 - -最初の例に戻りましょう---そのマシンのポート15から読みたかったと思ってく -ださい。これがその時に、なるべき選択方法です: - -@lisp -(nntp "news.funet.fi" (nntp-port-number 15)) -@end lisp - -どの変数が関連するかを見つけるために、それぞれのバックエンドの説明文書を -読むべきでしょうが、これは @code{nnmh} の例です。 - -@code{nnml} はスプールのような構造で読むメールバックエンドです。例えば、 -接触を図りたい2つの構造があるとしましょう: 一つはあなたの私的なメールス -プールで、他方は公的なものです。これは私的なメールのために使用可能な指定 -です: - -@lisp -(nnmh "private" (nnmh-directory "~/private/mail/")) -@end lisp - -(そうするとこのサーバーは @samp{private} と呼ばれますが、あなたは既に推 -測していたかもしれません。) - -これは公的スプールのための方法です: - -@lisp -(nnmh "public" - (nnmh-directory "/usr/information/spool/") - (nnmh-get-new-mail nil)) -@end lisp - -防壁 (firewall) の中にいて、防壁マシンからの @sc{nntp} サーバーへの接続 -しかないのであれば、gnus に防壁マシンに @code{rlogin} して、そこから -@sc{nntp} サーバーに telnet をするように指示する事ができます。 -これをする事は少しばからしいですが、事実上のサーバーの定義はおそらくこの -ようなものになるべきです: - -@lisp -(nntp "firewall" - (nntp-address "the.firewall.machine") - (nntp-open-connection-function nntp-open-rlogin) - (nntp-end-of-line "\n") - (nntp-rlogin-parameters - ("telnet" "the.real.nntp.host" "nntp"))) -@end lisp - -もし、すばらしい @code{ssh} プログラムを、モデム線からの圧縮された接続を -提供するために使いたいのであれば、このような感じの事実上のサーバーを作る -事ができます: - -@lisp -(nntp "news" - (nntp-address "copper.uio.no") - (nntp-rlogin-program "ssh") - (nntp-open-connection-function nntp-open-rlogin) - (nntp-end-of-line "\n") - (nntp-rlogin-parameters - ("telnet" "news.uio.no" "nntp"))) -@end lisp - -これはもちろん、自動認証を提供するために @code{ssh-agent} を適切に設定し -なければなりません。圧縮された接続を得るためには、@code{ssh}のファイル -@file{config} で @samp{Compression} オプションがある必要があります。 - - -@node Creating a Virtual Server -@subsection 事実上のサーバーを作成する - -もしあなたは永続記事を使ってたくさんの記事をキャッシュに保存しているので -あれば、キャッシュを読むための事実上のサーバーを作りたいと思うかもしれま -せん。 - -最初に、新しいサーバーを付け加える必要があります。命令 @kbd{a} がそれを -します。おそらくキャッシュを読むためには @code{nnspool} を使うのが一番良 -いでしょう。@code{nnml} や @code{nnmh} も使う事ができますけど。 - -@kbd{a nnspool RET cache RET} と打ってください。 - -今や全く新しい @samp{cache} と呼ばれる @code{nnspool} の事実上のサーバー -あるはずです。次はそれを編集して、正しい定義を与えるだけです。サーバーを -編集するために @kbd{e} を打ってください。以下のものを含むバッファに入る -でしょう。 - -@lisp -(nnspool "cache") -@end lisp - -それを次のものに変更してください: - -@lisp -(nnspool "cache" - (nnspool-spool-directory "~/News/cache/") - (nnspool-nov-directory "~/News/cache/") - (nnspool-active-file "~/News/cache/active")) -@end lisp - -サーバーバッファに戻るために @kbd{C-c C-c} と打ってください。今やこの事 -実上のサーバーで @kbd{RET} を押すと、閲覧バッファに入るべきで、表示され -ているどのグループにでも入る事ができるはずです。 - - -@node Server Variables -@subsection サーバー変数 - -変数を定義する一つのやっかいな点は (バックエンドと Emacs 一般の両方で)、 -変数の定義がロードされるている間に、いくつかの変数は他の変数から初期化さ -れるという事です。もし "基となる" 変数がロードされた後に変更しても、"導 -き出された" 変数は変更されません。 - -これは普通はディレクトリーやファイルの変数に影響します。例えば、 -@code{nnml-directory} はディフォルトで @file{~/Mail} ですが、全ての -@code{nnml} ディレクトリー変数はその変数によって初期化されるので、 -@code{nnml-active-file} は @file{~/Mail/archive} になります。もし新しい -事実上の @code{nnml} サーバーを定義した場合、@code{nnml-directory} を設 -定するだけでは充分では@emph{ありません}---あなたは望んだ状態になるように、 -全てのファイル変数を明示的に設定しなければなりません。それぞれのバックエ -ンドに対する完全な変数のリストを見るためには、このマニュアルの後に続くそ -れぞれのバックエンドの部分を読んでください。でも、@code{nnml} の定義の例 -はここにあります: - -@lisp -(nnml "public" - (nnml-directory "~/my-mail/") - (nnml-active-file "~/my-mail/active") - (nnml-newsgroups-file "~/my-mail/newsgroups")) -@end lisp - - -@node Servers and Methods -@subsection サーバーと方法 - -普通は選択方法を使うところ (例えば、外部サーバーを概観しているときのグルー -プ選択方法での @code{gnus-secondary-select-method}) はどこでも、事実上の -サーバー名をそれの代わりに使う事ができます。このことによりたくさんキーボー -ドを叩かなくてすむ可能性があります。そして、全てにわたって、その方が良い -です。 - - -@node Unavailable Servers -@subsection 使用不可能なサーバー - -もしサーバーに接続不可能であるならば、gnus はサーバーを @code{拒否} とし -て印を付けます。これはその後のそのサーバーとの接続をはかるどのような試み -も無視されるという事です。Gnus は接続が開けないことが本当であるかどうか -を少しも確かめず、``It can't be opend,'' (接続を開く事ができません) と告 -げます。 - -それは行儀が悪いと思う事があるかもしれませんが、それはたいていのときには -良い方法です。例えば、サーバー @samp{nephelococcdyia.com} に10個購読して -いるグループがあるとしましょう。サーバーはどこか非常に遠くにあり、マシン -はとても遅いので、それが今日はあなたとの接続を拒否するかどうかを調べるだ -けで1分かかります。もし gnus がそれを10回試すようになっていたなら、あな -たは非常にうるさく思うでしょう。ですから、gnus はそれを試そうとはしませ -ん。1度 ``connection refused'' (接続は拒否されました) を受け取ると、それ -はサーバーが ``down'' (落ちている) であるとみなします。 - -それで、一時的にそのマシンの機嫌が悪いだけだと何が起こるのでしょう? どう -やってマシンが戻ってきているかどうかっを再び調べる事ができるでのしょう? - -サーバーバッファに飛び移って (@pxref{The Server Buffer}) 、以下の命令で -つつくだけでできます: - -@table @kbd - -@item O -@kindex O (サーバー) -@findex gnus-server-open-server -現在の行のサーバーとの接続を確立しようとします -(@code{gnus-server-open-server})。 - -@item C -@kindex C (サーバー) -@findex gnus-server-close-server -サーバーの接続 (もしあれば) を閉じます (@code{gnus-server-close-server})。 - -@item D -@kindex D (サーバー) -@findex gnus-server-deny-server -現在のサーバーに接続不可能の印を付けます -(@code{gnus-server-open-all-server})。 - -@item M-c -@kindex M-c (サーバー) -@findex gnus-server-close-to-all-servers -バッファにある全てのサーバーとの接続を閉じます -(@code{gnus-server-close-all-servers})。 - -@item R -@kindex R (サーバー) -@findex gnus-server-remove-denials -Gnus がどれかのサーバーから接続拒否を受けたかどうかの全ての印を消去しま -す (@code{gnus-server-remove-denials})。 -@end table - - -@node Getting News -@section ニューズの取得 -@cindex reading news -@cindex newsbackends - -ニューズリーダーは普通はニューズを読む事に使われます。Gnus は現在はニュー -ズを取得するために2つだけの方法を提供しています---@sc{nntp} サーバーか、 -ローカルスプールから読む事ができます。 - -@menu -* NNTP:: @sc{nntp} サーバーからニューズを読む。 -* News Spool:: ローカルスプールからニューズを読む。 -@end menu - - -@node NNTP -@subsection @sc{nntp} -@cindex nntp - -@sc{nntp} サーバーの外部グループを購読するのは比較的簡単です。単に -@code{nntp} を方法として指定し、@sc{nntp} サーバーのアドレス (address) -を、うーん、アドレスとして指定するだけです。 - -もし @sc{nntp} サーバーが標準でないポート (port) に位置しているときは、 -選択方法の3番目の要素をこのポートの数字に設定する事で正しいポートに接続 -する事ができるでしょう。そのためにグループ情報を編集しなければなりません -(@pxref{Foreign Groups})。 - -外部グループの名前は基本グループと同じである事ができます。実際、あなたの -思うままに同じグループを可能な限りの違ったサーバーから購読する事ができま -す。名前の衝突は起こりません。 - -以下の変数は事実上の @code{nntp} サーバーを作るために使われます: - -@table @code - -@item nntp-server-opened-hook -@vindex gnus-server-opend-hook -@cindex @sc{mode reader} -@cindex authinfo -@cindex authentification -@cindex nntp authentification -@findex nntp-send-authinfo -@findex nntp-send-mode-reader -は接続ができた後に実行されます。それは @sc{nntp} サーバーに接触した後に -それに命令を送るために使われる事ができます。ディフォルトでは関数 -@code{nntp-send-mode-reader} により命令 @code{MODE READER} がサーバー -に送られます。その関数は常にこのフックにあるべきです。 - -@item nntp-authinfo-function -@vindex nntp-authinfo-function -@findex nntp-send-authoinfo -@vindex nntp-authinfo-file -この関数は @sc{nntp} サーバーに @samp{AUTHINFO} を送るために使われます。 -ディフォルトの関数は @code{nntp-send-authinfo} で、@file{~/.authinfo} -(もしくは変数 @code{nntp-authinfo-file} に設定したどのようなものでも) を -使用可能な記載を調べるために探します。もし一つも見つからなかったら、あな -たにログイン名とパスワードの入力を促進します。ファイル -@file{~/.authinfo} の様式は (ほとんど) @code{ftp} のファイル -@file{~/.netrc} と同じで、それは @code{ftp} のマニュアルページに定義され -ていますが、ここのものは顕著な事実です: - -@enumerate -@item -ファイルは一つ以上の行を含み、それぞれは一つのサーバーを定義します。 - -@item -それぞれの行は任意の数の 区切り印/値 の対を含む事ができます。有効な区切 -り印は @samp{machine}、@samp{login}、@samp{password}、@samp{force} です。 -(最後のものは有効な @code{.netrc}/@code{ftp} の区切り印ではありません。 -これがファイル @file{.authinfo} が @file{.netrc} ファイル様式から逸れる -唯一の方法です。) - -@end enumerate - -これがそのファイルの例です: - -@example -machine news.uio.no login larsi password geheimnis -machine nntp.ifi.uio.no login larsi force yes -@end example - -区切り印/値 の対はどのような順番ででも現れる事ができます。例えば、 -@samp{machine} は最初に現れる必要はありません。 - -この例では、ログイン名とパスワードの両方が前者のサーバーには与えられてい -るのに対して、後者はログイン名だけを挙げていて、利用者はパスワードの入力 -を促進されます。後者は @samp{force} タグも持っていて、それは接続時に -@var{nntp} サーバーに認証情報 (authinfo) が送られるという事です。ディフォ -ルト (すばわち、@samp{force} タグが無いとき) では @var{nntp} サーバーが -認証情報を尋ねない限りそれを @var{nntp} サーバーに送りません。 - -ファイル @file{~/.authinfo} を世界中が読めるような設定に放置しないように -注意してください。 - -@item nntp-server-action-alist -@vindex nntp-server-action-alist -これはサーバーの型に合致する正規表現と、合致が起こったときに取られる動作 -の連想リストです。例えば、gnus に innd に接続したときに毎回ビープ音を鳴 -らさせたい (beep) のであれば、次のようにする事ができます: - -@lisp -(setq nntp-server-action-list - '(("innd" (ding)))) -@end lisp - -まぁ、そのような事はしたくないでしょうけど。 - -ディフォルトの値は - -@lisp -'(("nntpd 1\\.5\\.11t" - (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader))) -@end lisp - -で、これは nntpd 1.5.11t には命令 @code{MODE READER} を送らない事を確実 -にします。なぜなら、その命令はそのサーバーを固まらせると私は聞いているか -らです。 - -@item nntp-maximum-request -@vindex nntp-maximum-request -もし @sc{nntp} サーバーが @sc{nov} ヘッダーの機能を提供していないのであ -れば、このバックエンドは命令 @code{head} をいくつも送って、ヘッダーを集 -めます。この動作を速くするために、バックエンドは返答を待たずにこの命令を -たくさん送り、それから全ての返答を読みます。これは変数 -@code{nntp-maximum-request} によって制御され、ディフォルトで400です。も -しネットワークが故障がちであるなら、この変数を1に設定するべきでしょう。 - -@item nntp-connection-timeout -@vindex nntp-connection-timeout -定期的に接続する外部 @code{nntp} グループがたくさんあるなら、適切に応答 -しない @code{nntp} サーバーがあったり、あるサーバーは常識的な時間内では -返答できないくらい負荷がかかっている、などの問題があるでしょう。これは困っ -た問題になることがありますが、@code{nntp-connection-timeout} を設定する -事によりある程度解消する事ができます。これは接続をあきらめるまえに、 -@code{nntp} バックエンドが何秒待つかを示す整数です。もしこれが -@code{nil} であると、これがディフォルトですが、時間切れ切断はなされませ -ん。 - -@c @item nntp-command-timeout -@c @vindex nntp-command-timeout -@c @cindex PPP connections -@c @cindex dynamic IP addresses -@c If you're running Gnus on a machine that has a dynamically assigned -@c address, Gnus may become confused. If the address of your machine -@c changes after connecting to the @sc{nntp} server, Gnus will simply sit -@c waiting forever for replies from the server. To help with this -@c unfortunate problem, you can set this command to a number. Gnus will -@c then, if it sits waiting for a reply from the server longer than that -@c number of seconds, shut down the connection, start a new one, and resend -@c the command. This should hopefully be transparent to the user. A -@c likely number is 30 seconds. -@c -@c @item nntp-retry-on-break -@c @vindex nntp-retry-on-break -@c If this variable is non-@code{nil}, you can also @kbd{C-g} if Gnus -@c hangs. This will have much the same effect as the command timeout -@c described above. - -@item nntp-server-hook -@vindex nntp-server-hook -このフックは @sc{nntp} サーバーに接続する最後の一歩として実行されます。 - -@findex nntp-open-rlogin -@findex nntp-open-telnet -@findex nntp-open-network-stream -@item nntp-open-connetcion-function -@vindex nntp-open-connection-function -この関数は遠隔システムに接続するために使われます。3つの既製関数の1つは -@code{nntp-open-network-stream}で、これはディフォルトで単純に遠隔システ -ムのどこかののポートや何かに接続します。残りの2つのうちの1つは、 -@code{nntp-open-rlogin} で、遠隔システムに @code{rlogin} をして、それか -らそこから使用可能な @sc{nntp} サーバーに @samp{telnet} をし、もう一つは -@code{nntp-open-telnet} で、これは遠隔システムに @samp{telnet} をして、 -それから @sc{nntp} サーバーにたどり着くためにもう一つ @samp{telnet} をし -ます。 - -@code{nntp-open-rlogin} に関連した変数です: - -@table @code - -@item nntp-rlogin-program -@vindex nntp-rlogin-program -遠隔マシンにログインをするために使われるプログラムです。ディフォルトは -@samp{rsh} ですが、@samp{ssh} が人気のある代替手段です。 - -@item nntp-rlogin-parameters -@vindex nntp-rlogin-parameters -このリストは @code{rsh} に与えられるパラメータのリストとして使われます。 - -@item nntp-rlogin-user-name -@vindex nntp-rlogin-user-name -遠隔システムでの利用者名です。 - -@end table - -@code{nntp-open-telnet} に関連した変数です: - -@table @code -@item nntp-telnet-command -@vindex nntp-telnet-command -@code{telnet} を始めるのに使われる命令です。 - -@item nntp-telnet-switches -@vindex nntp-telnet-switches - -命令 @code{telnet} のスイッチ (switch) として使われる文字列のリストです。 - -@item nntp-telnet-user-name -@vindex nntp-telnet-user-name -遠隔システムにログインするための利用者名です。 - -@item nntp-telnet-passwd -@vindex nntp-telnet-passwd -ログインするときに使われるパスワードです。 - -@item nntp-telnet-parameters -@vindex nntp-telnet-parameters -@code{telnet} でログインをした後に命令として実行される文字列のリストです。 - -@item nntp-telnet-shell-prompt -@vindex nntp-telnet-shell-prompt -遠隔マシンでのシェルのプロンプトに合致する正規表現です。ディフォルトは -@samp{bash\\|\$ *\r?$\\|> *\r?} です。 - -@item nntp-open-telnet-envuser -@vindex nntp-open-telnet-envuser -@code{nil} でないなら、@code{telnet} セッションは (クライアントとサーバー -の両方で) @code{ENVIRON} オプションを使用する事ができ、ログイン名入力を -促進しません。これはたとえば Solaris の @code{telnet} に対して動作します。 - -@end table - -@item nntp-end-of-line -@sc{nntp} サーバーとお話をしているときに行の終わり (end-of-line) として -使われる印です。これはディフォルトで @samp{\r\n} ですが、サーバーとお喋 -りをするために @code{rlogin} を使っているときは @samp{\n} であるべきです。 - -@item nntp-rlogin-user-name -@vindex nntp-rlogin-user-name -@code{rlogin} 接続関数を使っているときの遠隔システムでの利用者名です。 - -@item nntp-address -@vindex nntp-address -@sc{nntp} サーバーが動いている遠隔システムのアドレスです。 - -@item nntp-port-number -@vindex nntp-port-number -@code{nntp-open-network-stream} 接続関数を使っているときの接続するポート -番号です。 - -@item nntp-buggy-select -@vindex nntp-buggy-select -あなたの選択の一連の作業が故障がちであるときにこれを @code{nil} でない値 -に設定してください。 - -@item nntp-nov-is-evil -@vindex nntp-nov-is-evil -@sc{nntp} サーバーが @sc{nov} 機能を提供していなければこの変数を -@code{t} に設定する事ができますが、@code{nntp} は普通は @sc{nov} が使わ -れるかどうかを自動的に調べます。 - -@item nntp-xover-commands -@vindex nntp-xover-commands -@cindex nov -@cindex XOVER -サーバーから @sc{nov} 行を取得するための命令として使われる文字列のリスト -です。この変数のディフォルトの値は @code{("XOVER" "XOVERVIEW")} です。 - -@item nntp-nov-gap -@vindex nntp-nov-gap -@code{nntp} は普通はサーバーに @sc{nov} 行のための一つの大きな要求を送り -ます。サーバーは一つの巨大な、行のリストで応答します。しかし、もしグルー -プの2-5000の記事を読んで、1と5001を読みたいだけなら、@code{nntp} は必要 -無い4999の @sc{nov} 行を取得する事になります。この変数は @code{XOVER} -要求がどれくらい大きな2つの連続した記事群の間のへだたり (gap) まで分割さ -れないで送られるかを決定します。ネットワークが速い場合は、この変数を本当 -に小さな数字に設定するとおそらく取得が遅くなるという事に注意してください。 -この変数が @code{nil} であると、@code{nntp} は要求を分割しません。ディフォ -ルトは5です。 - -@item nntp-prepare-server-hook -@vindex nntp-prepare-server-hook -@sc{nntp} サーバーに接続を試みる前に実行されるフックです。 - -@item nntp-warn-about-losing-connection -@vindex nntp-warn-about-losing-connection -この変数が @code{nil} でないと、サーバーが接続を閉じたときに少し雑音がた -てられます。 - -@item nntp-record-commands -@vindex nntp-record-commands -もし @code{nil} でないと、@code{nntp} は @sc{nntp} サーバーに送った全て -の命令を (時間と共に) @samp{*nntp-log*} バッファに記録します。これは動作 -していないと思われる gnus/@sc{nntp} 接続をディバッグしているときに役に立 -ちます。 - -@end table - - -@node News Spool -@subsection ニューズスプール -@cindex nnsppl -@cindex new spool - -ローカルスプールから外部グループを購読する事は非常に簡単で、役に立ちます。 -たとえば、非常に大きな記事があるグループ---例えば -@samp{alt.binaries.pictures.furniture} を読む速度が速くなります。 - -とにかく、@code{nnspool} を方法として、 @code{""} (もしくは何でも) をア -ドレスとして指定するだけです。 - -もしローカルスプールにつなぐ事が可能なら、おそらくそれを基本選択方法とし -て使うべきでしょう (@pxref{Finding the News})。それは普通は @code{nntp} -選択方法より速いですが、そうでないかもしれません。それは状況に依存します。 -何があなたのサイトで一番良いかを見つけるために、いろいろと試してみなけれ -ばなりません。 - -@table @code - -@item nnspool-inews-program -@vindex nnspool-inews-program -記事を投稿するために使われるプログラムです。 - -@item nnspool-inews-switches -@vindex nnspool-inews-switches -記事を投稿するときに inews プログラムに与えられるパラメータです。 - -@item nnspool-spool-directory -@code{nnspool} が記事を探すところです。これは普通は -@file{/usr/spool/news/} です。 - -@item nnspool-nov-directory -@vindex nnspool-nov-directory -@code{nnspool} が @sc{nov} ファイルを探すところです。これは普通は -@file{/usr/spool/news/over.view/} です。 - -@item nnspool-lib-dir -@vindex nnspool-lib-dir -ニュースのライブラリーディレクトリーの場所です (ディフォルトで -@file{/usr/lib/news/} です)。 - -@item nnspool-active-file -@vindex nnspool-active-file -現状ファイルへのパスです。 - -@item nnspool-newsgroups-file -@vindex nnspool-newsgroups-file -グループ記述ファイルへのパスです。 - -@item nnspool-history-file -@vindex nnspool-history-file -ニュース履歴ファイルへのパスです。 - -@item nnspool-active-times-file -@vindex nnspool-active-times-file -現状日付ファイルへのパスです。 - -@item nnspool-nov-is-evil -@vindex nnspool-nov-is-evil -@code{nil} でないと、@code{nnspool} はそれが見つけたどんな @sc{nov} ファ -イルも使おうとはしません。 - -@item nnspool-sift-nov-with-sed -@vindex nnspool-sift-nov-with-sed -@cindex sed -@code{nil} でないと、これがディフォルトですが、概観ファイル (overview) -から関連する部分を得るために @code{sed} を使います。もし nil だと、 -@code{nnspool} はファイル全体をバッファに読み込んで、そこで実行します。 - -@end table - - -@node Getting Mail -@section メール取得 -@cindex reading mail -@cindex mail - -ニュースリーダーでメールを読む---それは明白に超自然的な事ではないのです -か? いや、もちろんできます。 - -@menu -* Getting Started Reading Mail:: 簡単な料理本のような例。 -* Splitting Mail:: どのようにメールグループを作成するか。 -* Mail Backend Variables:: メールの扱いをカスタマイズするための変数。 -* Fancy Mail Splitting:: Gnus は入って来たメールの毛のような分離をすることができる。 -* Mail and Procmail:: procmail が作成したメールグループを読む。 -* Incorporating Old Mail:: あなたが持っている古いメールをどうするか? -* Expiring Mail:: 欲しくないメールを取り除く。 -* Washing Mail:: 取得したメールから嫌なものを取り除く。 -* Duplicates:: 重複したメールを扱う。 -* Not Reading Mail:: 他のファイルを読むためにメールバックエンドを使う。 -* Choosing a Mail Backend:: Gnus は色々なメール様式を読む事ができる。 -@end menu - - -@node Getting Started Reading Mail -@subsection メールを読む事を始める - -Gnus を使って新しいメールを読む事は非常に簡単です。あなたのメールバック -エンドのあなたの選択を @code{gnus-secondary-select-methods} に放り込むだ -けで、あとのことは自動的に起こります。 - -例えば、@code{nnml} (これは "一メール一ファイル" バックエンドです) を使 -いたいなら、次のものをあなたの @file{.gnus} ファイルに入れる事ができます。 - -@lisp -(setq gnus-secondary-select-methods - '((nnml "private"))) -@end lisp - -今や、次に gnus を起動したときには、このバックエンドは新しい記事を求め、 -それはあなたのスプールファイルから全てのメッセージをディレクトリー、ディ -フォルトでは @code{~/Mail/} 、に移動します。作成された新しいグループ -(@samp{mail.misc}) が購読され、他のグループと同じように読む事ができます。 - -あなたはおそらくメールをいくつかのグループに分割したいでしょうけど: - -@lisp -(setq nnmail-split-methods - '(("junk" "^From:.*Lars Ingebrigtsen") - ("crazy" "^Subject:.*die\\^Organization:.*flabby") - ("other" ""))) -@end lisp - -これは結果として3つの新しい @code{nnml} メールグループを作ります: -@samp{nnml:junk}、@samp{nnml:crazy}、@samp{nnml:other} です。最初の2つの -グループに合わないメールは全て最後のグループに入れられます。 - -これは gnus でメールを読むために充分であるはずです。マニュアルのこの部分 -の他の項を熟読したいと思うかもしれませんが。特に @pxref{Choosing a Mail -Backend} と @pxref{Expiring Mail} を。 - - -@node Splitting Mail -@subsection メールの分割 -@cindex splitting mail -@cindex mail splitting - -@vindex nnmail-split-methods -変数 @code{nnmail-split-methods} は入ってくるメールをどのようにグループ -分けするかを指定します。 - -@lisp -(setq nnmail-split-methods -'(("mail.junk" "^From:.*Lars Ingebrigtsen") - ("mail.crazy" "^Subject:.*die\\|^Organization:.*flabby") - ("mail.other" ""))) -@end lisp - -この変数はリストのリストで、これらのリストの最初のそれぞれの要素がメール -グループの名前で (ところで、それらは @samp{mail} で始まる必要はありませ -ん)、2つめの要素がそれぞれのメールのヘッダーからそれがどのグループに属す -るかを決定する正規表現です。最初の文字列は、@code{replace-match} によっ -て、合致した文章からの副表現を挿入するために使われるような、 -@code{samp\\1} の様式を含むかもしれません。たとえば: - -@lisp -("list.\\1" "From:.*\\(.*\\)-list@@majordomo.com") -@end lisp - -もし最初の要素が特別なシンボル @code{junk} であれば、それの正規表現に合 -致するメッセージは天空に消え去ります。非常に注意して使ってください。 - -2番目の要素は関数である事もできます。その場合は、それは法則の最初の要素 -を引数として、ヘッダーに範囲を狭めて (narrowed to headers) 呼ばれます。 -それは、メールがそのグループに属すると考えるのであれば、@code{nil} でな -い値を帰す必要があります。 - -これらの最後は常に総合的なものであるべきで、他の正規表現に合致しないメー -ルに合致するために、この正規表現は @emph{いつも} @samp{}であるべきです。 -(これらの法則は連想リストの初めから終わりまで順番に実行されます。相互投 -稿 (crosspost) を使用可能にしていない限り、最初の合致した法則が "勝ちま -す"。相互投稿を使用可能にしている場合、全ての合致した法則が "勝ちます"。) - -もしあなた自身でこれをいじくりまわしたいときは、あなたの選んだ関数をこの -変数に設定する事ができます。この関数は入って来たメールメッセージのヘッダー -に範囲を狭められたバッファで引数なしで呼ばれます。この関数は、それがこの -メールメッセージを運ぶべきである、と考えるグループ名のリストを返すべきで -す。 - -全てのメールバックエンドは、入って来た貧乏で純粋なヘッダーを乱暴に扱って -も良い事に注意してください。それらはすべて @code{Lines} ヘッダーを追加し -ます。いくつかは @code{X-Gnus-Group} ヘッダーを加えます。たいていのもの -は Unix の mbox の @code{From} 行を何か別の名前に変えます。 - -@vindex nnmail-crosspost -メールバックエンドはすべて相互投稿の機能を提供しています。いくつかの正規 -表現が合致すると、メールは全てのグループに ``相互投稿'' されます。 -@code{nnmail-crosspost} はこの機能を使うかどうかを指定します。どの記事も -総合の (@samp{}) グループに相互投稿されない事に注意してください。 - -@vindex nnmail-crosspost-link-function -@cindex crosspost -@cindex links -@code{nnmh} と @code{nnml} は相互投稿された記事にハードリンク (hardlink) -を作る事によって相互投稿を行います。しかし、全てのファイルシステムがハー -ドリンクの機能を提供しているわけではありません。もしあなたがその場合に当 -てはまるのであれば、@code{nnmail-crosspost-link-function} を -@code{copy-file} に設定してください。 (この変数はディフォルトで -@code{add-name-to-file} です。) - -@kindex M-x nnmail-split-history -@kindex nnmail-split-history -前のメール分割がメッセージをどこに入れたかを見たい場合は、命令 @kbd{M-x -nnmail-split-history} を使う事ができます。 - -Gnus はあなたに自分自身に跳ね返ってくるような可能性のある全ての機会を提 -供します。例えば、あなたの上司からくる全てのメールを含んだグループを作っ -たとしましょう。それから、偶発的にそのグループの購読取り止めが起こったと -します。Gnus はそれでも上司からの全てのメールを未購読のグループに入れま -すので、上司が ''月曜日までにその報告書を準備しないと首だ!'' というメー -ルをあなたに送っても、あなたはそれを見る事はなく、火曜日になって本当は翌 -月の家賃を払うために空のボトルを集めるべきであっても、まだ有給で雇われて -いると信じているかもしれません。 - - -@node Mail Backend Variables -@subsection メールバックエンド変数 - -これらの変数は (たいていの場合) 全ての違ったメールバックエンドに関連しま -す。 - -@table @code -@vindex nnmail-read-incoming-hook -@item nnmail-read-incoming-hook -メールバックエンドは新しいメールを読み込んだ後にこのフックを呼びます。も -しそうしたいと思うなら、このフックをメール監視プログラムに知らせるために -使う事ができます。 - -@vindex nnmail-spool-file -@item nnmail-spool-file -@cindex POP mail -@cindex MAILHOST -@cindex movemail -@vindex nnmail-pop-password -@vindex nnmail-pop-password-required -バックエンドはこのファイルで新しいメールを探します。この変数が -@code{nil} であると、メールバックエンドは決して自分自身ではメールを取得 -しようとしません。もし POP メールサーバーを使っていて、あなたの名前が -@samp{larsi} であるならば、この変数を @samp{po:larsi} に設定するべきです。 -もしあなたの名前が @samp{larsi} でないならば、おそらくこれを少し修正しな -ければなりませんが、既にあなたはそれを推測しているでしょう。この賢く顔立 -ちの良い悪魔さん! この変数を @code{pop} に設定する事もでき、その時は -gnus が自分自身で POP メール文字列を発見しようとします。どのような場合で -も、gnus は 環境変数 @code{MAILHOST} で指定されている POP サーバーに接触 -を図ろうとする @code{movemail} を呼びます。POP サーバーがパスワードを必 -要とするなら、@code{nnmail-pop-password-required} を @code{t} に設定して -パスワード入力を促進されるか、@code{nnmail-pop-password} をパスワードそ -のものに設定する事ができます。 - -@code{nnmail-spool-file} はメールボックスのリストである事もできます。 - -あなたの Emacs が コンパイル (compilation) の前に @samp{--with-pop} と共 -に環境設定 (configure) されなければなりません。これはディフォルトですが、 -いくつかのインストールはその設定を切ってしまいます。 - -メールバックエンドを使うときは、gnus は全てのメールを inbox から吸い上げ -て、ホームディレクトリーに放り投げます。あなたがメールバックエンドを使っ -ていない場合は、gnus は1通もメールを移動しません---最初に魔法の呼び出し -をたくさんしなければなりません。まず5角形を描き、蝋燭に火を付け、山羊を -生け贄として捧げ終えた後で、gnus があなたのメールを移動しても本当にあま -り驚いてはいけません。 - -@vindex nnmail-use-procmail -@vindex nnmail-procmail-suffix -@item nnmail-use-procmail -もし @code{nil} でなければ、メールバックエンドは入ってくるメールを -@code{nnmail-procmail-directory} で探します。そのディレクトリーで -@code{nnmail-procmail-suffix} で終わっている名前を持つ全てのファイルは入っ -て来たメールボックスとみなされ、そこで新しいメールが探されます。 - -@vindex nnmail-crash-box -@item nnmail-crash-box -メールバックエンドがスプールファイルを読んだときに、メールは最初にこのファ -イルに移動されます。これはディフォルトで @file{~/.gnus-crash-box} です。 -このファイルが既に存在する場合は、それは常に他のスプールファイルより先に -読み込まれ (そして取り込まれ) ます。 - -@vindex nnmail-prepare-incoming-hook -@item nnmail-prepare-incoming-hook -これは入って来た新しいメールを持っているバッファで実行され、えーと、本当 -に、全てのことについて使われます。 - -@vindex nnmail-split-hook -@item nnmail-split-hook -@findex article-decode-rfc1522 -@findex RFC1522 decoding -それぞれのメッセージがそのヘッダーに基づいて分割がなされる直前にそれが保 -存されているバッファで実行されるフックです。このフックはそれが適合すると -考えるように自由にバッファの内容を編集する事ができます---バッファは分割 -が終わった後で消去され、バッファで行われた変更はどのファイルにも現れませ -ん。@code{gnus-article-decode-rfc1522} がこのフックに加える事が適切な関 -数の一つです。 - -@vindex nnmail-pre-get-new-mail-hook -@vindex nnmail-post-get-new-mail-hook -@item nnmail-pre-get-new-mail-hook -@itemx nnmail-post-get-new-mail-hook -これらは入ってくるメールを扱うときに実行される役に立つ2つのフックです--- -@code{nnmail-pre-get-new-mail-hook} (これは新しいメールを扱う直前に呼ば -れます) と @code{nnmail-post-get-new-mail-hook} (これはメールの扱いが終 -わったときに呼ばれます) です。次のものは、この2つのフックを使って新しい -メールファイルに与えられるディフォルトのファイルモードを変更する例です: - -@lisp -(add-hook 'gnus-pre-get-new-mail-hook - (lambda () (set-default-file-modes 511))) - -(add-hook 'gnus-post-get-new-mail-hook - (lambda () (set-default-file-modes 551))) -@end lisp - -@item nnmail-tmp-directory -@vindex nnmail-tmp-directory -この変数は入って来たメールをどこに移動するかを指定します -- それを実行し -ている間に。これは普通はメールバックエンドが住んでいるものと同じディレク -トリー (例、 @file{~/Mail/}) で行われますが、この変数が @code{nil} でな -いと、それが代わりに使われます。 - -@item nnmail-movemail-program -@vindex nnmail-movemail-program -このプログラムは利用者のインボックスからホームディレクトリーに移動するた -めに実行されます。ディフォルトは @code{movemail} です。 - -これは関数である事もできます。その場合は、その関数は2つのパラメータ -- -インボックスの名前と移動するファイル名前 と共に呼ばれます。 - -@item nnmail-delete-incoming -@vindex nnmail-delete-incoming -@cindex incoming mail files -@cindex deleting incoming files -@code{nil} でないなら、メールバックエンドはメールを適切なグループへ分割した後で一時新入ファイルを消去します。これはディフォルトで @code{t} です。 - -@c This is @code{nil} by -@c default for reasons of security. - -@c Since Red Gnus is an alpha release, it is to be expected to lose mail. -((ding) Gnus 0.10 (もしくはそのようなもの) からの Gnus のリリースは私が -思うにメールを失った事はないのですが、でもそのことはここでは重要ではあり -ません。 (特別なバージョンの Red Gnus を除きます。)) Incoming* ファイル -を消去しない事で、メールを失わない事を確実にできます -- もし gnus が完全 -に強制的に吹っ飛んでも、いつも失われたものを取り戻す事ができます。 - -いつでもあなたの意志で @file{Incoming*} ファイルを消去する事ができます。 - -@item nnmail-use-long-file-names -@vindex nnmail-use-long-file-names -@code{nil} でないなら、メールバックエンドは長いファイル名とディレクトリー -名を使います。@samp{mail.misc} のようなグループ名は @file{mail.misc} と -いうディレクトリー (@code{nnml} バックエンドが使われているとみなすと) か -ファイル (@code{nnfolder} バックエンドが使われているとみなすと) という結 -果になります。もしそれが @code{nil} であるなら、同じグループは -@file{mail/misc} という結果になります。 - -@item nnmail-delete-file-function -@vindex nnmail-delete-file-function -@findex delete-file -ファイルを消去するために呼ばれる関数です。ディフォルトで -@code{delete-file} です。 - -@item nnmail-cache-accepted-message-ids -@vindex nnmail-cache-accepted-message-ids -@code{nil} でないと、バックエンドに入って来た記事 (例えば、@code{Gcc} に -よって) の @code{Message-ID} をメール重複発見ファイルに入れます。ディフォ -ルトは @code{nil} です。 - -@end table - -@node Fancy Mail Splitting -@subsection 特級メール分割 -@cindex mail splitting -@cindex fancy mail splitting - -@vindex nnmail-split-fancy -@findex nnmail-split-fancy -比較的単純な標準のメール分割指定の方法ではあなたの望む事ができない場合、 -@code{nnmail-split-methods} を @code{nnmail-split-fancy} に設定する事が -できます。それから変数 @code{nnmail-split-fancy} で遊ぶ事ができます。 - -まずこの変数の値の例を見てみましょう: - -@lisp -;; メールデーモン (mailer deamon) は普通のグループには相互投稿されませ -;; ん。警告は本当のエラーとは違ったグループに入れられます。 -(| ("from" mail (| ("subject" "warn.*" "mail.warning") - "mail.misc")) - ;; エラーでないメッセージは全ての関連したグループに相互投稿されます - ;; が、(ding) リストと他の (ding) 関連のメールのためのグループには - ;; 相互投稿しません。 - (& (| (any "ding@@ifi\\.uio\\.no" "ding.list" "ding.list") - ("subject "ding" "ding.misc")) - ;; 他のメーリングリスト... - (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list") - (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list") - ;; 人々... - (any "larsi@@ifi\\.uio\\.no" "people.Lars_Magne_Ingebrigtsen")) - ;; 合致しなかったメールは全てを捕まえるグループへ行きます。 - "misc.misc") -@end lisp - -この変数は @dfn{分割} の様式になっています。分割は (あるいは) それぞれの -分割が他の分割を含む再帰的構造です。これは使用可能な5つの分割構文です: - -@enumerate - -@item -@samp{group}: もし分割が文字列であると、それはグループ名としてみなされま -す。 - -@item -@var{(FIELD VALUE SPLIT)}: もし分割がリストで、最初の要素が文字列であり、 -ヘッダー FIELD (正規表現) が VALUE (これも正規表現) を含んでいる場合、メッ -セージを SPLIT で指定されたところに蓄積します。 - -@item -@var{(| SPLIT...)}: 分割がリストで、最初の要素が @code{|} (垂直棒) であ -ると、それぞれの SPLIT をそのうちの一つが合致するまで実行します。 SPLIT -はメールメッセージが一つ以上のグループに蓄積されたときに ``合致した'' と -します。 - -@item -@var{(& SPLIT...)}: 分割がリストで、最初の要素が @code{t} であると、リス -トの全ての SPLIT を実行します。 - -@item -@code{junk}: もし分割がシンボル @code{junk} であると、そのメッセージを保 -存しません。 - -@item -@var{(: function arg1 arg2 ...)}: もし分割がリストで、最初の関数が -@code{:} であると、2番目の要素が @var{args} を引数として関数として呼ばれ -ます。関数は SPLIT を返すべきです。 - -@end enumerate - -これらの分割で、@var{FIELD} は完全なフィールド名に合致しなければなりませ -ん。@var{VALUE} は基礎モード (fundamental mode) 構文テーブル (syntax -table) に従って完全に合致しなければなりません。正規表現でフィールド名か -語の部分に合致させるために @code{.*} を使う事ができます。言い換えれば、 -全ての @var{VALUE} は @samp{\<} と @samp{\>} の対で囲まれます。 - -@vindex nnmail-split-abbrev-alist -@var{FIELD} と @var{VALUE} は lisp シンボル (symbol) である事もでき、そ -の場合はそれらは @code{nnmail-split-abbrev-alist} で指定されているように -展開されます。これはセルの @code{car} がキーを含んでいて、@code{cdr} が -関連付けられた値を持っているコンスセル (cons cell) の連想リストです。 - -@vindex nnmail-split-fancy-syntax-table -@code{nnmail-split-fancy-syntax-table} がこれらの全ての分割が実行されて -いるときに有効な構文テーブルです。 - -ヘッダーのいくつかの情報に基づいて、gnus に動的にグループを作らせたいのであれば (例えば、グループ名で @code{replace-match} のような代用をする)、次のような事ができます。 - -@example -(any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1") -@end example - -@node Mail and Procmail -@subsection メールと Procmail -@cindex procmail - -@cindex slocal -@cindex elm -多くの人は @code{procmail} (もしくは他のメール選別プログラムか外部配送代 -理---@code{slocal}、@code{elm} など) を入って来たメールをグループに分割 -するために使います。もしそうしているのであれば、メールバックエンドが自分 -自身でメールを取得しない事を確実にするために、@code{nnmail-spool-file} -を @code{procmail} に設定するべきです。 - -もし複合 @code{procmail}/POP/mailbox 設定を使っているのであれば、以下の -ような事をする事ができます: - -@vindex nnmail-use-procmail -@lisp -(setq nnmail-use-procmail t) -(setq nnmail-spool-file - '("/usr/spool/mail/my-name" "po:my-name")) -@end lisp - -これはいくつかの、おそらく、期待しない副効果をもたらすであろう -@code{nnmail-split-methods} も設定したいとは思わないという事も意味します。 - -メールバックエンドがどのグループに運ぶかを尋ねられたときは、それは他の方 -法で運ぶ事を発見した他の全てのグループと共に、その変数の内容から値を帰し -ます。@code{nnmh} 以外のバックエンドは実際にディスクへ行ってどのグループ -が実際に存在しているかを調べることはしません。 (利用者がどのグループを -ニュースグループのためで、どのグループが普通の古いファイルやディレクトリー -のためであると考えているかを区別する事はささいな事ではありません。) - -これは、あなたが gnus (とバックエンド) に手でどのグループが存在している -かを教えなければならないという事です。 - -@code{nnmh} バックエンドを例に取ってみましょう: - -フォルダーは @code{nnmh-directory} に位置づけられています。そうですねぇ、 -@file{~/Mail} としましょう。そこには @file{foo}、@file{bar}、 -@file{mail.baz} という3つのフォルダーがあります。 - -グループバッファへ行って、@kbd{G m} と打ってください。入力を促進されたと -きは、名前 (name) として @samp{foo} を、方法 (method) として @samp{nnmh} -を答えてください。2つの他のグループ、@samp{bar} と @samp{mail.baz} のた -めに同様の事を2回繰り返してください。全てのあなたのメールグループを含め -るようにしてください。 - -これで全部です。もう、メールを読む事ができるように設定されています。この -方法の現状ファイルは自動的に作成されます。 - -@vindex nnmail-procmail-suffix -@vindex nnmail-procmail-directory -もし @code{nnfolder} や他の2通以上のメールを一つのファイルに溜めるバック -エンドを使っているのなら、gnus が見るファイルに procmail がメールを加え -ないようにしなければなりません。代わりに、procmail は全ての入ってくるメー -ルを @code{nnmail-procmail-directory} に入れるべきです。入って来たメール -を入れるファイル名に到着するために、グループ名に -@code{nnmail-procmail-suffix} を付加してください。メールバックエンドはこ -れらのファイルからメールを読み込みます。 - -@vindex nnmail-reslpit-incoming -Gnus が @file{mail.misc.spool} と呼ばれているファイルを読み込んだときは、 -このメールは期待通り、 @code{mail.misc} に入れられます。しかし、gnus に -普通の方法でメールを分割させたい場合、@code{nnmail-resplit-incoming} を -@code{t} に設定する事ができます。 - -@vindex nnmail-keep-last-article -もし @code{procmail} に入って来た物を分割して直接 @code{nnmh} のディレク -トリーに入れるようにしている場合 (これはするべきではないことですが)、 -gnus が最後の記事 (すなわち、もっとも大きい記事番号を持つ記事) を期限切 -れ削除するのを防ぐために、@code{nnmail-keep-last-article} を @code{nil} -でない値に設定するべきです。 - -これは設定の例です: 入ってくるスプールは @file{~/incoming/} に置かれてい -て、@samp{""} を接尾語として持っています (すなわち、入ってくるスプールファ -イルはそれと等価なグループと同じ名前になっています)。 @code{nnfolder} バッ -クエンドはメールインターフェースとして使われ、@code{nnfolder} ディレクト -リーは @file{~/fMail/} です。 - -@lisp -(setq nnfolder-directory "~/fMail/*) -(setq nnmail-spool-file 'procmail) -(setq nnmail-procmail-directory "~/incoming/") -(setq gnus-secondary-select-methods '((nnfolder ""))) -(setq nnmail-procmail-suffix "") -@end lisp - - -@node Incorporating Old Mail -@subsection 古いメールを取り込む - -たいていの人は色々なファイルフォーマットで蓄積されたたくさんの古いメール -があるでしょう。もし gnus に粋な gnus メールバックエンドの一つを使うよう -に設定したのであれば、おそらく古いメールをメールグループに取り込みたいと -思うでしょう。 - -それをする事はとても簡単です。 - -例を挙げましょう: @code{nnml} (@pxref{Mail Spool}) を使ってメールを読ん -でいて、@code{nnmail-split-methods} を満足できる値に設定しています。古い -Unix mbox ファイルが重要だけれど古いメールで満たされています。あなたはそ -れを @code{nnml} グループに移動したいと思っています。 - -方法です: - -@enumerate -@item -グループバッファに行きます。 - -@item -`G f' と打って、mbox ファイルから @code{nndoc} グループを作成するように -促進されたときに mbox ファイルへのパスを与えます (@pxref{Foregin -Groups})。 - -@item -`SPACE' を打って、新しく作られたグループに入ります。 - -@item -`M P b' を打って、グループバッファの全ての記事に実行印を付けます -(@pxref{Setting Process Marks})。 - -@item -`B r' を打って全てのプロセス印の付いた再スプールし、促進されたときに -@samp{nnml} と答えます (@pxref{Mail Group Commands})。 -@end enumerate - -mbox ファイルの全てのメールメッセージも今やあなたの @code{nnml} グループ -に広がっています。それらに入って、変な故障もなく物事が上手く行っているか -どうかを調べてください。もし大丈夫なようであれば、mbox ファイルを消す事 -を考えるかもしれませんが、私は全てのメールがあるべきところに納まっている -のを完全に確認するまでは、そうはしません。 - - -@node Expiring Mail -@subsection メールの期限切れ消去 -@cindex article expiry - -伝統的なメールリーダーは、何か、既読の印を付けると記事を削除する傾向があ -ります。 Gnus はメールを読む事に対して、基本的に全く違った方法を取ります。 - -Gnus は基本的にメールを比較的特別な方法で受け取られたニュースであるとみ -なします。それは実際にメールを変更しあり、メールメッセージを消す権力があ -るとは考えません。メールグループに入って、記事に ``既読'' の印を付けたり、 -他の流儀で切ったりしても、メール記事はまだシステムに存在しています。繰り -返します: gnus はあなたの古い、既読メールを消去しません。もちろん、あな -たがそうしろと尋ねない限りの話ですが。 - -Gnus に望ましくないメールを削除させるためには、記事を @dfn{期限切れ消去 -可能} (expirable) として印を付けなければなりません。しかしながら、これは -記事が即座に消え去るという事ではありません。一般的に、メール記事は次のよ -うな場合にシステムによって削除されます 1) 期限切れ消去可能の印を付けられ -る 2) 1週間以上経った記事である。 もし記事を期限切れ消去可能にしなければ、 -それは地獄が凍りつくまでシステムに残りつづけます。これはもう一度強調付き -で繰り返されるに足るものです: ``もし'' あなたが記事を ``期限切れ消去可能'' -であると ``しない'' なら、gnus は ``決して'' それらの ``記事'' を消去し -ません。 - -@vindex gnus-auto-expirable-newgroups -手で記事に期限切れ消去可能の印を付けなければならないわでではありません。 -正規表現 @code{gnus-auto-expirable-newsgroups} に合致するグループは全て -の既読記事に自動的に期限切れ消去可能の印が付けられます。全ての期限切れ消 -去可能の印の付いた記事は概略バッファの最初の桁に @samp{E} が表示されます。 - -ディフォルトでは自動期限切れ消去可能を使用すると、gnus はあなたが読んだ -全ての記事を、それが既読であったか未読であったかに関わらず、期限切れ消去 -可能として印を付けます。既読の印の付いた記事が自動的に期限切れ消去可能と -して印付けられるのを避けるために、以下のようなものを @file{.gnus} ファイ -ルに書く事ができます: - -@vindex gnus-mark-article-hook -@lisp -(remove-hook 'gnus-mark-article-hook - 'gnus-summary-mark-read-and-unread-as-read) -(add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read) -@end lisp - -自動期限切れ消去可能グループを作る事は、全ての既読記事が期限切れ消去され -る事ではない事に気を付けてください---期限切れ消去可能として印の付いた記 -事だけが期限切れ消去されます。命令 @kbd{d}が自動的にグループを期限切れ消 -去可能にするのでは無いという事にも気を付けてください---半自動の、自動期 -限切れ消去可能グループで記事を既読に印付けることだけが記事を期限切れ消去 -可能にします。 - -@lisp -(setq gnus-auto-expirable-newgroups - "mail.nosense-list\\|mail.nice-list") -@end lisp - -自動期限切れ消去を実行する他の方法は、グループのグループパラメータとして、 -要素 @code{auto-expirable} を持つ事です。 - -もし適応スコア付け (@pxref{Adaptive Scoring}) と自動期限切れ消去を使用し -ているなら、問題が起こるでしょう。自動期限切れ消去と適応スコア付けはあま -り良く相互作用しません。 - -@vindex nnmail-expiry-wait -変数 @code{nnmail-expiry-wait} は期限切れ消去可能記事がどれくらいの期間 -生存しているかのディフォルトの時間設定を提供します。Gnus はメッセージが -送られたときではなく、それが @emph{到着} してからの日を計算します。ディ -フォルトは7日間です。 - -Gnus は記事がどのグループに属しているかに基づいて、それがどのくらい生存 -するかを成功に設定する関数も提供しています。グループ @samp{mail.private} -は期限を1ヶ月に、グループ @samp{mail.junk} では期限を1日に、その他のもの -には期限を6日間にするには: - -@vindex nnmail-expiry-wait-function -@lisp -(setq nnmail-expiry-wait-function - (lambda (group) - (cond ((string= group "mail.private") - 31) - ((string= group "mail.junk") - 1) - ((string= group "important") - 'never) - (t - 6)))) -@end lisp - -この関数に与えられるグループ名は ``装飾無し'' のグループ名です--- -@samp{nnml:} やその他の似たようなものは付きません。 - -変数 @code{nnmail-expiry-wait} と関数 @code{nnmail-expiry-wait-function} -は数字 (整数である必要はありません) かシンボル @code{immediate} か -@code{never} のどちらかである事ができます。 - -期限切れ期間を選択的に変更するためにグループパラメータ -@code{expiry-wait} を使う事もできます (@pxref{Groups Parameters})。 - -@vindex nnmail-keep-last-article -@code{nnmail-keep-last-article} が @code{nil} でないと、gnus はメールニュー -スグループの最後の記事を決して期限切れ消去しません。これは procmail の利 -用者の人生を楽にするためです。 - -@vindex gnus-total-expirable-newsgroups -ところで: そこにある、gnus が決して期限切れ消去可能でない記事を期限切れ -消去する事はない、というのは嘘です。@code{total-expire} をグループパラメー -タに入れると、記事は期限切れ消去の印が付きませんが、全ての記事は期限切れ -消去過程に入れられます。非常に注意して使ってください。さらにもっと危険な -ものは変数 @code{gnus-total-expirable-newsgroups} です。この正規表現に合 -致する全てのグループは全ての既読記事が期限切れ消去可能の過程に突っ込まれ -ます。これは、当のグループの @emph{全て} の古いメール記事は少し後で削除 -されるという事です。非常に注意して使って、あなたが使用した正規表現が間違っ -たグループに合致して、あなたの全ての重要なメールが消えてしまったと言って、 -私のところに泣き付いて来ないでください。@emph{男}になりなさい! もしくは、 -@emph{女} になりなさい! あなたが気持ちよいと感じる全てのものと! ですか -らそこに! - -たいていの人はほとんどのメールグループを total-expirable (全体期限切れ消 -去可能) にしますが。 - - -@node Washing Mail -@subsection メール洗濯 -@cindex mail washing -@cindex list server brain damage -@cindex incoming mail treatment - -メイラー (mailer) やリストサーバー (list server) は本当に本当に馬鹿げた -事をすることで悪名高いです。 ``わぁ、RFC822 は我々のサーバーを通っていく -メッセージの全ての行の最後に @code{wE aRe ElIte!!!!!1!!} を加える事を明 -示的に禁止はしていないぞ。さぁ、やってみよう!!!!1'' えぇ、そのとおりです -が、RFC822 は能力の低い人によって読まれるようには書かれていません。明白 -な事はそこでは議論されていません。ですから。そういうことです。 - -問題点: ドイツ版 Microsoft Exchange は返答の表題に @samp{Re: } の代わり -に @samp{AW: } を付け加えます。私はこれに動揺して狼狽しているふりをする -こともできましたが、そうする気力がありませんでした。それは笑うべき事です。 - -Gnus は記事を表示するときにそれを洗濯するために過度の関数を提供していま -すが、メールをディスクに保存する前に選別をすることができた方が良いでしょ -う。その目的のために、3つのフックとそのフックに入れる事のできる色々な関 -数があります。 - -@table @code -@item nnmail-prepare-incoming-hook -@vindex nnmail-prepare-incoming-hook -このフックはメールに何かをする前に呼ばれ、基本的な、メールを掃いてきれい -にする所作のためにあります。使う事のできる関数は: - -@table @code -@item nnheader-ms-strip-cr -@findex nnheader-ms-strip-cr -それぞれの行から、最後にあるキャリッジリターン (carriage return) を取り -除きます。これは MS のマシン上で動作している Emacs のディフォルトです。 - -@end table - -@item nnmail-prepare-incoming-header-hook -@vindex nnmail-prepare-incoming-header-hook -このフックはそれぞれのヘッダーに範囲を狭められて (narrowed) 呼ばれます。 -ヘッダーをきれいにするときに使う事ができます。使う事のできる関数は: - -@table @code -@item nnmail-remove-leading-whitespace -@findex nnmail-remove-leading-whitespace -ヘッダーにそれが良く見えるように ``有用な'' リストサーバーが前の方に付け -加えた空白を無くします。あぁぁ。 - -@item nnmail-remove-list-identifiers -@findex nnmail-remove-list-identifiers -いくつかのリストサーバーは同一識別子を付け加えます---例えば、 -@samp{(idm)}---を全ての @code{Subject} ヘッダーの最初に付けます。それは、 -石器時代のメールヘッダーを使っている人には良い事だと思います。この関数は -正規表現 @code{nnmail-list-identifiers} に合致する文字列を取り除きます。 -それは正規表現のリストである事もできます。 - -例えば、@samp{(idm)} と @samp{nagnagnag} 同一識別子を取り除きたいのなら: - -@lisp -(setq nnmail-list-identifiers - '("(idm)" "nagnagnag")) -@end lisp - -@item nnmail-remove-tabs -@findex nnmail-remove-tabs -全ての @samp{TAB} 文字を @samp{SPACE} 文字に変換します。 - -@end table - -@item nnmail-prepare-incoming-message-hook -@vindex nnmail-prepare-incoming-message-hook -このフックはそれぞれのメッセージに範囲を狭められて呼ばれます。使う事ので -きる関数は: - -@table @code -@item article-de-quoted-unreadable -@findex article-de-quoted-unreadable -Quoted Readable 符号化を復号化します。 - -@end table -@end table - - -@node Duplicates -@subsection 重複 - -@vindex nnmail-treat-duplicates -@vindex nnmail-message-id-cache-length -@vindex nnmail-message-id-cache-file -@cindex duplicate mails -いくつかのメーリングリストのメンバーなら、時々同じメールを2つ受け取る事 -があります。これはとてもうるさく感じることもありますので、@code{nnmail} -はそれが発見するかもしれない重複を調べて扱います。これをするために、古い -@code{Message-ID} を保存します---@code{nnmail-messagge-id-cache-file} に。 -これはディフォルトでは @file{~/.nnmail-cache} です。それに保存される最大 -数の @code{Message-ID} は変数 @code{nnmail-message-id-cache-length} に制 -御され、それはディフォルトで1000です。 (ですから、1000 @code{Message-ID} -が溜められます。) これが恐ろしいと思ったなら、 -@code{nnmail-treat-duplicates} を @code{warn} (ディフォルトではそのよう -になっていますが) に設定する事ができ、そうすれば、@code{nnmail} は重複メー -ルを消去しません。その代わりに、メールの先頭にこれは違ったメッセージの重 -複であるという警告を挿入します。 - -この変数は関数である事もできます。その場合は、関数は @code{Message-ID} -を引数として、当のメッセージに範囲を狭められたバッファから呼ばれます。こ -の関数は @code{nil}、@code{warn}、@code{delete} のどれかを返さなければな -りません。 - -変数を @code{nil} に設定する事によって、この機能を完全に使わないようにす -る事ができます。 - -もし全ての重複メールを特別な @dfn{duplicate} グループに入れたいのであれ -ば、普通のメール分割方法を使ってそれをすることができます: - -@lisp -(setq nnmail-split-fancy - '(| ;; 重複メッセージは分離されたグループへ行きます。 - ("gnus-warning" "duplication of message" "duplicate") - ;; デーモンやポストマスターや似たようなものからの - ;; メッセージは他のところへ。 - (any mail "mail.misc") - ;; 他の法則。 - [ ... ] )) -@end lisp - -もしくは次のようなもの: -@lisp -(setq nnmail-split-methods - '(("duplicates" "^Gnus-Warning:") - ;; 他の法則。 - [...])) -@end lisp - -すばらしい機能があります: もし受け手がメールを gnus で読んでいる事を知っ -ていて、@code{nnmail-treat-duplicates} が @code{delete} に設定してあると、 -あなたの知っている、その人が既に受け取ったメールの @code{Message-ID} を -使って、考える限りたくさんの侮辱を送る事ができます。その楽しさを考えてみ -てください! その人はそれらを決してみる事はありません! わぉ! - - -@node Not Reading Mail -@subsection メールを読むのではない - -メールバックエンドを使い始めると、それらにはあなたがそれらでメールを読み -たいと思っていると仮定するといううるさい癖があります。これはもっともでな -い事ではないかもしれませんが、あなたの望む事ではないかもしれません。 - -もし @code{nnmail-spool-file} を @code{nil} に設定すると、どのバックエン -ドも入ってくるメールを読もうと試みる事はなく、望む事の手助けになるでしょ -う。 - -@vindex nnbabyl-get-new-mail -@vindex nnmbox-get-new-mail -@vindex nnml-get-new-mail -@vindex nnmh-get-new-mail -@vindex nnfolder-get-new-mail -例えば、@code{nnml} でメールを読む事に非常に満足していて、古い -@sc{rmail} ファイルが @code{nnbabyl} で隠されているのをさっと見たいだけ -なら、これは余分でしょう。すべてのバックエンドは バックエンド- -@code{get-new-mail} という変数を持っています。もし @code{nnbabyl} のメー -ル読み込みを使用不可にしたいのであれば、グループの事実上のサーバーを -@code{nnbabyl-get-new-mail} を @code{nil} に設定するように編集します。 - -全てのメールバックエンドは入ってくるメールを読み込むときに、保存されるべ -き記事に範囲を狭めて @code{nn}*@code{-prepare-save-mail-hook} を呼びます。 - - -@node Choosing a Mail Backend -@subsection メールバックエンドを選ぶ - -Gnus はメールグループを動作するようにするとメールスプールを読み込みます。 -メールファイルはまずあなたのホームディレクトリーに複写されます。その後に -何が起こるかはメールをどの様式で溜めたいかによって変わります。 - -@menu -* Unix Mail Box:: (とても) 標準的な Un*x mbox を使う。 -* Rmail Babyl:: Emacs のプログラムは rmail の babyl format を使う。 -* Mail Spool:: あなたのメールを私的なスプールに溜める? -* MH Spool:: mhspool のようなバックエンド。 -* Mail Folders:: それぞれのグループに対して一つのファイルを持つ。 -@end menu - - -@node Unix Mail Box -@subsection Unix メールボックス -@cindex nnmbox -@cindex unix mail box - -@vindex nnmbox-active-file -@vindex nnmbox-mbox-file -@dfn{nnmbox} バックエンドはメールを蓄蔵するために標準の Un*x mbox ファイ -ルを用います。@code{nnmbox} はそれぞれのメール記事にそれがどのグループに -属しているかを示す追加のヘッダーを加えます。 - -事実上のサーバーの設定: - -@table @code -@item nnmbox-mbox-file -@vindex nnmbox-mbox-file -利用者のホームディレクトリーのメールボックスの名前。 - -@item nnmbox-activate-file -@vindex nnmbox-active-file -メールボックスの現状ファイルの名前。 - -@item nnmbox-get-new-mail -@vindex nnmbox-get-new-mail -@code{nil} でなければ、@code{nnmbox} は入って来たメールを読み込んでグルー -プに分割します。 -@end table - - -@node Rmail Babyl -@subsection Rmail Babyl -@cindex nnbabyl -@cindex rmail mbox - -@vindex nnbabyl-active-file -@vindex nnbabyl-mbox-file -@dfn{nnbabyl} バックエンドはメールを蓄蔵するために babyl メールボックス -(別名 @dfn{rmail mbox}) を使います。@code{nnbabyl} はそれぞれの記事にそ -れがどのグループに属しているかを示す追加のヘッダーを加えます。 - -事実上のサーバーの設定: - -@table @code -@item nnbabyl-mbox-file -@vindex nnbabyl-mbox-file -rmail mbox ファイルの名前 - -@item nnbabyl-active-file -@vindex nnbabyl-active-file -rmail box のための現状ファイルの名前。 - -@item nnbabyl-get-new-mail -@vindex nnbabyl-get-new-mail -@code{nil} でなければ、@code{nnbabyl} は入ってくるメールを読み込みます。 -@end table - - -@node Mail Spool -@subsection メールスプール -@cindex nnml -@cindex mail @sc{nov} spool - -@dfn{nnml} スプールメール様式は他の知られた様式とは互換性がありません。 -それは少し注意して使われるべきです。 - -@vindex nnml-directory -もしこのバックエンドを使うと、gnus は入ってくるメールを、それぞれのメー -ルを1ファイルとしてファイルに分割し、記事を変数 @code{nnml-directory} で -指定されたディレクトリーの下の対応するディレクトリーに入れます。ディフォ -ルトの値は @file{~/Mail/} です。 - -前もってディレクトリーを作っておく必要はありません。それの面倒は gnus が -見てくれます。 - -もしあなたのアカウントに蓄積できるファイルの数に厳密な制限があるなら、こ -のバックエンドを使うべきではありません。それぞれのメールはそれ自身のファ -イルを得ますので、数週間でたくさんの iノードを占有する可能性は十分にあり -ます。別にこれが問題でなく、親切なシステム管理者が、気が狂ったように -``誰が私の iノードを食いつぶしているんだ? 誰だ? 誰!? と叫びながら歩 -き回る事が問題でないなら、これがおそらく使う事のできる一番速い様式である -ということは知っておくべきでしょう。新しいメールを読むためだけに大きな -mbox ファイルを重い足取りで探す必要はありません。 - -@code{nnml} は記事分割に関してはおそらく一番遅いバックエンドでしょう。そ -れは多くのファイルを作らなければならず、それは入ってくるメールのための -@sc{nov} データベースも作成しなければなりません。これのために、メールを -読む事に関しては最速のバックエンドになります。 - -事実上のサーバーの設定: - -@table @code -@item nnml-directory -@vindex nnml-directory -全ての @code{nnml} ディレクトリーはこのディレクトリーの下に置かれます。 - -@item nnml-active-file -@vindex nnml-active-file -@code{nnml} サーバーのための現状ファイル。 - -@item nnml-newsgroups-file -@vindex nnml-newgroups-file -@code{nnml} グループ記述ファイル。 @xref{Newsgroups File Format}。 - -@item nnml-get-new-mail -@vindex nnml-get-new-mail -@code{nil} でなければ、@code{nnml} は入って来たメール読み込みます。 - -@item nnml-nov-is-evil -@vindex nnml-nov-is-evil -@code{nil} でなければ、このバックエンドはどの @sc{nov} ファイルも無視し -ます。 - -@item nnml-nov-file-name -@vindex nnml-nov-file-name -@sc{nov} ファイルの名前。ディフォルトは @file{.overview} です。 - -@item nnml-prepare-save-mail-hook -@vindex nnml-prepare-save-mail-hook -保存する前に記事に範囲を狭めて実行するフックです。 - -@end table - -@findex nnml-generate-nov-databases -@code{nnml} グループと @sc{nov} ファイルが完全に良い状態でなくなってしまっ -たなら、@kbd{M-x nnml-generate-nov-databases} と打つ事によって、完全に更 -新する事ができます。この命令は、それぞれ全てのファイルを見る事によって -@code{nnml} 階層全体をトロール魚網でさらいますので、それが終わるまでには -時間がかかるかもしれません。この機能へのより良いインターフェースはサーバー -バッファで見つかるでしょう (@pxref{Server Commands})。 - - -@node MH Spool -@subsection MH スプール -@cindex nnmh -@cindex mh-e mail spool - -@code{nnmh} は、@sc{nov} データベースを作らないことと現状ファイルを保持 -しない事を除いて、 @code{nnml} と似ています。そのことは @code{nnmh} を -@code{nnml} より @emph{かなり} 遅いバックエンドにしていますが、それは -procmail のスクリプトを書くためにずっとやりやすくなってもいます。 - -事実上のサーバーの設定: - -@table @code -@item nnmh-directory -@vindex nnmh-directory -全ての @code{nnmh} ディレクトリーはこのディレクトリーの下に置かれます。 - -@item nnmh-get-new-mail -@vindex nnmh-get-new-mail -@code{nil} でなければ、@code{nnmh} は入ってくるメールを読み込みます。 - -@item nnmh-be-safe -@vindex nnmh-be-safe -@code{nil} でなければ、@code{nnmh} はフォルダーにある記事が実際に gnus -が考えているものと同じであるかを調べるという馬鹿げた事をやります。それは -日付と目に入る全ての情報を調べますので、これを @code{t} に設定する事は深 -刻な速度低下が起こるという事です。もし @code{nnmh} 記事を読むのに gnus -以外のものを使っていないのであれば、この変数を @code{t} に設定する必要は -ありません。 -@end table - -@node Mail Folders -@subsection メールフォルダー -@cindex nnfolder -@cindex mbox folders -@cindex mail folders - -@code{nnfolder} はそれぞれのメールグループを違ったファイルに蓄蔵するバッ -クエンドです。それぞれのファイルは標準の Un*x mbox 様式です。 -@code{nnfolder} は記事番号と到着日を記録しておくための追加のヘッダーを加 -えます。 - -事実上のサーバーの設定: - -@table @code -@item nnfolder-directory -@vindex nnfolder-directory -全ての @code{nnfolder} メールボックスはこのディレクトリーの下に置かれま -す。 - -@item nnfolder-active-file -@vindex nnfolder-active-file -現状ファイルの名前。 - -@item nnfolder-newgroups-file -@vindex nnfolder-newsgroups-file -グループ記述ファイルの名前。 @xref{Newsgroups File Format}。 - -@item nnfolder-get-new-mail -@vindex nnfolder-get-new-mail -@code{nil} でなければ、@code{nnfolder} は入ってくるメールを読み込みます。 -@end table - -@findex nnfolder-generate-active-file -@kindex M-x nnfolder-generate-active-file -@code{nnfolder} で読みたいと思う、たくさんの @code{nnfolder} のようなファ -イルを持っているのであれば、@code{nnfolder} に @code{nnfolder-directory} -にある全てのそのようなファイルに気付かせるために、命令 @kbd{M-x -nnfolder-generate-active-file} を使う事ができます。 - - -@node Other Sources -@section その他のグループ源 - -Gnus はただ単にニュースやメールを読む以上のことができます。以下 -に示す方法によって、gnus でディレクトリーやファイルを、あたかも -ニュースグループであるかのように閲覧することができるようになりま -す。 - -@menu -* Directory Groups:: ディレクトリーをニュースグループのように読む。 -* Anything Groups:: Dired? 誰が dired なんて使うの? -* Document Groups:: 個別のファイル群はグループの素。 -* SOUP:: @sc{SOUP} パケットを ``オフライン''で読む。 -* Web Searches:: 文字列にマッチする記事からグループを作る。 -* Mail-To-News Gateways:: メールからニュースへのゲートウェイを通して記事を投稿する。 -@end menu - - -@node Directory Groups -@subsection ディレクトリーグループ -@cindex nndir -@cindex directory groups - -もし、たくさんの記事が個別のファイルとして入っているディレクトリー -があれば、それをニュースグループとして扱うことができます。もちろ -ん、ファイルは数字のファイル名をもっていなければなりません。 - -ここで Emacs の素晴らしいパッケージの中でも最も素晴らしい -@code{ange-ftp} (とその後継の @code{efs}) について触れる良い機会 -でしょう。私が @code{nndir} を書いたときは、これ --- ディレクト -リーを読むバックエンドについてはあまり考えていませんでした。とん -でもないことだね。 - -@code{ange-ftp} はこの情況を劇的に変化させました。例えば、 -@code{ange-ftp} ファイル名 -@file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} をディレクトリー名 -として入力したとすると、@code{ange-ftp} あるいは @code{efs} は実 -に、@samp{シナ} の向こうのディレクトリーをニュースグループとして -読むことを可能にするのです。おーい、分散ニュースよ! - -@code{nndir} は @sc{nov} ファイルが存在すればそれを利用します。 - -@code{nndir} は ``読み出し専用'' のバックエンドです --- この選択 -方法では、記事の削除や期限切れ消去を行なうことはできません。 -@code{nndir} が使えるものなら何でも @code{nnmh} あるいは -@code{nnml} を使うことができるので、もし読み出し専用ではない -@code{nndir} が必要だと思ったら、これらのどちらかの方法に切り替 -えることもできます。 - - -@node Anything Groups -@subsection なんでもグループ -@cindex nneething - -(一つのスプール風ディレクトリーと解釈できる) @code{nndir} バック -エンドから@code{nneething} までは、ほんのすぐそこです。それはい -かなるディレクトリーでもニュースグループに見せかけてしまう、とい -うものです。不思議です、でも真実です。 - -@code{nneething} にディレクトリーを与えると、そのディレクトリー -を走査し、各ファイルに記事番号を割り当てます。このようなグループ -に入ったときは、@code{nneething} は gnus が使う ``ヘッダー'' を -作らなくてはなりません。つまるところ、gnus はニュースリーダなん -です。忘れてるかもしれないので念のため。@code{nneething} はこれを -2 段階で処理します。最初に、問題となるファイルをそれぞれ詮索して -まわります。もしそのファイルが記事のように見えたなら (すなわち、 -最初の数行がヘッダーのように見えたら) それをヘッダとして使います。 -もしそれがヘッダーのないただの適当なファイル (例えば C のソース -ファイル) であったなら、@code{nneething} はヘッダーを虚空から作 -り出します。これはファイルの所有者、名前、日付を使い、これらの要 -素に対してできることを何でもやります。 - -これはあなたにとっては全て自動的に起こることで、あなたはニュース -グループにとても良く似た何かを見せられることになるでしょう。ほん -とうに寸分違わない、ニュースグループのようなものを。記事を選択す -ると、それはいつものように、記事バッファに表示されるでしょう。 - -ディレクトリーを表わしている行を選択すると、gnus はあなたをこの -@code{nneething} グループのための新しい概略バッファに連れて行く -でしょう。以下同様で、もしあなたがそうしたければ、この方法で全ディ -スクを駆け巡ることができます。ですが、gnus は本当は dired ではな -く、そのように意図されたものでもない、ということは覚えておいてく -ださい。 - -ここでの動作には全体的に 2 つのモードがあります --- 一時モードと -固定モードです。一時的な操作を行なっているときは(すなわち、グルー -プバッファで @kbd{G D} とする)、gnus はどのファイルを読んだか、 -どのファイルが新しいか、などの情報を憶えておきません。もし@kbd{G -m} で普通に固定 @code{nneething} グループを作ると、gnusは記事番 -号とファイル名の対応表を憶えておき、このグループを他のグループと -同様に扱うことができるようになります。固定@code{nneething} グルー -プを作動させると、未読記事がいくつ含まれているかを知らされたり、 -などなど。 - -いくつかの変数があります。 - -@table @code -@item nneething-map-file-directory -@vindex nneething-map-file-directory -全ての固定 @code{nneething} グループの対応表はこのディレクトリー -に格納されます。この初期設定値は @file{~/.nneething/} です。 - -@item nneething-exclude-files -@vindex nneething-exclude-files -この正規表現にマッチするファイルはすべて無視されます。自動保存ファ -イルなどを除くのに便利に使えます。そしてそれがまさに初期設定で行 -なわれる動作です。 - -@item nneething-map-file -@vindex nneething-map-file -対応表ファイルの名前。 -@end table - - -@node Document Groups -@subsection 文書グループ -@cindex nndoc -@cindex documentation group -@cindex help group - -@code{nndoc} は一つのファイルをニュースグループとして読むことを -できるようにする、ちょっと気の利いたやつです。いくつかのファイル -種別がサポートされています。 - -@table @code -@cindex babyl -@cindex rmail mbox - -@item babyl -babyl (rmail) 形式のメールボックス。 -@cindex mbox -@cindex Unix mbox - -@item mbox -標準 Unix mbox ファイル。 - -@cindex MMDF mail box -@item mmdf -MMDF 形式のメールボックス。 - -@item news -いくつかのニュース記事が連結された一つのファイル。 - -@item rnews -@cindex rnews batch files -rnews のバッチ転送形式。 -@cindex forwarded messages - -@item forward -転送された記事。 - -@item mime-digest -@cindex digest -@cindex MIME digest -@cindex 1153 digest -@cindex RFC 1153 digest -@cindex RFC 341 digest -MIME (RFC 1341) まとめ送り形式。 - -@item standard-digest -標準 (RFC 1153) まとめ送り形式。 - -@item slack-digest -非標準まとめ送り形式 --- だいたいはうまくマッチするが、でも扱いは下手。 -@end table - -また、特別な ``ファイル種別'' @code{guess} を使うこともできます。 -これは @code{nndoc} は注目しているファイルの種別を推測しようとす -る、という意味です。@code{digest} は @code{nndoc} にそのファイル -がどのまとめ送り形式かを推測させるという意味です。 - -@code{nndoc} はファイルを書き換えようとしたり、余分なヘッダーを -挿入しようとしたりはしません --- 単純に、ファイルをそのグループ -の主成分として使えるようにする、というようなものです。それだけの -ことです。 - -もしあなたが古い保存記事を持っていて、それを新しくてかっこいい -gnus のメールバックエンドに追加したいというときは、おそらく -@code{nndoc} が助けになります。例えばあなたがメールを古い -@file{RMAIL} で持っていて、それをあなたの新しい @code{nnml} グルー -プに分配したいとします。あなたはそのファイルを @code{nndoc} を使っ -て開いて (グループバッファで @kbd{G f} 命令を使う -(@pxref{Foreign Groups}))、バッファ内の全記事にプロセスマークを -付け (例えば @kbd{M P b})、そして @code{nnml} を使って再スプール -(@kbd{B r}) します。全てがうまく行けば、@file{RMAIL} ファイル内 -の全てのメールはたくさんの @code{nnml} ディレクトリーの中にも保 -存されます。そしてあなたはあの厄介な @file{RMAIL} を削除すること -もできます。あなたにガッツがあれば! - -仮想サーバー変数。 - -@table @code -@item nndoc-article-type -@vindex nndoc-article-type -これは @code{mbox}、 @code{babyl}、 @code{digest}、@code{news}、 -@code{rnews}、 @code{mmdf}、 @code{forward}、 @code{rfc934}、 -@code{rfc822-forward}、 @code{mime-digest}、 -@code{standard-digest}、@code{slack-digest}、 -@code{clari-briefs}、@code{guess} のいずれかでなくてはなりません。 - -@item nndoc-post-type -@vindex nndoc-post-type -この変数は gnus にそのグループがニュースグループかメールグループ -かを教えます。正当な値は 2 つあります。 @code{mail} (初期設定)か - @code{news}です。 -@end table - -@menu -* Document Server Internals:: あなた独自の文書種別を追加する方法。 -@end menu - - -@node Document Server Internals -@subsubsection 文書サーバーの内部 - -@code{nndoc} で認識される新しい文書種別を追加することは難しくあ -りません。その文書がどのように見えるのかを寄せ集めて、その文書種 -別を認識する述語関数を書き、そして @code{nndoc} に繋げるだけです。 - -まず、これが文書種別定義の例です。 - -@example -(mmdf - (article-begin . "^\^A\^A\^A\^A\n") - (body-end . "^\^A\^A\^A\^A\n")) -@end example - -この定義は単に、唯一の名前 (@dfn{name}) とそれに続く正規表現と仮 -想変数設定の列からなります。以下がこれに使える変数です --- 変数 -の数に圧倒されないでください。ほとんどの文書種別はごくわずかの設 -定で定義できます。 - -@table @code -@item first-article -これがあれば、@code{nndoc} はこの正規表現にマッチする何かが見つ -かるまで、全てのテキストを読み飛ばします。 マッチする前の全ての -テキストは完全に無視されます。 - -@item article-begin -この設定は全ての文書種別定義において必ずなくてはなりません。これ -は各記事の始まりがどのように見えるかを指定します。 - -@item head-begin-function -これがある場合、これは記事の先頭にポイントを移動させる関数でなく -てはなりません。 - -@item nndoc-head-begin -これがある場合、これは記事のヘッダーにマッチする正規表現でなくて -はなりません。 - -@item nndoc-head-end -これは記事のヘッダーの最後にマッチしなくてはなりません。この初期 -設定値は @samp{^$} --- 空行です。 - -@item body-begin-function -これがある場合、この関数は記事のボディの開始位置にポイントを移動 -させる関数でなくてはなりません。 - -@item body-begin -これは記事のボディの開始位置にマッチしなくてはなりません。この初 -期設定値は @samp{^\n} です。 - -@item body-end-function -これがある場合、この関数は記事のボディの最後の位置にポイントを移 -動させる関数でなくてはなりません。 - -@item body-end -これがあれば、記事のボディの最後にマッチしなくてはなりません。 - -@item file-end -これがある場合、これはファイルの最後にマッチしなくてはなりません。 -この正規表現の後ろのテキストは全て、完全に無視されます。 - -@end table - -このように、これらの変数を使って @code{nndoc} は文書ファイルを、 -それぞれヘッダーとボディを持った記事の連なりとして解剖することが -できます。しかし、全ての文書種別が全てこのようなニュース風になっ -てるわけではないので、さらにいくつかの変数 --- ヘッダーやボディ -を gnus の趣味に合うように変形させる変数が必要になります。 - -@table @code -@item prepare-body-function -これがあれば、この関数は記事が要求されたときに呼び出されます。こ -れはボディの開始位置のポイントとともに呼び出され、文書の内容の一 -部が符号化されている場合に有用です。 - -@item article-transform-function -これがあれば、この関数は記事が要求されたときに呼び出されます。こ -れは、記事のヘッダーとボディの両方により広範囲な変形を行なうため -に使われるものです。 - -@item generate-head-function -これがあれば、この関数は gnus が理解できるヘッダーを生成するため -に呼び出されます。これは記事番号をパラメータとして呼び出され、問 -題の記事のきれいなヘッダーを生成することを求められます。これは全 -ての記事のヘッダーが要求されるときに呼び出されます。 - -@end table - -私が作った中で最も複雑な例 --- 標準まとめ送り形式を見てみましょう。 - -@example -(standard-digest - (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+")) - (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+")) - (prepare-body-function . nndoc-unquote-dashes) - (body-end-function . nndoc-digest-body-end) - (head-end . "^ ?$") - (body-begin . "^ ?\n") - (file-end . "^End of .*digest.*[0-9].*\n\\*\\*\\|^End of.*Digest *$") - (subtype digest guess)) -@end example - -70 文字のダッシュ(`-')の行より前は全て無視されるというのが分かりま -す。また @samp{^End of} で始まる行より後ろも全て無視されます。各 -記事は30 文字のダッシュの行で始まり、ヘッダーとボディの区切りの -行は一個のスペースを含むことがあり、そしてボディはそれが渡される -前に @code{nndoc-unquote-dashes} を通されます。 - -あなた独自の文書定義を @code{nndoc} に接続するには、 -@code{nndoc-add-type} 関数を使用します。これは二つのパラメータを -とります --- 一つ目はその定義自身で、二つ目の (省略可能な) パラ -メータはこの定義を、文書種別定義連想リストのどこに置くかを指定し -ます。この連想リストは順番に走査され、与えられた種別 @code{TYPE} -に対して @code{nndoc-TYPE-type-p} が呼び出されます。このように文 -書が @code{mmdf} 種別であるかどうかを調べるために -@code{nndoc-mmdf-type-p} が呼び出され、そして以下同様に続きます。 -これらの種別述語関数は、その文書がその種別でない場合は -@code{nil} を返し、その種別である場合は @code{t} を返し、その種 -別かもしれないときは数字を返さなくてはなりません。高い数字は高い -可能性を意味し、低い数字は低い可能性を意味します。@samp{0} は正 -しい値の中でもっとも低い数字です。 - - -@node SOUP -@subsection SOUP -@cindex SOUP -@cindex offline - -PC の世界の人々はよく、``オフライン'' ニュースリーダについて話を -しています。これはリーダとニュース配送を合体させた、実在するモン -スターです。内蔵モデムプログラム付きでね。きゃはは! - -もちろん、我らが Unix キチガイの人間供は @code{uucp} だとか -@code{nntpd} のようなものを使い、神の領域たるメール、ニュースの -配送を正しく設定するのです。そして僕たちはただ普通のニュースリー -ダを使います。 - -しかし、あなたがとても遅いモデムを持っていてこれらを正しく設定す -ることに興味が無ければ、脳みそに楽をさせる方をするのも時には便利 -です。 - -@sc{soup} と呼ばれるファイル形式はニュースとメールをサーバーから -家のマシンへと転送し、それをまた戻すために開発されました。ちょっ -と面倒くさいかもしれないけどね。 - -はじめにいくつか用語を。 - -@table @dfn - -@item server -これは外の世界に繋がっていて、あなたがニュースとメールを送受信す -るマシンです。 - -@item home machine -これはあなたが実際に読んだり返事を書いたりしたいマシンです。これ -は普通、他の世界といかなる形でも接続されていません。 - -@item packet -メッセージと命令を含んだもの。パケットには二種類あります。 - -@table @dfn -@item message packets -これはサーバーで作られるパケットで、普通はあなたが読むためのた -くさんのメッセージが含まれています。これらは初期設定では -@file{SoupoutX.tgz} という名前です。ここで @var{X} は数字です。 - -@item response packets -(返信パケット) -このパケットは自宅マシンで作られるパケットで、普通はあなたの書い -た返事が含まれています。これらは初期設定では -@file{SoupinX.tgz} という名前です。ここで @var{X} は数字です。 - -@end table - -@end table - - -@enumerate - -@item -まず @sc{soup} パケットを作るためにサーバーにログインします。 -@sc{soup} のための専用のブツ (@code{awk} プログラムのような) を -使っても良いし、 gnus の @sc{soup} 命令を使ってパケットを作って -も良いです (@kbd{O s} あるいは @kbd{G s b} そして @kbd{G s p}) -(@pxref{SOUP Commands})。 - -@item -パケットを自宅に転送します。電車で、船で、自動車で、あるいはモデ -ムで、何でもいいです。 - -@item -パケットをあなたのホームディレクトリーに置きます。 - -@item -Gnus をあなたの自宅マシンでかっ飛ばして、 @code{nnsoup} バックエ -ンドを基本サーバーあるいは二次サーバーとして使用します。 - -@item -記事やメールを読んで必要なやつに返事を書いてフォローアップ記事を -書きます (@pxref{SOUP Replies})。 - -@item -@kbd{G s r} 命令を実行して、これらの返事を @sc{soup} パケットに -梱包します。 - -@item -このパケットをサーバーに転送します。 - -@item -Gnus から @kbd{G s s} 命令を使ってこのパケットからメールを出します。 - -@item -あとはこれを死ぬまで続けます。 - -@end enumerate - -つまり基本的に二者分割システムができたことになります --- -@code{nnsoup} を読むために、gnus を @sc{soup} パケットの梱包と送 -出に使います。 - -@menu -* SOUP Commands:: @sc{soup} パケットを作成、送出する命令。 -* SOUP Groups:: @sc{soup} パケットを読むバックエンド。 -* SOUP Replies:: @code{nnsoup} にメールとニュースを引き継がせる方法。 -@end menu - - -@node SOUP Commands -@subsubsection SOUP 命令 - -これらの命令は @sc{soup} パケットの作成と操作を行なうものです。 - -@table @kbd -@item G s b -@kindex G s b (Group) -@findex gnus-group-brew-soup -現在のグループの全ての未読記事を梱包する -(@code{gnus-group-brew-soup})。このコマンドはプロセス/接頭引数の -習慣に従います。 - -@item G s w -@kindex G s w (Group) -@findex gnus-soup-save-areas -全ての @sc{soup} データファイルを保存します -(@code{gnus-soup-save-areas})。 - -@item G s s -@kindex G s s (Group) -@findex gnus-soup-send-replies -返信パケットから全ての返信を送出する -(@code{gnus-soup-send-replies})。 - -@item G s p -@kindex G s p (Group) -@findex gnus-soup-pack-packet -全てのファイルを @sc{soup} パケットに梱包する -(@code{gnus-soup-pack-packet})。 - -@item G s r -@kindex G s r (Group) -@findex nnsoup-pack-replies -全ての返信を返信パケットに梱包する (@code{nnsoup-pack-replies})。 - -@item O s -@kindex O s (Summary) -@findex gnus-soup-add-article -この概略モード命令は、現在の記事を @sc{soup} パケットに追加しま -す (@code{gnus-soup-add-article})。これはプロセス/接頭引数の習慣 -に従います (@pxref{Process/Prefix})。 - -@end table - - -gnus がこれらの実体をどこに置くかをカスタマイズするいくつかの変 -数があります。 - -@table @code - -@item gnus-soup-directory -@vindex gnus-soup-directory -@sc{soup} パケットを作成中に gnus が中間ファイルを保存するディレ -クトリー。初期設定値は @file{~/SoupBrew/}。 - -@item gnus-soup-replies-directory -@vindex gnus-soup-replies-directory -返信パケット送信中に gnus が使用する一時ディレクトリー。 -@file{~/SoupBrew/SoupReplies/} が初期設定値。 - -@item gnus-soup-prefix-file -@vindex gnus-soup-prefix-file -gnus が最後に使った接頭引数を保存するファイル名。初期設定値は -@samp{gnus-prefix}。 - -@item gnus-soup-packer -@vindex gnus-soup-packer -@sc{soup} パケットを梱包する命令文字列の形式。初期設定値は -@samp{tar cf - %s | gzip > $HOME/Soupout%d.tgz}。 - -@item gnus-soup-unpacker -@vindex gnus-soup-unpacker -@sc{soup} パケットを取り出す命令文字列の形式。初期設定値は -@samp{gunzip -c %s | tar xvf -}。 - -@item gnus-soup-packet-directory -@vindex gnus-soup-packet-directory -gnus が返信パケットを探しに行く場所。初期設定値は @file{~/}。 - -@item gnus-soup-packet-regexp -@vindex gnus-soup-packet-regexp -@code{gnus-soup-packet-directory} 内の @sc{soup} パケットにマッ -チする正規表現。 - -@end table - - -@node SOUP Groups -@subsubsection @sc{soup} グループ -@cindex nnsoup - -@code{nnsoup} は @sc{soup} パケットを読むためのバックエンドです。 -これは入ってきたパケットを読み、それを取り出して、あなたが暇なと -きに読むディレクトリーに展開します。 - -これらはこの振る舞いをカスタマイズできる変数です。 - -@table @code - -@item nnsoup-tmp-directory -@vindex nnsoup-tmp-directory -@code{nnsoup} が @sc{soup} パケットを取り出すとき、このディレク -トリ内で行なう (初期設定は @file{/tmp/})。 - -@item nnsoup-directory -@vindex nnsoup-directory -そして @code{nnsoup} がそれぞれのメッセージと索引ファイルをこの -ディレクトリーに移動させる。初期設定は @file{~/SOUP/}。 - -@item nnsoup-replies-directory -@vindex nnsoup-replies-directory -全ての返信は、返信パケットに梱包される前にこのディレクトリーに格 -納される。初期設定は @file{~/SOUP/replies/"}。 - -@item nnsoup-replies-format-type -@vindex nnsoup-replies-format-type -返信パケットの @sc{soup} 形式。初期設定値は @samp{?n} (rnews) -で、この変数には触るべきではないと私は思います。たぶん文書に明記 -すべきでさえなかったね。ちぇっ! もう手遅れか。 - -@item nnsoup-replies-index-type -@vindex nnsoup-replies-index-type -返信パケットの索引の種類。初期設定値は @samp{?n} で、意味は -``なし''。これもいじるんじゃないよ! - -@item nnsoup-active-file -@vindex nnsoup-active-file -@code{nnsoup} がたくさんの情報を格納する場所。これは @code{nntp} -の意味での ``アクティブファイル'' ではなく、Emacs Lisp のファイ -ルです。このファイルを無くしてしまったり、何か壊してしまったら、 -あなたは死にます。初期設定値は @file{~/SOUP/active} です。 - -@item nnsoup-packer -@vindex nnsoup-packer -返信 @sc{soup} パケットを梱包する命令文字列の形式。初期設定値 -は @samp{tar cf - %s | gzip > $HOME/Soupin%d.tgz}。 - -@item nnsoup-unpacker -@vindex nnsoup-unpacker -入ってくる @sc{soup} パケットを取り出すための命令文字列の形式。 -初期設定値は @samp{gunzip -c %s | tar xvf -}。 - -@item nnsoup-packet-directory -@vindex nnsoup-packet-directory -入ってきたパケットを @code{nnsoup} が探す場所。初期設定値は -@file{~/}。 - -@item nnsoup-packet-regexp -@vindex nnsoup-packet-regexp -入ってきた @sc{soup} パケットにマッチする正規表現。初期設定値 -は @samp{Soupout}。 - -@item nnsoup-always-save -@vindex nnsoup-always-save -@code{nil} 以外であれば、メッセージを投稿した後に返信バッファを -保存する。 - -@end table - - -@node SOUP Replies -@subsubsection SOUP 返信 - -単に @code{nnsoup} を使うだけでは、@sc{soup} 返信パケット中のあ -なたの投稿とメールの送信が、魔法のように自動的に終了するわけでは -ありません。それを起こすにはもうちょっと働かなくてはいけません。 - -@findex nnsoup-set-variables -@code{nnsoup-set-variables} 命令は、あなたの全てのフォローアップ -記事と返信を @sc{soup} システムに確実に終了させるように、適切な -変数を設定します。 - -特別に、これが実際に行われることです。 - -@lisp -(setq message-send-news-function 'nnsoup-request-post) -(setq message-send-mail-function 'nnsoup-request-mail) -@end lisp - -それだけです、ほんとに。もし @sc{soup} システムにニュースだけを -入れたかったら、最初の行だけを使ってください。もしメールだけを -@sc{soup} させたかったら、二番目を使ってください。 - - -@node Web Searches -@subsection ウェブ検索 -@cindex nnweb -@cindex DejaNews -@cindex Alta Vista -@cindex InReference -@cindex Usenet searches -@cindex searching the Usenet - -それは、なんというか、Usenet から文字列にマッチする記事を検索す -るのはとても素晴らしいんだけど、その、あのウェブブラウザーってや -つを使って、そんでもって、宣伝を読ませられるっていうのは、その、 -なんというか、ほんとうに @emph{「不様ね」} というか、それで、 -gnus ではブラウザーを使わずに、その、@emph{超かっこよく}それがで -きる、ってことです。 - -@code{nnweb} バックエンドは、強力な検索エンジンに対して簡単なイ -ンターフェースを提供します。@code{nnweb} グループを作成し、検索 -パターンを入力し、そしてそのグループに入って他の普通のグループの -ように記事を読みます。グループバッファ (@pxref{Foreign -Groups}) の @kbd{G w} 命令によってお手軽にこれができます。 - -@code{nnweb} グループは、固定グループになろうとはしません --- こ -のグループでは記事番号はごく一時的なものとして扱います。つまり、 -@code{nnweb} グループに入るたびに(たとえ検索パターンを変更してい -なくとも)、記事の順序が違っているかもしれません。また、重複抑制 -(@pxref{Duplicate Suppression}) を使ってもうまく働かないでしょう。 -というのは、@code{nnweb} は検索エンジン(例えば DejaNews) を使っ -て記事を読み込むまでは、@code{Message-ID} を知ることはできないか -らです。あなたが読んだ記事を憶えておくための唯一の方法は、 -@code{Date} ヘッダーをもとにスコアを付けることだけです --- つま -りあなたがそのグループを最後に読んだ日付より、前に投稿された記事 -を全て既読にする、ということです。 - -もし検索エンジンの出力形式が変更されると、@code{nnweb} はそれを -うまく解釈できず、処理は失敗するでしょう。もしウェブ提供者達がそ -んなことをしたら、彼らを激しく責めるべきでしょう --- それは広告 -で金を稼ぐのが彼らの @emph{存在理由} であり、社会にサービスを提 -供することではないからです。@code{nnweb} は全ての記事から広告を -洗い流してしまうので、提供者たちがムカついていると思われるかも知 -れません。まあ見ててください。 - -@code{nnweb} を使うには、@code{url} と @code{w3} パッケージをイ -ンストールしておかなくてななりません。 - -以下は仮想サーバー変数です。 - -@table @code -@item nnweb-type -@vindex nnweb-type -どの検索エンジンを使っているか。現在サポートされている種類は、 -@code{dejanews}、 @code{dejanewsold}、 @code{altavista}、 -@code{reference} です。 - -@item nnweb-search -@vindex nnweb-search -検索エンジンに与える検索文字列。 - -@item nnweb-max-hits -@vindex nnweb-max-hits -表示する検索結果の最大数。デフォルトは 100 です。 - -@item nnweb-type-definition -@vindex nnweb-type-definition -型・定義連想リスト。この連想リストは、さまざまな検索エンジンの種 -類に対して、 @code{nnweb} がどうすべきかを与えます。以下に示す要 -素を与えなくてはなりません。 - -@table @code -@item article -記事を復号化し、gnus が理解できる形で提供する関数。 - -@item map -記事番号からメッセージヘッダーと URL を得る連想リストを作成する関数。 - -@item search -検索エンジンに検索文字列を送る関数。 - -@item address -前述の関数が検索文字列を送るべきアドレス。 - -@item id -@code{Message-ID} をもとに記事を取得するための URL 形式文字列。 -@end table - -@end table - - - -@node Mail-To-News Gateways -@subsection メールからニュースへのゲートウェイ -@cindex mail-to-news gateways -@cindex gateways - -もしあなたのローカルの @code{nntp} サーバーが、何らかの理由で投 -稿を許可していなければ、数あるメールからニュースへのゲートウェイ -を使って投稿することができます。@code{nngateway} バックエンドは -このインターフェースを提供します。 - -このバックエンドからは何も読み出せないことに注意してください --- -これは投稿するためだけに使われます。 - -以下はサーバー変数です。 - -@table @code -@item nngateway-address -@vindex nngateway-address -これがメール・ニュースゲートウェイのアドレスです。 - -@item nngateway-header-transformation -@vindex nngateway-header-transformation -ニュースヘッダーは、メール・ニュースゲートウェイが受け付けられる -ように、奇妙な形に変形しておかなくてはならない時があります。この -変数はどんな変形処理が呼び出されるべきかを示しており、初期設定値 -は @code{nngateway-simple-header-transformation} になっています。 -この関数は変形するヘッダーに領域制限(narrow)されて呼び出され、一 -個の引数 --- ゲートウェイのアドレスを与えられます。 - -初期設定値の関数は単に新しい @code{To} ヘッダーを、 -@code{Newsgroups} ヘッダーとゲートウェイアドレスをもとに挿入しま -す。例えば、以下のような @code{Newsgroups} ヘッダー - -@example -Newsgroups: alt.religion.emacs -@end example - -を持つ記事には、次のような @code{To} ヘッダーが挿入されます。 - -@example -To: alt-religion-emacs@@GATEWAY -@end example - -@end table - -つまり、これを使うには、こんな風にするだけです。 - -@lisp -(setq gnus-post-method '(nngateway "GATEWAY.ADDRESS")) -@end lisp - - -@node Combined Groups -@section 結合グループ - -Gnus は、全てのグループの種類を混合して、大きなグループに結合す -ることができます。 - -@menu -* Virtual Groups:: たくさんのグループの記事を結合する。 -* Kibozed Groups:: ニューススプールの中からの記事を検索する。 -@end menu - - -@node Virtual Groups -@subsection 仮想グループ -@cindex nnvirtual -@cindex virtual groups - -nnvirtual グループ (@dfn{nnvirtual group}) は実は他のグループの -集合以上の何物でもありません。 - -例えば、もし小さなグループをたくさん読むのが嫌になってきたら、そ -れらを一つの大きなグループに入れて、嫌になるくらい巨大で手に負え -ないグループを読むことができます。これがコンピューターの楽しみだ -ね! - -選択方法として @code{nnvirtual} を指定してください。アドレスは、 -それを構成するグループにマッチする正規表現です。 - -仮想グループ内で付けられた全ての印は、その構成グループの記事にくっ -つけられます。つまり、もし仮想グループ内で記事に可視記事の印をつ -けると、その記事はもともとの構成グループの中でも可視記事になりま -す。 (そして逆も成り立ちます --- 構成グループ内で付けた印は仮想 -グループ内でも表示されます。) - -これが、Andrea Dworkin に関する全てのニュースグループを、一つの -巨大でシアワセなニュースグループにまとめる @code{nnvirtual} 方法 -の例です。 - -@lisp -(nnvirtual "^alt\\.fan\\.andrea-dworkin$\\|^rec\\.dworkin.*") -@end lisp - -構成グループは基本グループでも外部グループでも構いません。全て問 -題無く動くはずですが、もしあなたのコンピューターが爆発でもしてし -まったら、それはたぶん私が悪いんでしょうね。 - -いくつかのサーバーから同じグループを集めることは、利用者が -Distribution ヘッダーを使って配布範囲を制限している場合は、非常 -に良いかも知れません。もしあなたが @samp{soc.motss} を、日本のサー -バーとノルウェーのサーバーの両方から読みたければ、グループの正規 -表現として以下の値が使えます。 - -@example -"^nntp\\+some\\.server\\.jp:soc\\.motss$\\|^nntp\\+some\\.server\\.no:soc\\.motss$" -@end example - -(でもちょっと注意。@kbd{G m} でグループを作成するときは、バック -スラッシュを二重に付けてはいけません。そして文字列の最初と最後の -引用記号も取り払ってください。) - -これはちょっとうまく動作するはずです --- 両方のグループの記事は -全部完全に一つのグループになり、重複も無いはずです。スレッド表示 -(とその他)も通常通りうまく動作するでしょうけど、記事の並ぶ順序に -は問題があるかもしれません。日付による並べ替えはここでは仕様外と -なるかもしれません (@pxref{Selecting a Group})。 - -なお、ここで一つだけ制限があります --- 仮想グループに含まれるグ -ループは全て生きている(すなわち、購読または非購読の)状態でなくて -はなりません。削除あるいはゾンビグループは @code{nnvirtual} グルー -プの構成グループになることはできません。 - -@vindex nnvirtual-always-rescan -@code{nnvirtual-always-rescan} が @code{nil} 以外であれば、 -@code{nnvirtual} は仮想グループに入ったとき常に、未読記事を走査 -します。この変数が @code{nil} (これが初期設定)であって、仮想グルー -プを作成した後に構成グループ内の記事を読んだ場合は、その構成グルー -プで読まれた記事は、仮想グループに入ったときに表示され るでしょ -う。もし共通の構成グループを持つ二つの仮想グループがある場合にも -この影響があります。その場合はこの変数を @code{t} にした方が良い -です。あるいは仮想グループに入る時に、毎回そのグループの上で -@code{M-g} を叩いても良いです --- これはほぼ同様の効果があります。 - -@node Kibozed Groups -@subsection Kiboze グループ -@cindex nnkiboze -@cindex kibozing - -@dfn{Kiboze} する、とは、``ニューススプール全部(あるいはその一部) -から grep すること'' とオックスフォード大辞典によって定義されてい -ます。@code{nnkiboze} はこれをあなたのために行ってくれるバックエ -ンドです。嬉しいね! これでどんな @sc{nntp} サーバーでも、役に立 -たない要求で止まってしまうまで酷使することができるね。ああ、なん -て幸せなんだ! - -@kindex G k (Group) -kiboze グループを作成するには、グループバッファで @kbd{G k} 命令 -を使います。 - -@code{nnkiboze} 方法におけるアドレス欄は、@code{nnvirtual} と同 -様に、@code{nnkiboze} に ``含めたい'' グループにマッチする正規表 -現です。ここが @code{nnkiboze} と @code{nnvirtual} バックエンド -の最も類似している点です。 - -この構成グループを列挙する正規表現に加えて、@code{nnkiboze} グルー -プには、グループ内のどの記事を含めるかを決めるスコアファイルがな -くてはなりません (@pxref{Scoring})。 - -@kindex M-x nnkiboze-generate-groups -@findex nnkiboze-generate-groups -あなたの欲しい @code{nnkiboze} グループを作成した後には、 -@kbd{M-x nnkiboze-generate-groups} を実行しなければなりません。 -この命令は時間がかかります。とってもかかります。すごく、すごーく -かかります。Gnus はその @code{nnkiboze} グループの一部となるべき -記事があるかどうかを調べるために、全部の構成グループの全部の記事 -に対してヘッダーを取得し、それら全てに対してスコア処理を実行しな -くてはならないのです。 - -構成グループの数を抑えるように、限定した正規表現を使ってください。 -さもないと、あなたのところのシステム管理者を怒らせてしまって、 -@sc{nntp} サーバーからあなたを追い出して二度と入れないようにして -しまうかも知れません。不慣れな人がよくやることです。 - -@code{nnkiboze} の構成グループは生きている必要はありません --- -死んでても良いし、外部グループでも構いません。無制限です。 - -@vindex nnkiboze-directory -@code{nnkiboze} グループの生成によって、二つのファイルが -@code{nnkiboze-directory} 内に作成されます。この初期設定値は -@file{~/News/} です。一方のファイルはそのグループの全記事の -@sc{nov} ヘッダー行を含んでいて、もう一方は構成記事を見つけるた -めにどのグループが検索されたかの情報を格納する、@file{.newsrc} -の補助ファイルです。 - -@code{nnkiboze} グループ内の既読となった記事は、その記事の -@sc{nov} 行が @sc{nov} ファイルから削除されます。 - - -@node Gnus Unplugged -@section Gnus の切り離し -@cindex offline -@cindex unplugged -@cindex Agent -@cindex Gnus Agent -@cindex Gnus Unplugged - -いにしえの時代(およそ 1988 年 2 月頃)、人々はニュースリーダーを、 -大きなマシンの上でネットワークに永続的に接続して走らせていました。 -ニュースの配送はニュースサーバーによって取り扱われ、全てのニュー -スリーダーがすべきことは、ニュースを読むことであったのです。信じ -られないかもしれませんが。 - -今日では、多くの人々は自宅でニュースやメールを読み、ネットワーク -に接続するためにモデムの類を使います。電話代の請求書が莫大なもの -に上らないように、全てのニュースとメールを吸い上げ、電話を切り、 -数時間掛けて読み、そして送りたい返信を全て送信する、という手段を -持つことは良いことでありましょう。あとはこの手順を繰り返すのです。 - -もちろん、これを行うためにニュースサーバーを使うこともできます。 -私は @code{inn} を @code{slurp}、@code{pop}、 @code{sendmail} と -一緒にここ数年使ってきましたが、しかしこれは退屈な仕事です。もし -あるマシン上でニュースを読む人があなたしかいなければ、ニュースサー -バーの機能をニュースリーダーに任せるようにすることは理にかなって -います。 - -Gnus を ``オフライン'' のニュースリーダーとして使うのは極めて簡 -単です。 - -@itemize @bullet -@item -まず、ネットワークに完全に繋がっているマシン上で動作させるのと同 -じように、gnus を設定します。まずやっておいで。僕はここで待って -るから。 - -@item -そしたら、以下の魔法の呪文をあなたの @file{.gnus.el} ファイルの -最後に書いてください。 - -@lisp -(gnus-agentize) -@end lisp -@end itemize - -こんだけです。これで gnus は ``オフライン'' ニュースリーダーになっ -てしまいました。 - -もちろん、これをオフラインニュースリーダーとして使うには、いくつ -か新しい命令を覚えなくてはなりません。 - -@menu -* Agent Basics:: これらはどう動くのか。 -* Agent Categories:: 何をダウンロードするかを gnus エージェントに教える方法。 -* Agent Commands:: 各バッファーでの新しい命令。 -* Agent Expiry:: 古い記事を消す方法。 -* Outgoing Messages:: 投稿、メールを出すときになにが起こるのか? -* Agent Variables:: カスタマイズは楽し。 -* Example Setup:: オフライン人間のための @file{.gnus.el} の例。 -* Batching Agents:: @code{cron} ジョブによるニュース取得方法。 -@end menu - - -@node Agent Basics -@subsection エージェントの基礎 - -まず、いくつかの用語を片付けておきましょう。 - -あなたがネットワークとの通信が切れているとき(でエージェントがそ -れを知らされているとき)は、gnus エージェントは切り離されている -(@dfn{unplugged})、と言います。ネットワークの通信が復活し (そし -て gnus がそれを知れば)、エージェントは差し込まれている -(@dfn{plugged})、と言います。 - -ローカル (@dfn{local}) マシンとは、あなたが触っているマシンで、 -ネットワークに継続的に接続されているものではありません。 - -ダウンロード (@dfn{download}) とはネットワークから何かをあなたの -ローカルマシンに取ってくることを意味します。アップロード -(@dfn{upload}) はその逆をすることです。 - -エージェントを使った典型的な gnus の対話操作を見てみましょう。 - -@itemize @bullet - -@item -Gnus を @code{gnus-unplugged} で起動します。これは gnus エージェ -ントを切り離されている状態で起動します。この状態では、すでに取得 -しているニュース記事は全て読むことができます。 - -@item -そして、新しいニュースが到着しているかどうかを調べることにします。 -あなたは (PPP か何かを使って) あなたのマシンをネットワークに接続 -し、そして gnus を差し込むために @kbd{J j} を叩きます。 - -@item -そして、その場ですぐに新しいニュースを読むこともできますし、ニュー -スをローカルマシンにダウンロードすることもできます。後者を実行し -たければ、@kbd{J s} を押して、全グループから適切な記事を全て取得 -します。(Gnus にどの記事をダウンロードしたいかを指定するには -@pxref{Agent Categories} を参照してください。) - -@item -記事を取得した後は @kbd{J j} を押して、gnus を再び切り離し状態に -させ、PPP 関係(など)を閉じます。そうしてニュースをオフラインで読 -むことができます。 - -@item -そして第 2 ステップに戻ります。 -@end itemize - -以下にエージェントを初めて(かそこらに)使うときに必要ないくつかの -作業を示します。 - -@itemize @bullet - -@item -どのサーバーをエージェントで面倒を見るかを決めます。もしメールバッ -クエンドがあれば、それをエージェントに面倒を見させるのはおそらく -無意味でしょう。サーバーバッファーに移動し (グループバッファーで -@kbd{^})、エージェントに扱って欲しいサーバー(複数可)で @kbd{J a} -を押します (@pxref{Server Agent Commands})。これは大抵の場合、バッ -ファーの下に一覧表示されている基本選択方法だけでしょう。 - -@item -ダウンロード方針を決定します。@xref{Agent Categories} - -@item -ええと…、以上です。 -@end itemize - - -@node Agent Categories -@subsection エージェント分類 - -ニュース配送機構とニュースリーダーを統合する一つの大きな理由は、 -どの記事をダウンロードするかについて、より良い制御を可能とするこ -とです。莫大な量の記事をダウンロードしてもあまり意味はなく、それ -らを読んでもあまり面白くないことが分かるだけです。何をダウンロー -ドするかの選択はもっと慎重であるべきであり、その記事が面白いと分 -かった時点で、ダウンロードするための印を手動で付けるべきなのです。 - -何をダウンロードするかを制御する主な方法は、分類 -(@dfn{category}) を作成して、そしてその分類にいくつか (あるいは -全部) のグループを割り当てます。gnus は分類の作成と管理のための -独自のバッファーを持っています。 - -@menu -* Category Syntax:: 分類とはどんなものか。 -* The Category Buffer:: 分類を管理するバッファー。 -* Category Variables:: カスタマイザ"ら"ス -@end menu - - -@node Category Syntax -@subsubsection 分類の文法 - -分類は二つのものからなります。 - -@enumerate -@item -(通常) どの記事をダウンロードするのが適当かという大まかな輪郭を -与える述語。そして - -@item -(通常) どの記事をダウンロードするかを決めるときのよりきめの細か -いスコア規則。(このダウンロードスコア (@dfn{download score}) は -通常のスコアとは全く関係が無いことに注意してください。) -@end enumerate - -述語は論理演算子が間に散りばめられた述語の組み合わせからなります。 - -おそらくいくつかの例がそのまま使えます。 - -以下は簡単な述語です。(これは初期設定の述語です。つまり、他のど -の分類にも含まれない全てのグループに対して使用されます。) - -@lisp -short -@end lisp - -とっても簡単でしょ? この述語は、記事が短い(``短い'' 価値がある) -場合に限り真になります。 - -これはもっと複雑な述語です。 - -@lisp -(or high - (and - (not low) - (not long))) -@end lisp - -この意味は、高いスコアを持っているか、あるいはスコアが低くなくて -かつ長くない、という記事をダウンロードする、ということです。わか -るだろ。 - -使ってもよい論理演算子は、@code{or}、 @code{and}、@code{not} で -す。(もし使いたければ、より ``C'' 風の演算子 @samp{|}、@code{&}、 -@code{!} を代りに使うことができます。) - -以下の述語はあらかじめ定義されていますが、これらのどれもあなたの -やりたいことに一致しなければ、自分で独自のものを書くこともできます。 - -@table @code -@item short -記事が @code{gnus-agent-short-article} 行より短かければ真。 -初期設定値は 100。 - -@item long -記事が @code{gnus-agent-long-article} 行より長ければ真。初期設定 -値は 200。 - -@item low -記事のダウンロードスコアが @code{gnus-agent-low-score} 以下であ -れば真。初期設定値は 0。 - -@item high -記事のダウンロードスコアが @code{gnus-agent-high-score} 以上であ -れば真。初期設定値は 0。 - -@item spam -gnus エージェントがその記事を SPAM だと見做したら真。この発見的 -手法は、今後変更されるかもしれませんが、現時点では、これはチェッ -クサムを計算し記事が一致するかどうかを調べています。 - -@item true -常に真。 - -@item false -常に偽。 -@end table - -あなたが自分の独自の述語関数を作成したければ、これを知っておいて -ください: 関数は引数無しで呼び出されますが、@code{gnus-headers} -と @code{gnus-score} 動的変数には便利な値が束縛されます。 - -さて、ダウンロードスコアの文法は通常のスコアファイルの文法と同じ -ですが、例外として、実際に記事自身を調べる必要がある要素は禁止さ -れています。つまり、以下のヘッダーのみがスコア付けできます: -@code{From}、@code{Subject}、@code{Date}、@code{Xref}、 -@code{Lines}、 @code{Chars}、 @code{Message-ID}、 -@code{References}。 - -@node The Category Buffer -@subsubsection 分類バッファー - -通常は全ての分類は分類バッファーから管理します。(グループバッファー -から @kbd{J c} 命令によって) 初めてこれに入ったとき、初期設定の -分類だけが表示されます。 - - -以下の命令がこのバッファーで使用できます。 - -@table @kbd -@item q -@kindex q (Category) -@findex gnus-category-exit -グループバッファーに戻る (@code{gnus-category-exit})。 - -@item k -@kindex k (Category) -@findex gnus-category-kill -現在の分類を消去する (@code{gnus-category-kill})。 - -@item c -@kindex c (Category) -@findex gnus-category-copy -現在の分類を複製する (@code{gnus-category-copy})。 - -@item a -@kindex a (Category) -@findex gnus-category-add -新しい分類を追加する (@code{gnus-category-add})。 - -@item p -@kindex p (Category) -@findex gnus-category-edit-predicate -現在の分類の述語を編集する (@code{gnus-category-edit-predicate})。 - -@item g -@kindex g (Category) -@findex gnus-category-edit-groups -現在の分類に属するグループの一覧を編集する -(@code{gnus-category-edit-groups})。 - -@item s -@kindex s (Category) -@findex gnus-category-edit-score -現在の分類のダウンロードスコア規則を編集する -(@code{gnus-category-edit-score})。 - -@item l -@kindex l (Category) -@findex gnus-category-list -全ての分類を表示する (@code{gnus-category-list})。 -@end table - - -@node Category Variables -@subsubsection 分類変数 - -@table @code -@item gnus-category-mode-hook -@vindex gnus-category-mode-hook -分類バッファーで実行するフック。 - -@item gnus-category-line-format -@vindex gnus-category-line-format -分類バッファーの行様式 (@pxref{Formatting Variables})。正当な要素は、 - -@table @samp -@item c -分類の名前。 - -@item g -分類に属するグループの数。 -@end table - -@item gnus-category-mode-line-format -@vindex gnus-category-mode-line-format -分類モード行の様式。 - -@item gnus-agent-short-article -@vindex gnus-agent-short-article -この変数より少ない行数の記事は短い。初期設定値は 100。 - -@item gnus-agent-long-article -@vindex gnus-agent-long-article -この変数より多い行数の記事は長い。初期設定値は 200。 - -@item gnus-agent-low-score -@vindex gnus-agent-low-score -この値より小さいスコアを持つ記事は低スコアである。初期設定値は 0。 - -@item gnus-agent-high-score -@vindex gnus-agent-high-score -この値より大きいスコアを持つ記事は高スコアである。初期設定値は 0。 - -@end table - - -@node Agent Commands -@subsection エージェント命令 - -全ての gnus エージェント命令は @kbd{J} サブマップにあります。 -@kbd{J j} (@code{gnus-agent-toggle-plugged}) 命令は全てのモード -で動作し、gnus エージェントの切り離し/差し込み状態を切り替えます。 - - -@menu -* Group Agent Commands:: -* Summary Agent Commands:: -* Server Agent Commands:: -@end menu - -完全な一括取得を行うには、コマンド行から以下のおまじないを -実行すればできます。 - -@cindex gnus-agent-batch-fetch -@example -$ emacs -batch -l ~/.gnus.el -f gnus-agent-batch-fetch -@end example - - - -@node Group Agent Commands -@subsubsection グループエージェント命令 - -@table @kbd -@item J u -@kindex J u (Agent Group) -@findex gnus-agent-fetch-groups -現在のグループの適格な記事を全て取得する -(@code{gnus-agent-fetch-groups})。 - -@item J c -@kindex J c (Agent Group) -@findex gnus-enter-category-buffer -エージェント分類バッファーに入る -(@code{gnus-enter-category-buffer})。 - -@item J s -@kindex J s (Agent Group) -@findex gnus-agent-fetch-session -全グループの適格な記事を全て取得する -(@code{gnus-agent-fetch-session})。 - -@item J S -@kindex J S (Agent Group) -@findex gnus-group-send-drafts -下書きグループにある送信可能なメッセージを全て送信する -(@code{gnus-agent-fetch-session})。 @xref{Drafts} - -@item J a -@kindex J a (Agent Group) -@findex gnus-agent-add-group -現在のグループをエージェント分類に追加する -(@code{gnus-agent-add-group})。 - -@end table - - -@node Summary Agent Commands -@subsubsection 概略エージェント命令 - -@table @kbd -@item J # -@kindex J # (Agent Summary) -@findex gnus-agent-mark-article -記事にダウンロードするように印を付ける -(@code{gnus-agent-mark-article})。 - -@item J M-# -@kindex J M-# (Agent Summary) -@findex gnus-agent-unmark-article -記事からダウンロードする印を消去する -(@code{gnus-agent-unmark-article})。 - -@item @@ -@kindex @@ (Agent Summary) -@findex gnus-agent-toggle-mark -記事をダウンロードするかどうかを切り替える -(@code{gnus-agent-toggle-mark})。 - -@item J c -@kindex J c (Agent Summary) -@findex gnus-agent-catchup -ダウンロード印の無い記事を全て既読にする -(@code{gnus-agent-catchup})。 - -@end table - - -@node Server Agent Commands -@subsubsection サーバーエージェント命令 - -@table @kbd -@item J a -@kindex J a (Agent Server) -@findex gnus-agent-add-server -現在のサーバーを、gnus エージェントで扱われるサーバーの一覧に追 -加する (@code{gnus-agent-add-server})。 - -@item J r -@kindex J r (Agent Server) -@findex gnus-agent-remove-server -現在のサーバーを、gnus エージェントで扱われるサーバーの一覧から -削除する (@code{gnus-agent-remove-server})。 - -@end table - - -@node Agent Expiry -@subsection エージェント期限切れ消去 - -@vindex gnus-agent-expiry-days -@findex gnus-agent-expiry -@kindex M-x gnus-agent-expiry -@cindex Agent expiry -@cindex Gnus Agent expiry -@cindex expiry - -@code{nnagent} は期限切れ消去を扱いません。その代わりに、特別な -@code{gnus-agent-expiry} 命令が @code{gnus-agent-expiry-days} 日 -よりも古い既読記事を全て消去します。これはあなたがディスク容量を -使い切りそうだと思ったときにいつでも実行することができます。これ -は特に速くもなく効率的でもなく、一旦始めてしまったら (@kbd{C-g} -やその他で) 中断することもあまり良いことではありません。 - -@vindex gnus-agent-expire-all -@code{gnus-agent-expire-all} が @code{nil} でなければ、この命令 -は全ての記事 --- 未読、既読、可視、保留記事を消去します。もし -@code{nil} (これが初期設定値) であれば、既読記事のみが消去の対象 -となり、未読、可視、保留記事はさらに無期限に保持します。 - - -@node Outgoing Messages -@subsection 差出用メッセージ - -Gnus が切り離されているとき、全ての差出用メッセージ (メールとニュー -スの両方) は下書きグループ (@pxref{Drafts}) に格納されます。投稿 -した後でも、ここでそのメッセージを見たり、編集したりするのは意の -ままです。 - -Gnus が再び差し込まれたとき、メッセージを送信するために、特別な -命令を使って下書きグループから送ることも、グループバッファ内で -@kbd{J S} を使って、下書きグループ内の全ての送信可能メッセージ送 -信することもできます。 - -@node Agent Variables -@subsection エージェント変数 - -@table @code -@item gnus-agent-directory -@vindex gnus-agent-directory -Gnus エージェントがファイルを格納する場所。初期設定値は -@file{~/News/agent/}。 - -@item gnus-agent-handle-level -@vindex gnus-agent-handle-level -この変数の値より高いレベル (@pxref{Group Levels}) のグループは、 -エージェントからは無視されます。初期設定値は -@code{gnus-level-subscribed} で、これは初期設定では、購読してい -るグループのみがエージェントの処理の対象となるということです。 - -@item gnus-agent-plugged-hook -@vindex gnus-agent-plugged-hook -ネットワークに接続されたときに実行されるフック。 - -@item gnus-agent-unplugged-hook -@vindex gnus-agent-unplugged-hook -ネットワークから切断されたときに実行されるフック。 - -@end table - - -@node Example Setup -@subsection 設定例 - -もしあなたがこのマニュアルを読みたくなくて、ごく標準的な設定がさ -れているとするなら、あなたの @file{.gnus.el} ファイルに以下のよ -うな設定をするところから始められるでしょう。 - -@lisp -;;; Gnus がどのようにニュースを取得するかを定義する。ここでは -;;; ISP のサーバーから NNTP で取ってくることにする。 -(setq gnus-select-method '(nntp "nntp.your-isp.com")) - -;;; Gnus がどのようにメールを読むかを定義する。ISP の POP サーバー -;;; からメールを読むことにする。 -(setenv "MAILHOST" "pop.your-isp.com") -(setq nnmail-spool-file "po:username") - -;;; Gnus がメールをどのように格納するかを指定する。nnml グループ -;;; を使う。 -(setq gnus-secondary-select-methods '((nnml ""))) - -;;; Gnus をオフラインニュースリーダーにする。 -(gnus-agentize) -@end lisp - -基本的にはこれだけで良いはずです。これをあなたの -@file{~/.gnus.el} ファイルに入れて、あなたの要望に合わせて編集し、 -PPP (や何か) を起動して、@kbd{M-x gnus} と打鍵してください。 - -あなたが初めて gnus を実行するしたときは、いくつかのニュースグルー -プが初期設定として自動的に購読されます。おそらくもっとたくさんの -グループを購読したくなるでしょうけど、そのためには、@kbd{A A} 命 -令で @sc{nntp} サーバーに全グループの一覧を問い合わせなければな -りません。これは通常とても時間がかかりますが、一度だけしか実行す -る必要はありません。 - -しばらくの読み込みと解析の後に、グループの一覧を提示させられるで -しょう。@kbd{u} 命令で読みたいグループを購読します。読みたいグルー -プを全部購読したら、@kbd{l} で削除グループを全て画面から消去しま -す。(@kbd{A k} で削除グループは全て戻ってきます。) - -さて、ここでその場でグループを読むこともできますし、あるいは -@kbd{J s} 命令で記事をダウンロードすることもできます。あとはこの -マニュアルの残りを読んで、その他の何百億の項目からカスタマイズし -たいことを見つけ出してください。 - -@node Batching Agents -@subsection 一括エージェント処理 - -Gnus エージェントに記事を取得させるのは (そしてあなたの書いた何 -かのメッセージを投稿するのは)、一旦物事を正しく設定してしまえば -非常に簡単です。以下のシェルスクリプトは必要なことを全てやってく -れるでしょう。 - -@example -#!/bin/sh -emacs -batch -l ~/.emacs -f gnus-agent-batch >/dev/null -@end example - - -@node Scoring -@chapter スコア -@cindex scoring - -他の人々は @dfn{削除ファイル} を使いますが、ここ gnus タワーは削除よりも -スコアの方を好みますので、他と格闘するよりは切り替える事にしました。それ -らは完全に違う事をしますので、真っ直ぐに座って注意を払ってください! - -@vindex gnus-summary-below -全ての記事はスコアの初期値を持っており -(@code{gnus-summary-default-score})、これはディフォルトで 0 です。このス -コアは対話的や、スコアファイル (score file) の方法により、上げられたり下 -げられたりします。@code{gnus-summary-bark-below} よりも低いスコアの記事 -には既読の印が付きます。 - -Gnus は概略バッファを作成する前に、現在のグループに適用されるどんな -@dfn{スコアファイル} も読み込みます。 - -現在の記事に基づいてスコアの登録を挿入するいくつかの命令が概略バッファに -あります。例えば、gnus に特定の表題の記事のスコアを下げたり上げたりする -ように求める事ができます。 - -2種類のスコア登録があります: 永続と一時的です。一時的スコア登録は自分自 -身で期限がくると削除する登録です。例えば、1週間以上使われていないどんな -登録も、スコアファイルの大きさを小さくするために、静かに削除されます。 - -@menu -* Summary Score Commands:: 現在のグループのためのスコア登録を追加する。 -* Group Score Commands:: 一般的なスコア命令。 -* Score Variables:: あなたのスコアをカスタマイズする。 - (まぁ、なんて用語でしょう)。 -* Score File Format:: スコアファイルに何を入れるか。 -* Score File Editing:: 手でスコアファイルを編集する事もできる。 -* Adaptive Scoring:: 大姉 gnus はあなたが何を読んだか知っている。 -* Home Score File:: 新しいスコア登録がどこへ行くかをどのように指定するか。 -* Followups To Yourself:: 人があなたに返答したときに gnus に気付かせる。 -* Scoring Tips:: どうやって効果的にスコアを付けるか。 -* Reverse Scoring:: 古いものの子であるという問題は問題ではない。 -* Global Score Files:: 地をつかみ、耳を切り裂くスコアファイル。 -* Kill Files:: それらはまだここにありますが、無視する事ができます。 -* Converting Kill Files:: 削除ファイルをスコアファイルに変換する。 -* GroupLens:: どれを読むのが好きかの予言を得る。 -* Advanced Scoring:: スコアの法則を作るために論理表現を使う。 -* Score Decays:: スコアを枯れていかせるのは役に立つ事もある。 -@end menu - - -@node Summary Score Commands -@section 概略スコア命令 -@cindex score commands - -スコア登録を変更するスコア命令は実際に本当のスコアファイルを修正するわけ -ではありません。それはあまりに非効率です。Gnus は以前にロードされたスコ -アファイルのキャッシュを保持しており、その一つは @dfn{現在のスコアファイ -ル連想リスト} (current score file alist) と考えられています。スコア命令 -は単純にこのリストに登録を挿入して、グループから出ると、このリストは保存 -されます。 - -現在 (current) のスコアファイルは、実際にそのようなスコアファイルが存在 -していない場合でも、初期設定でグループのローカルスコアファイルになってい -ます。スコア命令を何か他のスコアファイル (例、@file{all.SCORE}) に挿入し -たいなら、まずこのスコアファイルを現在のものにしなければなりません。 - -一般的なスコア命令は実際にはスコアファイルを変更しません: - -@table @kbd - -@item V s -@kindex V s (概略) -@findex gnus-summary-set-score -現在の記事のスコアを設定します (@code{gnus-summary-set-score})。 - -@item V S -@kindex V S (概略) -@findex gnus-summary-current-score -現在の記事のスコアを表示します (@code{gnus-summary-current-score})。 - -@item V t -@kindex V t (概略) -@findex gnus-score-find-trace -現在の記事に使われている全てのスコア法則 (score rule) を表示します -(@code{gnus-score-find-trace})。 - -@item V R -@kindex V R (概略) -@findex gnus-summary-rescore -現在の概略でスコア過程を実行します (@code{gnus-summay-rescore})。これは -gnus の後ろでいろいろとスコアファイルで遊んで、それの効果を見たいときに -役立つかもしれません。 - -@item V a -@kindex V a (概略) -@findex gnus-summary-score-entry -新しいスコア登録を付け加え、全ての要素の指定を許可します -(@code{gnus-summary-score-entry})。 - -@item V c -@kindex V c (概略) -@findex gnus-score-change-score-file -違ったスコアファイルを現在のものにします -(@code{gnus-score-change-score-file})。 - -@item V e -@kindex V e (概略) -@findex gnus-score-edit-current-scores -現在のスコアファイルを編集します (@code{gnus-score-edit-current-scores})。 -@code{gnus-score-mode} バッファに移動する事になるでしょう (@pxref{Score -File Editing})。 - -@item V f -@kindex V f (概略) -@findex gnus-score-edit-file -スコアファイルを編集して、このスコアファイルを現在のものにします -(@code{gnus-score-edit-file})。 - -@item V F -@kindex V F (概略) -@findex gnus-score-flush-cache -現在のスコアキャッシュを書き込みます (@code{gnus-score-flush-cache})。こ -れはスコアファイルを編集した後に役に立ちます。 - -@item V C -@kindex V C (概略) -@findex gnus-score-customize -視覚的で嬉しい方法でスコアファイルをカスタマイズします -(@code{gnus-score-customize})。 - -@end table - -これらの命令の残りはローカルスコアファイルを修正します。 - -@table @kbd - -@item V m -@kindex V m (概略) -@findex gnus-score-set-mark-below -スコアの入力を促進し、それよりも低いスコアの全ての記事に既読の印を付けま -す (@code{gnus-score-set-mark-below})。 - -@item V x -@kindex V x (概略) -@findex gnus-score-set-expunge-below -スコアの入力を促進し、そのスコアより低い全ての記事を削除するためのスコア -法則を現在のスコアファイルに付け加えます -(@code{gnus-score-set-expunge-below})。 -@end table - -実際にスコア登録をするためのキー打ち込みは非常に規則正しい法則に従います -ので、それらの命令全てを表に上げる必要はありません。(たーくさんあります。) - -@findex gnus-summary-increase-score -@findex gnus-summary-lower-score - -@enumerate -@item -最初のキーはスコアを増やすための @kbd{I} (i の大文字) か、スコアを下げる -ための @kbd{L} です。 -@item -2番目のキーはどのヘッダーにスコアをしたいかを表します。以下のキーが使用 -可能です: -@table @kbd - -@item a -著者 (author) の名前にスコアを付けます。 - -@item s -表題 (subject) の行にスコアを付けます。 - -@item x -Xref 行にスコアを付けます---すなわち、相互投稿行です。 - -@item t -スレッド (thread) にスコアを付けます---References 行です。 - -@item d -日付 (date) にスコアを付けます。 - -@item l -行数 (number of lines) にスコアを付けます。 - -@item i -Messsage-ID にスコアを付けます。 - -@item f -フォローアップ (followup) にスコアを付けます。 - -@item b -本体 (body) にスコアを付けます。 - -@item h -ヘッダー (head) にスコアを付けます。 -@end table - -@item -3番目のキーは合致する型です。どの合致の型が有効かはどのヘッダーにスコア -を付けようとしているかに依ります。 - -@table @code - -@item 文字列 (strings) - -@table @kbd - -@item e -正確な (exact) 合致です。 - -@item s -文字列の一部の (substring) 合致です。 - -@item f -あいまいな (fuzzy) 合致です (@pxref{Fuzzy Matching})。 - -@item r -正規表現 (regexp) の合致です。 -@end table - -@item 日付 (date) -@table @kbd - -@item b -日付の前 (before) です。 - -@item a -日付の後 (after) です。 - -@item n -その日付です。 -@end table - -@item 数字 (number) -@table @kbd - -@item < -数字より小さいものです。 - -@item = -数字と等しいものです。 - -@item > -数字より大きいものです。 -@end table -@end table - -@item -4つめで、最後のキーはこれが一時的 (すなわち、期限切れ消去) のスコア登録 -か、永続的な (すなわち、期限切れ消去でない) スコア登録であるかということ、 -もしくはすぐになされるべきか、スコアファイルに追加する事はしないかという -事を指定します。 -@table @kbd - -@item t -一時的な (temporary) スコア登録です。 - -@item p -永続的な (permanent) スコア登録です。 - -@item i -即座の (immediate) スコア付けです。 -@end table - -@end enumerate - -ですから、現在の著者に正確な合致で永続的にスコアを増やしたいとしましょう: -@kbd{I a e p}。表題に基づいてスコアを下げたくて、文字列の部分の合致を使 -い、一時的なスコア登録をしたいのであれば: @kbd{L s s t}。非常に簡単です。 - -物事を複雑にするのは、短縮打鍵が存在するからです。2番目か3番目の文字に大 -文字を使うと、gnus は残る1つか2つの打鍵に初期値を使います。初期値は ``文 -字列の一部'' と ``一時的'' です。ですから、@kbd{I A} は @kbd{I a s t} と -同じで、@kbd{I a R} は @kbd{I a r t} と同じです。 - -これらの関数は数字接頭引数と、シンボル接頭引数を受け付けます -(@pxref{Symbolic Prefixes})。数字接頭引数はどのくらい記事のスコアを下げ -る (もしくは上げる) かを指定します。シンボル接頭引数 @code{a} は命令が現 -在のスコアファイルではなくファイル @file{all.SCORE} を使う事を指定します。 - -@vindex gnus-score-mimic-keymap -@code{gnus-score-mimic-keymap} はこれらの命令がキーマップであるかのよう -に振る舞うかどうかを指定します。 - - -@node Group Score Commands -@section グループスコア命令 -@cindex group score commands - -残念ながら、まだたくさんはありません。 - -@table @kbd - -@item W f -@kindex W f (グループ) -@findex gnus-score-flush-cache -Gnus は何度もスコア連想リストを読み込むのを避けるために、それのキャッシュ -を保持しています。この命令はキャッシュを書き出します -(@code{gnus-score-flush-cache})。 - -@end table - -以下のような事をする事によって、コマンド行からスコア付けをする事がで -きます。 - -@findex gnus-batch-score -@cindex batch scoring -@example -& emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score -@end example - - -@node Score Variables -@section スコア変数 -@cindex score variables - -@table @code - -@item gnus-use-scoring -@vindex gnus-use-scoring -@code{nil} であれば、gnus はスコアファイルを調べず、一般的に、スコア関連 -の仕事を全くしません。これは初期設定で @code{t} です。 - -@item gnus-kill-killed -@vindex gnus-kill-killed -この変数が @code{nil} であれば、gnus は既に削除過程を実行された記事に決 -してスコアファイルを適用しません。これはたくさんの時間を節約するでしょう -が、もし削除ファイルをグループに適用しているときに、削除ファイルを変更し、 -もっと多くの記事を削除するためにそれを再実行しても、それは動作しないとい -う事になります。それをするためにはこの変数を @code{t} に実行しなければな -りません。 (これは初期設定で @code{t} です。) - -@item gnus-kill-files-directory -@vindex gnus-kill-files-directory -全ての削除とスコアのファイルはこのディレクトリーに蓄積され、それは初期設 -定で環境変数 @code{SAVEDIR} によって初期化されます。これは初期設定で -@file{~/News/} です。 - -@item gnus-score-file-suffix -@vindex gnus-score-file-suffix -スコアファイルにたどり着くためにグループ名に加える接尾語です (初期値で -@samp{SCORE} です。) - -@item gnus-score-uncacheable-files -@vindex gnus-score-uncacheable-files -@cindex score cache -全てのスコアファイルは普通はスコアファイルの過剰読み込みを避けるために -キャッシュされます。しかし、これによりあなたの Emacs が大きく肥大化する -のであれば、再び必要とされないようなスコアファイルを除去するためにこの正 -規表現を使う事ができます。@file{all.SCORE} のキャッシュを止めるのは悪い -考えですが、@file{comp.infosystems.www.authoring.misc.ADAPT} をキャッシュ -しないのは良い考えでしょう。実際のところ、この変数は初期設定で -@samp{ADAPT$} で、適応スコアファイルはキャッシュされません。 - -@item gnus-save-score -@vindex gnus-save-score -もし本当に複雑なスコアファイルを持っていて、たくさんの一括スコアをするの -であれば、この変数を @code{t} に設定すると良いかもしれません。これは -gnus にスコアを @file{.newsrc.eld} ファイルに保存するようにさせます。 - -@item gnus-score-interactive-default-score -@vindex gnus-score-interactive-default-score -全ての対話的スコア上げ/下げ命令によって使われる上げ/下げするスコアです。 -ディフォルトは1000で、過剰だと思うかもしれませんが、これは適応スコア付け -をする余地の存在する事を確実にするためです。手で登録されたデータを適応ス -コアでの小さな変更で上書きされたくはありません。 - -@item gnus-summary-default-score -@vindex gnus-summary-default-score -記事のスコアの初期値で、初期設定では0になっています。 - -@item gnus-summary-expunge-below -@vindex gnus-summary-expunge-below -この変数より低いスコアを持つ記事は概略の行に表示されません。これは初期設 -定で @code{nil} で、これはどの記事も隠されないという事です。この変数は各 -概略バッファに固有で、@code{gnus-summary-mode-hook} によって設定されるべ -きです。 - -@item gnus-score-over-mark -@vindex gnus-score-over-mark -初期設定のスコアより大きなスコアを持つ記事に対して (3桁目に) 使われる印 -です。初期設定は @samp{+} です。 - -@item gnus-score-below-mark -@vindex gnus-score-below-mark -初期設定のスコアより小さなスコアを持つ記事に対して (3桁目に) 使われる印 -です。初期設定は @samp{-} です。 - -@item gnus-score-find-score-files-function -@vindex gnus-score-find-score-files-function -現在のグループのスコアファイルを見つけるために使われる関数です。この関数 -はグループ名を引数として呼ばれます。 - -使用可能な既定関数は: -@table @code - -@item gnus-score-find-single -@findex gnus-score-find-single -グループ自身のスコアファイルだけを適用します。 - -@item gnus-score-find-bnews -@findex gnus-score-find-bnews -bnews 構文を使って、全ての合致するスコアファイルを適用します。これが初期 -設定です。例えば、現在のグループが @samp{gnu.emacs.gnus} ならば、 -@file{gnu.all.SCORE}、@file{not.alt.SCORE} と @file{gnu.all.SCORE} がす -べて適用されます。要するに、スコアファイル名の @samp{all} が @samp{.*} -に変換され、それから正規表現の合致がなされます。 - -これは、全てのグループに適用したいスコア登録がいくつかある場合は、それら -の登録を @file{all.SCORE} ファイルに入れるということです。 - -Gnus は一般的なスコアファイルを特定のスコアファイル向けのものより前に適 -用しようと試みますが、スコアファイルはほとんど無作為の順番で適用されます。 -これはスコアファイル名の要素の数を調べる事によってなされます--- -@samp{all} 要素を取り除いて。 - -@item gnus-score-find-hierarchical -@findex gnus-score-find-hierarchical -全ての親グループからの全てのスコアファイルを適用します。これは -@file{all.SCORE} のようなスコアファイルを持つ事はできないけれど、 -@file{SCORE}、@file{comp.SCORE} と @file{comp.emacs.SCORE} を持つ事がで -きるという事です。 - -@end table -この変数は関数のリストである事もできます。その場合は、これらの全ての関数 -が呼ばれ、スコアファイルの返された全てのリストが適用されます。これらの関 -数は直接スコア連想リストのリストを返す事もできます。その場合は、それらの -ファイルでないスコア連想リストを返す関数は、返される最後のスコアファイル -がローカルスコアファイルである事を確実にするために、おそらく ``本当の'' -スコアファイル関数よりも前に置かれるべきでしょう。ふぅ。 - -@item gnus-score-expiry-days -@vindex gnus-score-expiry-days -この変数は使われていないスコアファイル登録が期限切れ削除されるまでどのく -らいの日が経つべきかを指定します。この変数が @code{nil} であると、スコア -ファイル登録は削除されません。初期値は7です。 - -@item gnus-update-score-entry-dates -@vindex gnus-update-score-entry-dates -この変数が @code{nil} でないと、合致するスコア登録は日付が更新されます。 -(これは gnus が期限切れ消去を操作している方法です---全ての合致しない登録 -は古くなりすぎ、合致する登録を新鮮で若いままです。) しかし、この変数を -@code{nil} に設定すると、合致する登録でさえも古くなり、あの嫌な死神と直 -面する事になるでしょう。 - -@item gnus-score-after-write-file-function -@vindex gnus-score-after-write-file-function -そこでちょうど書かれたスコアファイルの名前と共に呼ばれる関数です。 - -@item gnus-score-thread-simplify -@vindex gnus-score-thread-simplify -この変数が @code{nil} でないと、記事表題はスレッドと同じ方法で表題スコア -のために単純化されます---現在の gnus-simplify-subject-functions の値によっ -て。スコア登録が @code{文字列部分} か @code{正確な} 合致を使っていると、 -合致もこの方法で単純化されます。 - -@end table - - -@node Score File Format -@section スコアファイル様式 -@cindex score file format - -スコアファイルは普通は単純な様式のものだけを含む @code{emacs-lisp} ファ -イルです。無頓着な利用者はこれを編集しないでください。全ては概略バッファ -から変更されるでしょう。 - -とにかく、それを自分でいじってみたくなったのなら、例があります: - -@lisp -(("from" - ("Lars Ingebrigtsen" -10000) - ("Per Abrahamsen") - ("larsi\\|lmi" -50000 nil R)) - ("subject" - ("Ding is Badd" nil 728373)) - ("xref" - ("alt.politics" -1000 728372 s)) - ("lines" - (2 -100 nil <)) - (mark 0) - (expunge -1000) - (mark-and-expunge -10) - (read-only nil) - (orphan -10) - (adapt t) - (files "/hom/larsi/News/gnu.SCORE") - (exclude-files "all.SCORE") - (local (gnus-newsgroup-auto-expire t) - (gnus-summary-make-false-root empty)) - (eval (ding))) -@end lisp - -この例はたいていのスコアファイルの要素を説明しています。違った方法につい -ては、@pxref{Advanced Scoring} を見てください。 - -これは lisp コードのように見えますが、実際はここにあるものは何も -@code{評価} (eval) されません。しかし、lisp リーダーがこの様式を読み込む -のに使われますので、意味的に有効でないとしても、文法的には有効です。 - -この連想リストでは6つのキーを使う事ができます。 - -@table @code - -@item 文字列 (STRING) -もしキーが文字列であると、それは合致が実行されるヘッダーの名前です。スコ -アはこれらの8つのヘッダーだけに実行されます: @code{From}、@code{Subject}、 -@code{References}、@code{Message-ID}、@code{Xref}、@code{Lines}、 -@code{Chars}、@code{Date} です。これらのヘッダーに加えて、gnus に記事全 -体を取得して,記事のより大きな部分で合致を行うようにする3つの文字列があり -ます: @code{Body} は記事の本体 (Body) で合致を実行し、@code{Head} は記事 -のヘッダー (Head) で合致を実行し、@code{All} は記事全体で合致を実行しま -す。最後のこれらの3つのキーを使う事はグループに入るときに速度を @emph{か -なり} 遅くする事に気を付けてください。スコアを付ける事のできる最後の -``ヘッダー'' は @code{Followup} です。これらのスコア登録はそれに合致する -記事への全てのフォローアップのための新しいスコア登録が付け加えられる事に -なります。 - -このキーに続くのは任意の数のスコア登録で、それぞれのスコア登録は1つから4 -つまでの要素を持ちます。 -@enumerate - -@item -最初の要素は @dfn{合致要素} です。たいていのヘッダーではこれは文字列です -が、Lines と Chars ヘッダーではこれは整数でなければなりません。 - -@item -もし2番目の要素が存在するなら、それは数字であるべきです---@dfn{スコア要 -素}。この数字は負の無限大から正の無限大までの間の整数であるべきです。も -し合致が成功すれば、この数字が記事のスコアに加えられます。もしこの要素が -存在していなければ、数字 @code{gnus-score-interactive-default-score} が -代わりに使われます。これは初期設定で1000です。 - -@item -もし3番目の要素が存在していると、それは数字であるべきです---@dfn{日付要 -素} です。この日付は最後にこのスコア登録が合致した時刻を示し、これはスコ -ア登録の期限切れ消去機構の機能のために使われます。この要素が存在していな -ければ、スコア登録は永続します。日付は紀元前1年12月31日から経過した日に -ちの数で表されます。 - -@item -もし4番目の要素が存在していると、それはシンボルであるべきです---@dfn{型 -要素} です。この要素はこのスコア登録が記事に合致するかどうかを調べるのに -どの関数が使われるべきであるかを指定します。 - -@table @dfn - -@item From, Subject, References, Xref, Message-ID -たいていのヘッダーの型に対して、@code{r} と @code{R} (正規表現) (regexp) -や、@code{s} と @code{S} (文字列の一部) (substring) 型、@code{e} と -@code{E} (正確な合致) (exact match)、@code{w} (語の合致) (word match) 型 -が存在します。もしこの要素が存在しないと、gnus は文字列の一部の合致が用 -いられるべきであるとみなします。@code{R}、@code{S}、@code{E} は合致が大文 -字と小文字を区別する方法で行われるという点で他のものと異なります。全ての -これらの一文字型は本当は @code{regexp}、@code{exact}、@code{word} 型の短 -縮形で、もしそうしたいと思えばこちらを代わりに使う事ができます。 - -@item Lines, Chars -これらの2つのヘッダーは違った合致の型を使います: @code{<}、@code{>}、 -@code{=}、@code{>=}、@code{<=} です。合致が @code{Lines} でなされている -と、いくつかのバックエンド (@code{nndir}のようなもの) は @code{Lines} ヘッ -ダーを作成しないために全ての記事が0行であるとして扱われる事に気を付けて -ください。これはもし少しの行しかない記事のスコアを下げているのなら、変な -結果が起こり得る事になります。 - -@item Date -Date (日付) ヘッダーには3つのなんとなくばかげている合致の型があります: -@code{before}、@code{at}、@code{after} です。私は本当にこれが役立つよう -な機会を想像できないのですが、この関数を提供しないのもなんとなくばかげて -います。そうした場合のためにあるのです。いつ必要になるかは誰にもわかりま -せん。転ばぬ先の杖です。一度焼けると2度恥ずかしい、です。本をカバーで判 -断しては行けません。最初の日に性行為を行っていは行けません。 (しかし、私 -は少なくとも一人、引用しますが、``この関数は欠かせないものである事がわかっ -た'' と言った人が入ると聞いています。) - -@cindex ISO8601 -@cindex date -もっと役立つ合致の型は @code{正規表現} です。それによって日付文字列に正 -規表現を用いて合致させる事ができます。日付はまず ISO8601 短縮様式 -(compact format) に標準化されます---@var{YYYYMMDD}@code{T}@var{HHMMSS} -です。例えば、もし全ての年の4月1日に投稿された全ての記事にが治させたいの -であれば、@samp{....0401.........} を合致文字列として使う事ができます。 -(日付は元々の標準時で保存されていますので、その記事が投稿されたところで4 -月1日に投稿された記事に合致する事に注意してください。標準時は一家にとっ -て非常に有益な楽しみでしょう?) - -@item Head, Body All -これらの3つの合致のキーは @code{From} ヘッダー (など) と同じ合致の型を使 -います。 - -@item Followup -この合致のキーは少し特別で、それは @code{From} ヘッダーに合致し、合致し -た記事だけでなくその記事への全てのフォローアップのスコアにも影響します。 -これはたとえば、あなた自身の記事へのフォローアップのスコアを増やしたり、 -良く知られた問題児へのフォローアップ記事のスコアを下げたりするのに使われ -ます。@code{From} ヘッダーが使うのと同じ型の合致を使います。 (この合致キー -を使うと、ファイル @file{ADAPT} を作る事になります。) - -@item Thread -この合致キーは @code{Followup} 合致キーと同じ行に動作します。 -@code{Message-ID} @var{X} で始まっている (副)スレッドにスコアを付けたい -のであれば、@samp{thread} 合致を付け加えます。これは @code{Reference} ヘッ -ダーに @var{X} を持つそれぞれの記事に新しい @samp{thread} 合致を追加しま -す。 (これらの新しい @samp{thread} 合致はこれらの合致する記事の -@code{Message-ID} を使います。) これはスレッドのいくつかの記事が完全な -@code{References} ヘッダーを持っていなかったとしても、スレッド全体のスコ -アを上げ/下げできる事を保証します。これを使うと、スレッドの記事に決定的 -でないスコアが付くかもしれないということに注意してください。 (この合致キー -を使うと、ファイル @file{ADAPT} を作る事になります。) -@end table -@end enumerate - -@cindex Score File Atoms -@item mark -この登録の値は数字であるべきです。この数字より低いスコアの記事には既読の -印が付きます。 - -@item expunge -この登録の値は数字であるべきです。この数字より低いスコアの記事は概略バッ -ファから削除されます。 - -@item mark-and-expunge -この登録の値は数字であるべきです。この数字より低いスコアの記事には既読の -印が付き、概略バッファから削除されます。 - -@item thread-mark-and-expunge -この登録の値は数字であるべきです。スコアの総計がこの数字より低いスレッド -には既読の印が付き、概略バッファから削除されます。 -@code{gnus-thread-score-function} はスレッドのスコアの総計をどのように計 -算するかを指定します。 - -@item files -この登録の値は任意の数のファイル名であるべきです。これらのファイルもスコ -アファイルであるとみなされ、これがされたのと同じような方法で読み込まれま -す。 - -@item exclude-files -この登録の手がかりは任意の数のファイル名であるべきです。これらのファイルは何 -らかの理由で普通は読み込まれるようになっていたとしても、読み込まれません。 - -@item eval -この登録の値は @code{評価} されます。この要素は全体的スコアファイルを扱っ -ているときは無視されます。 - -@item read-only -読み込み専用スコアファイルは更新されたり保存されたりしません。全体的スコ -アファイルはこのアトムを使用するべきです (@pxref{Global Score Files})。 -(注意: @dfn{全体的} はここでは本当に @dfn{全体的} という意味です。個人的 -な全てのグループに適用するスコアファイルの事ではありません。) - -@item orphan -この登録の値は数字であるべきです。親記事を持たない記事はスコアにこの数字 -が加えられます。@samp{comp.lang.c} のような量の多いニュースグループを追 -いかけているとしてください。おそらく2,3のスレッドと新しいスレッドだけを -追いたいでしょう。 - -以下の2つのスコアファイル登録によってそれをする事ができます: - -@example - (orphan -500) - (mark-and-expunge -100) -@end example - -最初にこのグループに入ったときは、新しいスレッドだけを見ます。それからお -もしろいと思ったスレッドのスコアを上げ (@kbd{I T} もしくは @kbd{I S} に -よって)、残りを無視 (@kbd{C y}) します。次にグループに入ったときは、おも -しろいスレッドの新しい記事と全く新しいスレッドを見る事になります。 - -すなわち---orphan (孤児) スコアアトムは普通のスコア法則では発見できない興味深いスレッドが少し存在しする量の多いグループのためにあります。 - -@item adapt -この登録は適応スコアを制御します。もしこれが @code{t} であると、初期設定 -の適応スコア法則が使われます。もしこれが @code{ignore} であると、このグ -ループには適応スコアは実行されません。もしリストであると、そのリストは適 -応スコア法則として用いられます。もしそれが存在しないか、@code{t} や -@code{ignore} でない他のものであれば、初期設定の適応スコア法則が使われま -す。たいていのグループに適応スコアを使いたいのであれば、 -@code{gnus-use-adaptive-scorint} を @code{t} に設定し、@code{(adapt -ignore)} を適応スコアをしたくないグループに挿入するでしょう。少しのグルー -プでだけ適応スコアを行いたいのであれば、@code{gnus-use-adaptive-scoring} -を @code{nil} に設定し、@code{(adaptive t)} をそれを行いたいグループのス -コアファイルに挿入するでしょう。 - -@item adaptive-file -全ての適応スコア登録はこの登録によって名づけられたファイルに入ります。そ -れはグループに入るときにも適用されます。このアトムは多くのグループに同じ -適応スコアファイルを用いる事によって、複数のグループに一度に適応スコアを -付けたいときに便利でしょう。 - -@item local -@cindex local variables -この登録の値は @code{(VAR VALUE)} 対のリストであるべきです。それぞれの -@var{var} は現在の概略バッファのバッファ固有になり、指定された値 (value) -に設定されます。これは便利な、もし少し変だとしても、フックをあまり好まな -いいくつかのグループで変数を設定する方法です。@var{value} は評価されない -事に注意してください。 -@end table - - -@node Score File Editing -@section スコアファイル編集 - -普通は全てのスコア命令を概略バッファから発行しますが、手でそれらを編集し -たい気に駆られるかもしれませんので、それのためのモードを提供しています。 - -それは単純に少しカスタマイズされた @code{emacs-lisp} モードで、以下の追 -加の命令が存在します: - -@table @kbd - -@item C-c C-c -@kindex C-c C-c (スコア) -@findex gnus-score-edit-done -あなたが行った変更を保存して概略バッファに戻ります -(@code{gnus-score-edit-done})。 - -@item C-c C-d -@kindex C-c C-d (スコア) -@findex gnus-score-edit-insert-date -現在の日付を数字様式で挿入します (@code{gnus-score-edit-insert-date})。 -もしこれがどのようなものであろうと考えているのであれば、これは本当に日の -数字です。 - -@item C-c C-p -@kindex C-c C-p (スコア) -@findex gnus-score-pretty-print -適応スコアファイルは整えられていない流儀で保存されます。もしこれらのファ -イルの内の一つを読みたいと思っているのであれば、まず @dfn{素敵な表示} を -したいでしょう。この命令 (@code{gnus-score-pretty-print}) があなたのため -にそれをします。 - -@end table - -このモードを使うためには @kbd{M-x gnus-score-mode} と打ってください。 - -@vindex gnus-score-mode-hook -@code{gnus-score-menu-hook} がスコアモードバッファで実行されます。 - -概略バッファでは、@kbd{V f} や @kbd{V e} のような命令でスコアファイルの -編集を始める事ができます。 - - -@node Adaptive Scoring -@section 適応性スコア -@cindex adaptive scoring - -これらのスコア付けはあなたを憂鬱にさせてしまうかもしれないので、 -gnus にはこれらを全て自動的に --- まるで魔法でも使ったように作成 -する方法があります。いやむしろ、人工無能によって、という方が正確 -かな。 - -@vindex gnus-use-adaptive-scoring -記事を読んだとき、あるいは記事に既読の印をつけたとき、記事を削除 -したときに、その印を残しておいてください。グループから出るときに -gnus は、それらの印の辺りを嗅ぎ回り、何の印を見つけたかに依存し -てスコア要素を追加します。この機能は -@code{gnus-use-adaptive-scoring} を @code{t} か @code{(line)} に -設定することで有効になります。もしスコアを、表題に現れる個別の単 -語をもとに適応させたければ、この変数を @code{(word)} に設定して -ください。両方の適応方法を使いたければ、この変数を@code{(word -line)} に設定してください。 - -@vindex gnus-default-adaptive-score-alist -@code{gnus-default-adaptive-score-alist} 変数をカスタマイズする -ことで、スコア付けの処理を完全に制御できます。例えば、このような -感じになります。 - -@lisp -(defvar gnus-default-adaptive-score-alist - '((gnus-unread-mark) - (gnus-ticked-mark (from 4)) - (gnus-dormant-mark (from 5)) - (gnus-del-mark (from -4) (subject -1)) - (gnus-read-mark (from 4) (subject 2)) - (gnus-expirable-mark (from -1) (subject -1)) - (gnus-killed-mark (from -1) (subject -3)) - (gnus-kill-file-mark) - (gnus-ancient-mark) - (gnus-low-score-mark) - (gnus-catchup-mark (from -1) (subject -1)))) -@end lisp - -見てお分かりのように、この連想リストの各要素は、キーとして印 (変 -数名かもしくは ``本当の'' 印 --- つまり文字)を持ちます。このキー -の後には任意の数のヘッダー/スコアの組が続きます。もしそのキーの -後にヘッダー/スコアの組が一つもなければ、そのキーが記事の印とし -てついている記事に対しては適応性スコアは実行されません。例えば上 -記の例では、@code{gnus-unread-mark} がついている記事は適応性スコ -アの登録項目にはなりません。 - -各記事はただ一つの印しか持ち得ないので、それぞれの記事にはこれら -の規則のうちただ一つしか適用されません。 - -@code{gnus-del-mark} を例に取りましょう --- この連想リストでの意 -味は、この印 (すなわち @samp{D} の印)がついている記事は全て、 -@code{From} ヘッダーをもとに -4 下げられ @code{Subject} で -1 下 -げられるスコア登録が追加されます。これをあなたの偏見に合わせて変 -更してください。 - -もし 10 個の記事に同じ subject で @code{gnus-del-mark} の印がつ -いていたとすると、この印に対する規則は十回適用されます。それはつ -まり、その subject は -1 の十倍のスコアを得ます。その値は、私が -大きく誤解していないかぎり、-10 のはずです。 - -もし自動期限切れ消去 (メール) グループ (@pxref{Expiring Mail}) -があれば、既読記事には全て @samp{E} 印がつけられます。これはおそ -らく、適応性スコア付けをちょっとばかり不可能にするので、自動期限 -切れ消去と適応性スコアは一緒にはうまくやっていけません。 - -スコアをつけられるヘッダーには @code{from}、 @code{subject}、 -@code{message-id}、 @code{references}、 @code{xref}、 -@code{lines}、@code{chars}、@code{date} があります。さらに -@code{followup} にもスコア付けできます。これは現在の記事の -@code{Message-ID} を使用して @code{References} ヘッダーにマッチ、 -すなわちこれに続いたスレッドにマッチする適応性スコア登録を作成し -ます。 - -また @code{thread} にもスコア付けすることができます。これはスレッ -ド中の全ての記事にスコア付けしようとします。@code{thread} のマッ -チは、@code{Message-ID} を使って記事の @code{References} ヘッダー -にマッチさせます。マッチが起こったらその記事の @code{Message-ID} -が @code{thread} 規則に追加されます。(ちょっと考えてみてください。 -後で頭痛薬を二粒お勧めしときますが) - -この機構を使うならば、ときどき記事を既読にしてしまう小さな変更を -避けるために、スコアファイルの @code{mark} アトムを何か小さい値 ---- ことによれば -300 くらいに設定しておいた方が良いです。 - -適応性スコアを一週間かそこら使ってくると、gnus はそれ相応に調教 -され、あなたが何も言わなくても、あなたの好きな投稿者を強調し、あ -まり好きではない投稿者を消去するようになるはずです。 - -どのグループにおいて適応性スコアを作動させるかは、スコアファイル -(@pxref{Score File Format}) を使うことによって制御できます。また -これを使って、違ったグループに対して違った規則を使うようにもでき -ます。 - -@vindex gnus-adaptive-file-suffix -適応性スコア登録項目は、グループ名に -@code{gnus-adaptive-file-suffix} を付加した名前のファイルに入れ -られます。初期設定値は @samp{ADAPT} です。 - -@vindex gnus-score-exact-adapt-limit -適応性スコアを行うときは、部分文字列一致やファジーな一致を行った -方が、おそらくほとんどの場合において良い結果が得られるでしょう。 -しかし、ヘッダーの一致した部分が短い場合、意図に反するような動作 -をする可能性が大きくなるので、 -@code{gnus-score-exact-adapt-limit} より短い長さしか一致しない場 -合は完全一致が行われます。この変数が @code{nil} であれば、この問 -題が起こらないように常に完全一致が行われます。 - -@vindex gnus-default-adaptive-word-score-alist -上で述べたように、個別の単語に対してもヘッダー全体に対しても適応 -を行うことができます。単語に対して適応を行った場合、 -@code{gnus-default-adaptive-word-score-alist} 変数によって、各単 -語に対してある印へどんなスコアを与えるかを指定します。 - -@lisp -(setq gnus-default-adaptive-word-score-alist - `((,gnus-read-mark . 30) - (,gnus-catchup-mark . -10) - (,gnus-killed-mark . -20) - (,gnus-del-mark . -15))) -@end lisp - -これが初期設定値です。単語に対する適応を有効にすると、 -@code{gnus-read-mark} の印のついた記事の表題に現れる全ての単語が、 -スコアに 30 点追加するというスコア規則を生み出します。 - -@vindex gnus-default-ignored-adaptive-words -@vindex gnus-ignored-adaptive-words -@code{gnus-default-ignored-adaptive-words} のリストに現れる単語 -は無視されます。無視したい単語を追加したいときは、この変数ではな -く @code{gnus-ignored-adaptive-words} リストの方を使ってください。 - -@vindex gnus-adaptive-word-syntax-table -スコア付けが終了したとき、@code{gnus-adaptive-word-syntax-table} -の文法表がその影響を受けます。これは標準の文法表と似ていますが、 -単語の構成要素とならない文字の数も考慮します。 - -@vindex gnus-adaptive-word-minimum -もし @code{gnus-adaptive-word-minimum} に数字が設定されていると、 -単語適応性スコア付け処理において、記事のスコアがこの数字よりも小 -さくなることはありません。初期設定値は @code{nil} です。 - -この機構をしばらく使ってみた後には、あなたがどんな単語が好きで -どんな単語が嫌いかを、この規則を通して診断する利用者精神分析命令 -@code{gnus-psychoanalyze-user} を書いてみると良いかもしれません。 -いや、良くないかな。 - -単語適応性スコア付けは非常に実験的なものであって、今後変更される -であろうということは心に留めておいてください。第一印象では、これ -は現状では全く使い物にならないように思えます。これをもっと使える -ようにするためには、(より厳密な統計的手法を巻き添えにして) さら -なる作業が必要となるでしょう。 - - -@node Home Score File -@section ホームスコアファイル - -新しいスコアファイル登録項目が入れられるスコアファイルは、ホーム -スコアファイル @dfn{home score file} と呼ばれます。これは通常 -(初期設定で) そのグループ用のスコアファイルになります。例えば、 -@samp{gnu.emacs.gnus} 用のホームスコアファイルは -@file{gnu.emacs.gnus.SCORE} となるわけです。 - -しかしながら、これはあなたのお望みではないかもしれません。たくさ -んのグループ間で共通のホームスコアファイルを共有すると便利なとき -が多いでしょう --- 例えば全ての @samp{emacs} グループで同じホー -ムスコアファイルを使うこともできます。 - -@vindex gnus-home-score-file -これを制御する変数が @code{gnus-home-score-file} です。これは以 -下の値を取り得ます。 - -@enumerate -@item -文字列。この場合このファイルが全てのグループでホームスコアファイ -ルとして使用されます。 - -@item -関数。この関数の結果がホームスコアファイルとして使用されます。こ -の関数はグループの名前を引数として呼び出されます。 - -@item -リスト。このリストの要素は以下の値を取り得ます。 - -@enumerate -@item -@var{(regexp file-name)}。@var{regexp} がグループ名にマッチすれ -ば、@var{file-name} がホームスコアファイルとして使用されます。 - -@item -関数。この関数が @code{nil} 以外を返せば、その返却値がホームスコ -アファイルとして使用されます。 - -@item -文字列。 この文字列をホームスコアファイルとして使用します。 -@end enumerate - -このリストの中からマッチするものを、最初から後ろの方に向かって探 -していきます。 - -@end enumerate - -というわけで、単に一個のスコアファイルを使いたい場合は、以下のよ -うにすればできます。 - -@lisp -(setq gnus-home-score-file - "my-total-score-file.SCORE") -@end lisp - -もし全 @samp{gnu} グループに対して @file{gnu.SCORE} を、 -全 @samp{rec} グループに対して @file{rec.SCORE} (等々) を使いた -ければ、このようにできます。 - -@lisp -(setq gnus-home-score-file - 'gnus-hierarchial-home-score-file) -@end lisp - -これは便利なようにあらかじめ提供されている関数です。 - -もし @samp{emacs} グループ用のスコアファイルと、それとは別の -@samp{comp} グループ用のスコアファイルを使い、他の全部のグループ -ではそれぞれ独自のスコアファイルを使いたいのであれば、 - -@lisp -(setq gnus-home-score-file - ;; All groups that match the regexp "\\.emacs" - '("\\.emacs" "emacs.SCORE") - ;; All the comp groups in one score file - ("^comp" "comp.SCORE")) -@end lisp - -@vindex gnus-home-adapt-file -@code{gnus-home-adapt-file} は @code{gnus-home-score-file} と全 -く同じように動作しますが、これは代わりに何をホーム適用スコアファ -イルにするかを指定します。新しい適用ファイル登録項目は全て、この -変数で指定されるファイルに入れられます。値には同じ文法が許されま -す。 - -@code{gnus-home-score-file} と @code{gnus-home-adapt-file} の使 -用に加えて、グループパラメータ (@pxref{Group Parameters}) とトピッ -クパラメータ (@pxref{Topic Parameters}) を使ってほぼ同様のことが -できます。グループ、トピックパラメータはこの変数よりも優先されます。 - - -@node Followups To Yourself -@section 自分自身へのフォローアップ - -Gnus は現在のバッファーから @code{Message-ID} ヘッダーを見つけ出 -すために二つの命令を提供しています。 そして gnus は、他の記事に -おける@code{References} ヘッダー中にこの @code{Message-ID} を使っ -ている得点を、スコア規則として追加します。これは実質的に、その記 -事へ返答した記事で、現在のバッファーにあるもの全てに対してスコア -を増加させます。これはあなたの言ったことに対してみんなが答えてく -れたとき、すぐにそれに目を向けたいときにとても便利ですね。 - -@table @code - -@item gnus-score-followup-article -@findex gnus-score-followup-article -これはあなた自身の記事に直接フォローアップした記事にスコアを加算 -します。 - -@item gnus-score-followup-thread -@findex gnus-score-followup-thread -これはあなたの記事より ``下'' のスレッドに現れる記事全てに対して -スコアを加算します。 -@end table - -@vindex message-sent-hook -これら二つの関数は、基本的にはどちらも @code{message-sent-hook} -のようなフックの中で使うためのものです。 - -あなたの自分の @code{Message-ID} をじっくりと眺めてみると、はじ -めの二、三文字は常に同じであることに気がつくでしょう。以下の二つ -は私のものです。 - -@example - - -@end example - -つまりこのマシン上での ``私の'' の識別は @samp{x6} であるという -ことです。これは使えます --- 以下の規則は私自身へのフォローアッ -プ全てに対してスコアを増加させるでしょう。 - -@lisp -("references" - ("" - 1000 nil r)) -@end lisp - -``あなたの'' が最初の二文字になるか最初の三文字になるかはシステ -ムに依存します。 - - -@node Scoring Tips -@section スコア付けの奥義 -@cindex scoring tips - -@table @dfn - -@item クロスポスト -@cindex crossposts -@cindex scoring crossposts -クロスポストのスコアを低くしたければ、マッチさせるべき行は -@code{Xref} ヘッダーです。 -@lisp -("xref" (" talk.politics.misc:" -1000)) -@end lisp - -@item 複数のクロスポスト -ある数、例えば 3 つ以上のグループにクロスポストされている記事の -スコアを低くしたければ、 -@lisp -("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r)) -@end lisp - -@item 本文へのマッチ -これは一般的にはあまり良い考えではありません --- それはとても長 -時間かかってしまうからです。実際 gnus は、それぞれの記事を個別に -サーバーから取得してこなければならないのです。でも、あなたはそれ -でもやりたいかも知れませんね。マッチさせるキーは三つ -(@code{Head}、@code{Body}、 @code{All}) あるのですが、スコアファ -イル毎に一つ選んでそれに固定した方が良いです。もし二つを使うと、 -それぞれの記事は @emph{二回} 取得されてしまいます。もし -@code{Head} からちょっとだけ、@code{Body} からちょっとだけマッチ -させたい、というのであれば、素直に @code{All} を使って全部マッチ -させてください。 - -@item 既読の印付け -ある一定数字以下のスコアを持つ記事には、おそらく既読の印をつけて -しまいたくなるでしょう。これは @file{all.SCORE} ファイルに以下の -ものを入れておくことによって最も簡単に実現できます。 -@lisp -((mark -100)) -@end lisp -@code{expunge} を使って同様のことを考えることもできます。 - -@item 否定文字クラス -もし @code{[^abcd]*} みたいなものを指定すると、たぶん期待通りの -結果は得られないでしょう。これは改行文字にもマッチしてしまい、えー -と、未知の世界まで続くかもしれません。代わりに@code{[^abcd\n]*} -を使ってください。 -@end table - - -@node Reverse Scoring -@section 逆スコア -@cindex reverse scoring - -もし、表題ヘッダーに @samp{Sex with Emacs} という文字がある記事 -だけを残して、その他の記事全てを消去してしまいたければ、スコアファ -イルに以下のようなものを入れることもできます。 - -@lisp -(("subject" - ("Sex with Emacs" 2)) - (mark 1) - (expunge 1)) -@end lisp - -そして @samp{Sex with Emacs} にマッチする全ての記事を集めて、残 -りを蹴飛ばすために既読の印をつけ、消去します。 - - -@node Global Score Files -@section グローバルスコアファイル -@cindex global score files - -間違いなく、他のニュースリーダーは ``グローバル削除ファイル -(global kill file)'' を持っています。これは普通、全てのグループ -に適用される、ユーザーのホームディレクトリーに格納されている一つ -の削除ファイル以上の何物でもありません。はん! ちっぽけなニュース -リーダーだね。弱すぎ。 - -僕がここで話しているのはグローバルスコアファイルです。全世界中か -らの、至る所からのユーザーによるスコアファイル、世界の国々を全て、 -巨大な一つの幸せなスコアファイル同盟に団結させるスコアファイル! -Ange-score! 新しくてテストしていない! - -@vindex gnus-global-score-files -他の人のスコアファイルを使うためにしなければならないことは、 -@code{gnus-global-score-files} 変数を設定することだけです。それ -ぞれのスコアファイル毎に、あるいはそれぞれのスコアファイルディレ -クトリ毎に対して一つの項目になります。Gnus はどのスコアファイル -をどのグループに使うのが適切であるかを自分で決定します。 - -例えば -@file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} -のスコアファイルと @file{/ftp@@ftp.some-where:/pub/score} ディレ -クトリにある全てのスコアファイルを使いたければ、 - -@lisp -(setq gnus-global-score-files - '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE" - "/ftp@@ftp.some-where:/pub/score/")) -@end lisp - -@findex gnus-score-search-global-directories -どうだい、簡単だろう? ディレクトリ名は @samp{/} で終わらなくては -なりません。これらのディレクトリは普通は、一回の gnus 使用期間中 -に一回だけしか読み込みません。もし遠隔ディレクトリを手動で再読み -込みする必要が出てきたら、 -@code{gnus-score-search-global-directories} 命令を使うことができ -ます。 - -ただし現時点では、このオプションを使うとグループに入るのがいくら -か遅くなります。(つまり --- かなり、ですけど) - -もしスコアファイルを、他の人たちに使ってもらうように維持したくなっ -てきたら、単にあなたのスコアファイルを匿名 FTP に置いて、世界中 -に公表してください。逆司会者になれるよ! その後に続いて間違いなく -起こる逆司会者戦争、すなわち人々の共感を勝ち取るための逆司会者の -戦いに参加することで、彼らのスコアファイルに間違った前提を使わせ -るように誘導するのだ! やった! これでネットは救われる! - -以下に、逆司会者なりたがりのための秘技をいくつか、即席で述べます。 - -@itemize @bullet - -@item -非常に多くの場所にクロスポストされている記事は間違いなく屑である。 -@item -一個の不適切な記事を減点するには、@code{Message-ID} で減点する。 -@item -特に素晴らしい投稿者たちは永続的な主役達として加算する。 -@item -そのグループの憲章無視の投稿を頻繁に繰り返す投稿者は、絶滅させて -しまって差し支えない。 -@item -@code{mark} と @code{expunge} アトムを設定し、汚らわしい記事を完 -全に葬り去る。 - -@item -消去のスコア項目を使ってファイルの大きさを小さく抑える。でもおそ -らくは、サイトによって古い記事を長期間保存するように、期限切れ消 -去の期間は長く取るでしょうけれども。 -@end itemize - -... 果たして他のニュースリーダーは将来、グローバルスコアファイル -をサポートするでしょうか? @emph{うふふ}。そう、どう考えてみたっ -て、Blue Wave や xrn や 1stReader とかいったニュースリーダーはス -コアをサポートするべきだね。今は固唾を飲んで見守ることにしましょ -うか? - - -@node Kill Files -@section 消去ファイル -@cindex kill files - -Gnus はまだ、あのうざったい古い消去ファイルをサポートしています。 -実際消去ファイルの項目はもう消してもよいのですが、それは Daniel -Quinlan がスコアファイルを考え出す前に私が書いたものなので、その -コードはまだ残っています。 - -要するに、消去処理はスコア処理よりもかなり遅いので (私の言いたい -のは @emph{ものすごく})、あなたの消去ファイルはスコアファイルに -書き換えた方が良いかもしれません。 - -いずれにせよ、消去ファイルは普通の @code{emacs-lisp} ファイルです。 -このファイルの中にはどんな形式でも入れることができます。つまり消 -去ファイルをグループに入ったときに実行する一種の原始的なフック関 -数のように使うことができます。まあそれがあまりいい方法ではないと -してもね。 - -通常の消去ファイルは以下のようになります。 - -@lisp -(gnus-kill "From" "Lars Ingebrigtsen") -(gnus-kill "Subject" "ding") -(gnus-expunge "X") -@end lisp - -これは私が書いた全ての記事に既読の印をつけ、概略バッファから印の -ついた記事を削除します。とっても便利です。あなたもそう思うでしょ。 - -他のプログラムでは全く違う消去ファイルの構文を使っています。もし -gnus が @code{rn} の消去ファイルらしきものに出会ったら、何とかそ -れを解釈しようとします。 - -GNUS 消去ファイルを編集するための二つの概略バッファ関数がありま -す。 - -@table @kbd - -@item M-k -@kindex M-k (Summary) -@findex gnus-summary-edit-local-kill -そのグループの消去ファイルを編集する -(@code{gnus-summary-edit-local-kill})。 - -@item M-K -@kindex M-K (Summary) -@findex gnus-summary-edit-global-kill -一般消去ファイルを編集する -(@code{gnus-summary-edit-global-kill})。 -@end table - -消去ファイルを編集する二つのグループモード関数があります。 - -@table @kbd - -@item M-k -@kindex M-k (Group) -@findex gnus-group-edit-local-kill -そのグループの消去ファイルを編集する -(@code{gnus-group-edit-local-kill})。 - -@item M-K -@kindex M-K (Group) -@findex gnus-group-edit-global-kill -一般消去ファイルを編集する (@code{gnus-group-edit-global-kill})。 -@end table - -消去ファイル変数。 - -@table @code -@item gnus-kill-file-name -@vindex gnus-kill-file-name -@samp{soc.motss} グループ用の消去ファイルは通常 -@file{soc.motss.KILL} という名前です。このファイル名を得るために -グループ名に付加される接尾辞は、@code{gnus-kill-file-name} 変数 -で与えられます。``グローバル'' 消去ファイルは (スコアファイルの -意味での ``グローバル'' じゃないよ、もちろん) 単に @file{KILL}と -いう名前です。 - -@vindex gnus-kill-save-kill-file -@item gnus-kill-save-kill-file -この変数が @code{nil} 以外であれば、gnus は処理の後に消去ファイ -ルを保存します。これは期限切れ削除を行う消去を使っているときに必 -要です。 - -@item gnus-apply-kill-hook -@vindex gnus-apply-kill-hook -@findex gnus-apply-kill-file-unless-scored -@findex gnus-apply-kill-file -グループに消去ファイルを適用するために呼び出されるフック。これは -初期設定では @code{(gnus-apply-kill-file)} です。もし同じグルー -プに対してスコアファイルがある場合には消去ファイルを無視したけれ -ば、このフックを @code{(gnus-apply-kill-file-unless-scored)} に -設定します。消去ファイルを処理させたくなければ、この変数を -@code{nil} に設定してください。 - -@item gnus-kill-file-mode-hook -@vindex gnus-kill-file-mode-hook -消去ファイルモードバッファ内で呼び出されるフック。 - -@end table - - -@node Converting Kill Files -@section 消去ファイルの変換 -@cindex kill files -@cindex converting kill files - -あなたが古い消去ファイルをどっさり持っているのであれば、それらを -スコアファイルに変換したくなるでしょう。もしそれらが ``普通の'' -やつであれば、@file{gnus-kill-to-score.el} パッケージを使うこと -ができます。そうでなければ、手で変換しなければならないでしょう。 - -消去ファイルからスコアファイルへの変換パッケージは、標準では -gnus には含まれません。 -@file{http://www.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score} -から入手することができます。 - -もしあなたの消去ファイルが非常に複雑なものであれば --- それに -@code{gnus-kill} 形式以外のものがたくさん含まれていれば、それら -を手で変換しなければなりません。あるいは単にそれらを、そのままに -しておいてください。Gnus は以前同様にそれらを使ってくれるでしょ -う。 - - -@node GroupLens -@section GroupLens -@cindex GroupLens - -GoupLens は、毎日作成される多くの量のニュース記事から質の良い記事を他の -人と共に見つけるのを助けるための共同選別機構です。 - -これを達成するために、GroupLens 機構はあなたが既に読んだ記事に対する意見 -を、同じような事をした他の人の意見と結合して、それぞれの未読ニュース記事 -に個人化された予言を与えます。GroupLens を仲人のようなものだと見なしてく -ださい。GroupLens はあなたがどのように記事の価値を付けるかを見て、同じよ -うに記事の価値を付ける人を探します。一度あなたの意見と一致する人を発見す -れば、予言の形で、それらの人が記事をどう思うかをあなたに告げます。あなた -はこの予言を記事を読みたいかどうかを決定するのに役立てる事ができます。 - -@menu -* Using GroupLens:: どのように gnus に GroupLens を使わせるよう - にするか。 -* Rating Articles:: GropLens にあなたがどのように値を付けるかを - 知らせる。 -* Displaying Predictions:: GropuLens によって与えられた予言を表示する。 -* GroupLens Variables:: GoupLens をカスタマイズする。 -@end menu - - -@node Using GroupLens -@subsection GroupLens を使う - -GroupLens を使うためには、ローカルの Better Bit Berau (BBB) に筆名 -(pseudonym) を登録しなければなりません。 -@samp{http://www.cs.umn.edu/Research/GroupLens/bbb.html} が現在、ちまた -に存在する唯一の better bit です。 - -登録した後で、いくつかの変数を設定する必要があります。 - -@table @code - -@item gnus-use-grouplens -@vindex gnus-use-grouplens -この変数を @code{nil} でない値に設定すると、Gnus が全ての GroupLens 関連 -関数をフックするようになります。 - -@item grouplens-pseudonym -@vindex grouplens-pseudonym -この変数は Better Bit Bureau に登録したときにもらった筆名に設定されるべ -きです。 - -@item grouplens-newsgroups -@vindex grouplens-newsgroups -GroupLens の予言を得たいと思うグループのリストです。 - -@end table - -これが起き上がって GroupLens を実行するために必要な最低限の設定です。一 -度登録すると、GroupLens はあなたに他の人が考える平均に基づいたスコアをあ -なたに提供することを始めます。しかし、GroupLens の本当の利益を受けるため -には、自分自身で記事の値付けを始めなければなりません。そうすると、 -GroupLens があなたに提供するスコアはあなたが普段納得するような意見を持っ -た人が既に値を付けた基づいて個人化されます。 - - -@node Rating Articles -@subsection Rating Articles - -GroupLens では、記事は1から5まででそれを含んだ範囲で値を付けられます。1 -は帯域の無駄遣いのようなものだと考えられ、5は記事が本当に良いと考えられ -るいう事を意味します。あなたが自分自身に尋ねる基本的な質問は、``1から5の -範囲の中で、これと同じような記事をもっと読みたいだろうか?'' です。 - -GroupLens で、記事の値を登録するための4つの方法があります。 - -@table @kbd - -@item r -@kindex r (GroupLens) -@findex bbb-summary-rate-article -この関数は1から5の範囲の値付けの入力を促進します。 - -@item k -@kindex k (GroupLens) -@findex grouplens-score-thread -この関数は値付けの入力を促進し、スレッドの全ての記事を値付けます。これは -rec.humor にあるようなあの長い間続くスレッドに対して非常に役に立ちます。 - -@end table - -次の2つの命令、@kbd{n} と @kbd{,} は、あなたが読んでいる記事のスコアにな -る数値接頭引数をとります。 - -@table @kbd - -@item 1-5 n -@kindex n (GroupLens) -@findex grouplens-next-unread-article -記事の値を付けて、次の未読記事に移動します。 - -@item 1-5 , -@kindex , (GroupLens) -@findex grouplens-best-unread-article -記事の値を付けて次の一番高いスコアの未読記事に移動します。 - -@end table - -もし現在の記事にスコア4を付け、次の記事に移動したいのであれば、@kbd{4 n} -と叩いてください。 - - -@node Displaying Predictions -@subsection 予言表示 - -GroupLens はあなたがニュース記事をどれくらい気に入るかの予言をします。 -GroupLens からの予言は1から5の範囲にあり、1が最悪で5が最良です。 -GroupLens からの予言を変数 @code{gnus-grouplens-override-scoring} によっ -て制御される3つの内の1つによって使う事ができます。 - -@vindex gnus-grouplens-override-scoring -grouplens で予言を表示するために3つの方法があります。GroupLens のスコア -を普通の gnus スコア機構に貢献するか、上書きするかを選ぶ事ができます。上 -書きが初期設定です。しかし、gnus のスコアを grouplens のスコアに足すのを -好む人もいます。分離スコアの振る舞いを得るためには、 -@code{gnus-grouplens-override-scoring} を @code{'separate} に設定する必 -要があります。GroupLens の予言と grouplens スコアを結合するためにはそれ -を @code{'override} に設定し、スコアを結合するためには -@code{gnus-grouplens-override-scoring} を @code{'combine} に設定します。 -結合付加機能を用いるときは、@code{grouplens-prediction-offset} と -@code{grouplens-score-scale-factor} の値を設定したいと思うでしょう。 - -@vindex grouplens-prediction-display -どちらの場合でも、GroupLens は2,3の予言がどのよう表示されたいかの選択を -与えます。予言の表示は変数 @code{grouplens-prediction-display} によって -制御されます。 - -以下のものがその変数で有効な値です。 - -@table @code -@item prediction-spot -予言が高いほど、右の方に @samp{*} が表示されます。 - -@item confidence-interval -数字の確信 (confidence) 間隔です。 - -@item prediction-bar -予言が高いほど、棒が長くなります。 - -@item confidence-bar -数字確信です。 - -@item confidence-spot -確信が高いほど点が大きくなります。 - -@item prediction-num -普通の昔ながらの数値です。 - -@item confidence-plus-minus -予言の +/- 確信です。 - -@end table - - -@node GroupLens Variables -@subsection GroupLens 変数 - -@table @code - -@item gnus-summary-grouplens-line-format -GropuLens 拡張の概略バッファで使われる概略行様式です。普通の概略行様式が -受け付けるものと同じ指定を受け付けます (@pxref{Summary Buffer Lines})。 -初期設定は@samp{%U%R%z%l%I%(%[%4L: %-20,20n%]%) %s\n} です。 - -@item grouplens-bbb-host -bbbd サーバーが実行されているホストです。@samp{goruplens.cs.umn.edu} が -初期設定です。 - -@item grouplens-bbb-port -bbbd サーバーが実行されているホストのポートです。初期値は9000です。 - -@item grouplens-score-offset -予言から差し引きされる値です。つまり、意味のあるスコアにするために予言の -値からこの数字を引き算します。初期値は0です。 - -@item grouplens-score-scale-factor -利用者はこの変数を使って GroupLens のスコアを拡大する事ができます。掛け -算の要素は差し引きの後に適用されます。初期値は1です。 - -@end table - - -@node Advanced Scoring -@section 上級スコア付け - -表題や From ヘッダーにスコアを付けるのは十分素敵ですが、ある人特定の題に -関して言っている事にだけ本当に興味がある場合はどうすれば良いのでしょう? -もしくは、Aさんが Bさんにフォローアップしているときに言っている事を読み -たくないけれど、Cさんにフォローアップしているときは何を言っているかを知 -りたいという場合は? - -上級スコア法則を使う事で、任意の複雑なスコアの付け方を作成する事ができま -す。 - -@menu -* Advanced Scoring Syntax:: 定義。 -* Advanced Scoring Examples:: どのように見えるか。 -* Advanced Scoring Tips:: それを最大限利用する。 -@end menu - - -@node Advanced Scoring Syntax -@subsection 上級スコア付け構文 - -普通のスコア法則は法則の最初の要素に文字列があります。上級スコア付け法則 -は最初の要素にリストがあります。2番目のリストは最初の要素が @code{nil} -でない値に評価されたときに適用されます。 - -これらのリストは3つの論理作用子からなっており、それらは1方向作用子で、色々 -な合致作用子です。 - -論理作用子: - -@table @code -@item & -@itemx and -この論理作用子はそれぞれの引数を @code{false} に評価されるものを見つける -まで評価し、それから停止します。全ての引数が @code{true} の値に評価され -た場合は、この作用子は @code{true} を返します。 - -@item | -@itemx or -この論理作用子はそれぞれの引数を @code{true} に評価されるものを見つける -まで評価します。もしどの引数も @code{true} でないと、この作用子は -@code{false} を返します。 - -@item ! -@itemx not -@itemx \254 -この論理作用子は単一の引数のみをとります。それはその引数の値の論理否定を -返します。 - -@end table - -引数をスコア付けされている現在の記事の祖先に適用する @dfn{間接作用子} が -あります。例えば、@code{1-} は現在の記事の親にもスコア法則を適用します。 -@code{2-} は現在の記事の祖父母にスコア法則を適用します。代わりに、 -@code{^^} を書く事もでき、この時、@code{^} (キャラット) (carat) の数はど -のくらい祖先の記事までさかのぼるかを示します。 - -最後に、合致作用子があります。これらが本当の仕事をするものです。合致作用 -子はヘッダー名の文字列で、その後に合致と合致の型が続きます。典型的な合致 -作用子は @samp{("form" "Lars Ingebrigtsen" s)} のようなものです。ヘッダー -名は単純なスコア付けをするときのものと同じで、合致の型も同じです。 - - -@node Advanced Scring Examples -@subsection 上級スコア付けの例 - -Lars が Gnus に関して話をしているときに彼によって書かれた記事のスコアを -増やしたいとしましょう: - -@example -((& - ("from" "Lars Ingebrigtsen") - ("subject" "Gnus")) - 1000) -@end example - -ね、とても単純でしょ? - -長い記事を書いているときは、時々何か素敵な事を言います: - -@example -((& - ("from" "Lars Ingebrigtsen") - (| - ("subject" "Gnus") - ("lines" 100 >))) - 1000) -@end example - -しかし、彼が Reig Eigil Logge によって書かれたものに反応しているときは、 -彼が書いたものを読みたくありません: - -@example -((& - ("from" "Lars Ingebrigtsen") - (1- ("from" "Reig Eigir Logge"))) - -100000) -@end example - -Redmondo が消えた靴下について書いたときにフォローアップした全ての人はス -コアが上げられますが、それは彼らが白い靴下について語っているときのみです。 -しかし、Lars が靴下について話をしているときは、たいていあまりおもしろく -ありません: - -@example -((& - (1- - (& - ("from" "redmondo@@.*no" r) - ("body" "disappearing.*socks" t))) - (! ("from" "Lars Ingebrigtsen")) - ("body" "white.*socks")) - 1000) -@end example - -可能性は無限大です。 - - -@node Advanced Scoring Tips -@subsection 上級スコアのちょっとした秘訣 - -@code{&} と @code{|} 論理作用子は、短縮回路論理を行います。すなわち、そ -の作用の結果が明らかになって時点で、引数を実行過程にかける事を止めます。 -例えば、@code{&} の引数の評価が @code{false} になると、残りの引数を評価 -する目的は存在しなくなります。これは遅い合致 (@samp{body} や -@samp{header}) を最後に持ってきて、速い合致 (@samp{from} や -@samp{subject}) を最初に持ってくるべきであるという事を意味します。 - -間接作用子 (@code{1-} など) はそれらの引数をスレッドの1世代前に作用する -ようにします。次のような事をすれば: - -@example -... -(1- - (1- - ("from" "lars"))) -... -@end example - -これは ``現在の記事の祖父母の from ヘッダーにスコアを付ける'' という事を -意味します。間接はとても速いですが、次の方よりも: - -@example -(1- - (& - ("from" "Lars") - ("subject" "Gnus"))) -@end example - -次の方が良いです: - -@example -(& - (1- ("from" "Lars")) - (1- ("subject" "Gnus"))) -@end example - - -@node Score Decays -@section スコア腐敗 -@cindex score decays -@cindex decays - -スコアは再現無く膨れ上がる傾向がある事に気付くかもしれません。特に、適応 -スコアを使っているときは。スコアが大きくなりすぎると、それらは意味を失い -ます---それらは単に最大を通り越してしまって、それを意味のある方法で使う -事は難しくなります。 - -@vindex gnus-decay-scores -@findex gnus-decay-score -@vindex gnus-score-decay-function -Gnus はこの問題の解決を助けるためにスコアを腐らせる機構を提供します。ス -コアファイルは読み込まれ、 @code{gnus-decay-scores} が @code{nil} でない -と、gnus はスコアファイルを腐敗機構を通し、全ての永続でないスコア法則の -スコアを下げます。腐敗自身は関数 @code{gnus-score-decay-function} によっ -て実行され、初期設定は @code{gnus-decay-score} です。以下はその関数の定 -義です: - -@lisp -(defun gnus-decay-score (score) - "Decay SCORE according to `gnus-score-decay-constant' and `gnus-score-decay-scale'." - (floor - (- score - (* (if (< score 0) 1 -1) - (min (abs score) - (max gnus-score-decay-constant - (* (abs score) - gnus-score-decay-scale))))))) -@end lisp - -@vindex gnus-score-decay-scale -@vindex gnus-score-decay-constant -@code{gnus-score-decay-constant} は初期値として3を持ちで、 -@code{gnus-score-decay-scale} は初期値として0.05を持ちます。これは以下の -ような事を引き起こします: - -@enumerate -@item --3から3の間のスコアはこの関数が呼ばれたときに0に設定されます。 - -@item -3から60までの間の大きさのスコアは3つ減らされます。 - -@item -60より大きいスコアはスコアの5%に減らされます。 -@end enumerate - -もしこの腐敗関数を好きでないなら、自分自身の関数を書いてください。それは -腐敗するべきスコアを唯一の引数として呼ばれ、整数であるべき新しいスコアを -返さなければなりません。 - -Gnus は1日に1回スコアを腐敗させようとします。例えば、もし gnus を4日間実 -行していないと、gnus は4回スコアを腐らせます。 - - diff --git a/texi/gnus-terms.ja b/texi/gnus-terms.ja deleted file mode 100644 index 52046f1..0000000 --- a/texi/gnus-terms.ja +++ /dev/null @@ -1,177 +0,0 @@ -原文と訳語のリストです。検討不十分な点もあります。 -変更される可能性は大いにあります。 - -単語 訳語 - -active 作動する、作動している -active file 現状ファイル、アクティブファイル -adapt 適用 -adaptive 適応性 -address アドレス -agent エージェント -alist 連想リスト -alternate 代替 -anything group なんでもグループ -archive アーカイブ -asterisk アスタリスク -auto-save file 自動保存ファイル -backend バックエンド -batch 一括 -bogus group 偽グループ -browse ブラウズ、参照、概観 -buffer バッファ -buggy 故障がち -category 分類 -collapsed group name 短縮グループ名 -combined groups 結合グループ -command 命令 -command line コマンド行 -configure (shell script) 環境設定 -copy コピー、複写 -crosspost 相互投稿、クロスポスト -current 現在の -customize カスタマイズ -default 初期設定/初期設定値 (ディフォルト)? -directory ディレクトリー -dormant article 保留記事 -dotted pair ドットペア、ドット対 -download ダウンロード -draft 下書き -dribble file ドリブルファイル -duplicate suppression 重複抑制 -entry 登録、登録項目 -expire 期限切れ消去、期限切れ削除 -expunge 消去 -field フィールド -firewall 防壁 -flush cache キャッシュを書き込む -follow up フォローアップ -foreign 外部 -format 様式、フォーマット -frame フレーム -gateway ゲートウェイ -global グローバル -Gnus gnus -group buffer グループバッファ -header ヘッダー -highlight ハイライト -history 履歴 -home score file ホームスコアファイル -hook フック -inbox インボックス -indentation 字下げ -interactive command 対話命令 -interface インターフェース -kiboze kiboze -key (alist) キー -keymap キーマップ -kiboze kiboze -kill 削除、切る、キル -kill file 削除ファイル、(消去ファイル) -level レベル -load ロード -local variable 局所変数、ローカル変数 -lower lebel 小さいレベル -mail メール -mailbox メールボックス -mail-to-news gateway メールからニューズへのゲートウェイ -mark 印 -meta-variable メタ変数 -message メッセージ -method 方法 -minor mode マイナーモード -modeline モード行 -moderated モデレーテッド、修正された -native 基本 -native method 基本方法 -native server 基本サーバー -news ニュース (ニューズ) -newsgroup ニュースグループ (ニューズグループ) -news reader ニュースリーダ -numeric prefix 数字接頭引数 -operator 作用子 -outgoing 差出用 -overview 概観ファイル -pack 梱包する -parameter パラメータ -plugged 差し込み -point ポイント、カーソル位置 -predicate function 述語関数 -prefix 接頭引数 -process プロセス -process mark (プロセスマーク)、プロセス印 -process/prefix convention プロセス/接頭引数の習慣 (プロセスマーク・プレフィックスルール) -prompt 入力促進 -rank ランク -region (リージョン) -release リリース -remote system 遠隔システム -reply packet 返信パケット -response packet 返信パケット -startup file 起動ファイル -score スコア -score entry スコア登録 -secondary server 二次サーバー -select method 選択方法 -server サーバー -sesssion セッション -shortcut 短縮打鍵 -solid group 固定グループ -sort ソート 並べ替え -SOUP packets SOUP パケット -startup file 起動ファイル -sub-topic 副トピック -submap サブマップ -subscribe 購読 -subscribedness 購読度 -summary buffer 概略バッファ -superseding 代替 -syntax table 文法表 -text properties テキスト属性 -thread スレッド -ticked article (印付き記事) -toggle トグル 切り替え -token -topic トピック -unplugged 切り離し -unsubscribe 非購読 -user 利用者 -value (alist) 値 -web ウェブ -Web browser ウェブブラウザー -Web search ウェブ検索 -yank 貼り付け -zombie ゾンビ - -summary 概略 -body ボディ -head ヘッダー -subject 表題 -match マッチ -encode 符号化 -character set 文字集合 -hook フック -keystroke キー操作 -reply 返信 -button ボタン -buttonizing ボタン機能 -syntax table シンタックステーブル -format 様式 -wash 洗濯 -page breaking 改頁 -page delimiter 頁区切り文字 -page 頁 - -directory ディレクトリー -SOUP packets SOUP パケット -auto-save file 自動保存ファイル -predicate function 述語関数 -news reader ニュースリーダ -native server 基本サーバー - -secondary server 二次サーバー -pack 梱包する -active file アクティブファイル -incoming 入ってくる・入ってきた -response packet 返信パケット -reply packet 返信パケット -- 1.7.10.4