From a9b8be68858cd519861cd96b69f681a1e6d10d18 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 18 Sep 2000 00:25:28 +0000 Subject: [PATCH] Synch with Gnus. --- contrib/rfc2015.el | 9 +- lisp/ChangeLog | 82 +++ lisp/dgnushack.el | 2 +- lisp/gnus-art.el | 61 +- lisp/gnus-sum.el | 21 +- lisp/gnus-topic.el | 43 +- lisp/mm-decode.el | 6 +- lisp/mm-view.el | 10 +- lisp/mml.el | 15 +- lisp/qp.el | 4 +- lisp/rfc2047.el | 7 +- lisp/smiley.el | 142 +++- make.bat | 13 +- texi/ChangeLog | 19 + texi/gnus-ja.texi | 12 +- texi/gnus.texi | 17 +- texi/gnusref.tex | 1885 +++++++++++++++++++++++++++------------------------- texi/refcard.tex | 239 ++++--- 18 files changed, 1496 insertions(+), 1091 deletions(-) diff --git a/contrib/rfc2015.el b/contrib/rfc2015.el index 00b51e3..d182bbb 100644 --- a/contrib/rfc2015.el +++ b/contrib/rfc2015.el @@ -1,17 +1,18 @@ ;;; rfc2015.el --- MIME Security with Pretty Good Privacy (PGP) -;; Copyright (c) 2000 Free Software Foundation, Inc. +;; Copyright (c) 2000 Shenghuo Zhu ;; Author: Shenghuo Zhu ;; Keywords: PGP MIME -;; This file is a part of GNU Emacs. +;; This file is not (yet) a part of GNU Emacs. Hope it +;; will be a part of oGnus distribution, then GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; This file 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 +;; This file 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. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e2daee9..90802f0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,85 @@ +2000-09-17 01:13:46 ShengHuo ZHU + + * rfc2047.el (rfc2047-q-encoding-alist): Remove = and _ from the + pattern. Avoid using 8 bit chars. + * qp.el (quoted-printable-encode-region): Avoid using 8 bit chars. + +2000-09-16 15:57:42 ShengHuo ZHU + + * smiley.el (smiley-buffer-ems, smiley-create-glyph-ems, + smiley-toggle-extent-ems, smiley-toggle-extents-ems, + smiley-toggle-buffer-ems): New functions for Emacs 21. Toggle + functions are not implemented yet. + + * dgnushack.el (dgnushack-compile): Remove smiley.el and + x-overlay.el from the FSF Emacs black list. + +2000-09-15 21:10:20 ShengHuo ZHU + + * mm-decode.el (mm-inlined-types): Add application/emacs-lisp. + (mm-inline-media-tests): Ditto. + (mm-automatic-display): Ditto. + * mm-view.el (mm-display-inline-fontify): Generalize from + mm-display-patch-inline. + (mm-display-patch-inline): Use it. + (mm-display-elisp-inline): Ditto. + +2000-09-15 14:03:00 ShengHuo ZHU + + * gnus-topic.el (gnus-topic-find-groups): Add recursive parameter. + (gnus-topic-unmark-topic): Ditto. + (gnus-topic-mark-topic): Ditto. + (gnus-topic-get-new-news-this-topic): Use it. + +2000-09-15 09:01:40 ShengHuo ZHU + + * gnus-art.el (gnus-treat-display-xface): By default, Emacs 21 + display xface. + +2000-08-23 02:54:46 Katsumi Yamaoka + + * gnus-group.el (gnus-group-rename-group): Inhibit renaming of + zombie or killed groups. + +2000-09-15 00:09:56 ShengHuo ZHU + + * mml.el (mml-preview): Reinsert unibyte content. + (mml-parse-1): Remove with-unibyte-current-buffer. + (mml-generate-mime-1): Ditto. + * gnus-msg.el (gnus-summary-mail-forward): Ditto. + * message.el (message-forward): Ditto. + +2000-09-14 23:13:50 ShengHuo ZHU + + * gnus-art.el (article-de-quoted-unreadable): Guess charset from + original article buffer. + (article-de-base64-unreadable): Ditto. + (article-wash-html): Ditto. + +2000-09-14 18:55:30 ShengHuo ZHU + + * gnus-msg.el (gnus-summary-mail-forward): Disable multibyte + unless forward-show-mml. + +2000-09-14 14:48:57 ShengHuo ZHU + + * gnus-sum.el (gnus-summary-save-parts-type-history): New. + (gnus-summary-save-parts-last-directory): New. + (gnus-summary-save-parts): Save history. + +2000-09-14 Ben Gertzfield + + * gnus-sum.el (gnus-summary-save-parts-default-mime): New + variable. + (gnus-summary-save-parts): Use it. + +2000-09-14 11:31:28 ShengHuo ZHU + + * gnus-art.el (gnus-article-setup-buffer): Clean handle-alist. + * gnus-sum.el (gnus-summary-exit): Ditto. + (gnus-summary-exit-no-update): Ditto. + (gnus-summary-show-article): Ditto. + 2000-09-14 08:42:48 ShengHuo ZHU * nndoc.el (nndoc-dissect-mime-parts-sub): Remove diff --git a/lisp/dgnushack.el b/lisp/dgnushack.el index f6d583c..175239d 100644 --- a/lisp/dgnushack.el +++ b/lisp/dgnushack.el @@ -216,7 +216,7 @@ Modify to suit your needs.")) (error '("gnus-bbdb.el"))) (unless (featurep 'xemacs) '("gnus-xmas.el" "gnus-picon.el" "messagexmas.el" - "nnheaderxm.el" "smiley.el" "gnus-ml.el")) + "nnheaderxm.el" "gnus-ml.el")) (when (and (fboundp 'md5) (subrp (symbol-function 'md5))) '("md5.el")))) (while (setq file (pop files)) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 6103504..9308c95 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -902,11 +902,12 @@ See the manual for details." (put 'gnus-treat-overstrike 'highlight t) (defcustom gnus-treat-display-xface - (if (or (and gnus-xemacs (featurep 'xface)) - (eq 'x-face-mule-gnus-article-display-x-face - gnus-article-x-face-command)) - 'head - nil) + (and (or (and (fboundp 'image-type-available-p) + (image-type-available-p 'xbm)) + (and gnus-xemacs (featurep 'xface)) + (eq 'x-face-mule-gnus-article-display-x-face + gnus-article-x-face-command)) + 'head) "Display X-Face headers. Valid values are nil, t, `head', `last', an integer or a predicate. See the manual for details." @@ -1657,9 +1658,21 @@ If FORCE, decode the article whether it is marked as quoted-printable or not." (interactive (list 'force)) (save-excursion - (let ((buffer-read-only nil) - (type (gnus-fetch-field "content-transfer-encoding")) - (charset gnus-newsgroup-charset)) + (let ((buffer-read-only nil) type charset) + (if (gnus-buffer-live-p gnus-original-article-buffer) + (with-current-buffer gnus-original-article-buffer + (setq type + (gnus-fetch-field "content-transfer-encoding")) + (let* ((ct (gnus-fetch-field "content-type")) + (ctl (and ct + (ignore-errors + (mail-header-parse-content-type ct))))) + (setq charset (and ctl + (mail-content-type-get ctl 'charset))) + (if (stringp charset) + (setq charset (intern (downcase charset))))))) + (unless charset + (setq charset gnus-newsgroup-charset)) (when (or force (and type (string-match "quoted-printable" (downcase type)))) (article-goto-body) @@ -1670,9 +1683,21 @@ or not." If FORCE, decode the article whether it is marked as base64 not." (interactive (list 'force)) (save-excursion - (let ((buffer-read-only nil) - (type (gnus-fetch-field "content-transfer-encoding")) - (charset gnus-newsgroup-charset)) + (let ((buffer-read-only nil) type charset) + (if (gnus-buffer-live-p gnus-original-article-buffer) + (with-current-buffer gnus-original-article-buffer + (setq type + (gnus-fetch-field "content-transfer-encoding")) + (let* ((ct (gnus-fetch-field "content-type")) + (ctl (and ct + (ignore-errors + (mail-header-parse-content-type ct))))) + (setq charset (and ctl + (mail-content-type-get ctl 'charset))) + (if (stringp charset) + (setq charset (intern (downcase charset))))))) + (unless charset + (setq charset gnus-newsgroup-charset)) (when (or force (and type (string-match "base64" (downcase type)))) (article-goto-body) @@ -1698,7 +1723,19 @@ If FORCE, decode the article whether it is marked as base64 not." (interactive) (save-excursion (let ((buffer-read-only nil) - (charset gnus-newsgroup-charset)) + charset) + (if (gnus-buffer-live-p gnus-original-article-buffer) + (with-current-buffer gnus-original-article-buffer + (let* ((ct (gnus-fetch-field "content-type")) + (ctl (and ct + (ignore-errors + (mail-header-parse-content-type ct))))) + (setq charset (and ctl + (mail-content-type-get ctl 'charset))) + (if (stringp charset) + (setq charset (intern (downcase charset))))))) + (unless charset + (setq charset gnus-newsgroup-charset)) (article-goto-body) (save-window-excursion (save-restriction diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index a86eedd..51a0bfb 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -936,6 +936,14 @@ For example: ((1 . cn-gb-2312) (2 . big5))." :type '(choice (const nil) integer)) +(defcustom gnus-summary-save-parts-default-mime "image/.*" + "*A regexp to match MIME parts when saving multiple parts of a message +with gnus-summary-save-parts (X m). This regexp will be used by default +when prompting the user for which type of files to save." + :group 'gnus-summary + :type 'regexp) + + ;;; Internal variables (defvar gnus-article-mime-handles nil) @@ -953,6 +961,9 @@ For example: ((1 . cn-gb-2312) (2 . big5))." (defvar gnus-sort-gathered-threads-function 'gnus-thread-sort-by-number "Function called to sort the articles within a thread after it has been gathered together.") +(defvar gnus-summary-save-parts-type-history nil) +(defvar gnus-summary-save-parts-last-directory nil) + ;; Avoid highlighting in kill files. (defvar gnus-summary-inhibit-highlight nil) (defvar gnus-newsgroup-selected-overlay nil) @@ -9322,8 +9333,14 @@ save those articles instead." "Save parts matching TYPE to DIR. If REVERSE, save parts that do not match TYPE." (interactive - (list (read-string "Save parts of type: " "image/.*") - (read-file-name "Save to directory: " nil nil t) + (list (read-string "Save parts of type: " + (or (car gnus-summary-save-parts-type-history) + gnus-summary-save-parts-default-mime) + 'gnus-summary-save-parts-type-history) + (setq gnus-summary-save-parts-last-directory + (read-file-name "Save to directory: " + gnus-summary-save-parts-last-directory + nil t)) current-prefix-arg)) (gnus-summary-iterate n (let ((gnus-display-mime-function nil) diff --git a/lisp/gnus-topic.el b/lisp/gnus-topic.el index 498b9f8..a113d14 100644 --- a/lisp/gnus-topic.el +++ b/lisp/gnus-topic.el @@ -193,8 +193,9 @@ If TOPIC, start with that topic." (beginning-of-line) (get-text-property (point) 'gnus-active))) -(defun gnus-topic-find-groups (topic &optional level all lowest) - "Return entries for all visible groups in TOPIC." +(defun gnus-topic-find-groups (topic &optional level all lowest recursive) + "Return entries for all visible groups in TOPIC. +If RECURSIVE is t, return groups in its subtopics too." (let ((groups (cdr (assoc topic gnus-topic-alist))) info clevel unread group params visible-groups entry active) (setq lowest (or lowest 1)) @@ -232,7 +233,18 @@ If TOPIC, start with that topic." (cdr (assq 'visible params))) ;; Add this group to the list of visible groups. (push (or entry group) visible-groups))) - (nreverse visible-groups))) + (setq visible-groups (nreverse visible-groups)) + (when recursive + (if (eq recursive t) + (setq recursive (cdr (gnus-topic-find-topology topic)))) + (mapcar (lambda (topic-topology) + (setq visible-groups + (nconc visible-groups + (gnus-topic-find-groups + (caar topic-topology) + level all lowest topic-topology)))) + (cdr recursive))) + visible-groups)) (defun gnus-topic-previous-topic (topic) "Return the previous topic on the same level as TOPIC." @@ -1293,30 +1305,37 @@ If PERMANENT, make it stay shown in subsequent sessions as well." (setcar (cdr (cadr topic)) 'visible) (gnus-group-list-groups))))) -(defun gnus-topic-mark-topic (topic &optional unmark) - "Mark all groups in the topic with the process mark." - (interactive (list (gnus-group-topic-name))) +(defun gnus-topic-mark-topic (topic &optional unmark recursive) + "Mark all groups in the TOPIC with the process mark. +If RECURSIVE is t, mark its subtopics too." + (interactive (list (gnus-group-topic-name) + nil + (and current-prefix-arg t))) (if (not topic) (call-interactively 'gnus-group-mark-group) (save-excursion - (let ((groups (gnus-topic-find-groups topic gnus-level-killed t))) + (let ((groups (gnus-topic-find-groups topic gnus-level-killed t nil + recursive))) (while groups (funcall (if unmark 'gnus-group-remove-mark 'gnus-group-set-mark) (gnus-info-group (nth 2 (pop groups))))))))) -(defun gnus-topic-unmark-topic (topic &optional unmark) - "Remove the process mark from all groups in the topic." - (interactive (list (gnus-group-topic-name))) +(defun gnus-topic-unmark-topic (topic &optional dummy recursive) + "Remove the process mark from all groups in the TOPIC. +If RECURSIVE is t, unmark its subtopics too." + (interactive (list (gnus-group-topic-name) + nil + (and current-prefix-arg t))) (if (not topic) (call-interactively 'gnus-group-unmark-group) - (gnus-topic-mark-topic topic t))) + (gnus-topic-mark-topic topic t recursive))) (defun gnus-topic-get-new-news-this-topic (&optional n) "Check for new news in the current topic." (interactive "P") (if (not (gnus-group-topic-p)) (gnus-group-get-new-news-this-group n) - (gnus-topic-mark-topic (gnus-group-topic-name)) + (gnus-topic-mark-topic (gnus-group-topic-name) nil (and n t)) (gnus-group-get-new-news-this-group))) (defun gnus-topic-move-matching (regexp topic &optional copyp) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 85f3a5a..19a79cd 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -118,6 +118,7 @@ ("text/x-patch" mm-display-patch-inline (lambda (handle) (locate-library "diff-mode"))) + ("application/emacs-lisp" mm-display-elisp-inline identity) ("text/html" mm-inline-text (lambda (handle) @@ -152,7 +153,7 @@ (defcustom mm-inlined-types '("image/.*" "text/.*" "message/delivery-status" "message/rfc822" - "message/partial" + "message/partial" "application/emacs-lisp" "application/pgp-signature") "List of media types that are to be displayed inline." :type '(repeat string) @@ -161,7 +162,8 @@ (defcustom mm-automatic-display '("text/plain" "text/enriched" "text/richtext" "text/html" "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*" - "message/rfc822" "text/x-patch" "application/pgp-signature") + "message/rfc822" "text/x-patch" "application/pgp-signature" + "application/emacs-lisp") "A list of MIME types to be displayed automatically." :type '(repeat string) :group 'mime-display) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 45ed4d2..5bf4f09 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -260,11 +260,11 @@ (error nil)) (delete-region ,(point-min-marker) ,(point-max-marker))))))))) -(defun mm-display-patch-inline (handle) +(defun mm-display-inline-fontify (handle mode) (let (text) (with-temp-buffer (mm-insert-part handle) - (diff-mode) + (funcall mode) (font-lock-fontify-buffer) (when (fboundp 'extent-list) (map-extents (lambda (ext ignored) @@ -274,6 +274,12 @@ (setq text (buffer-string))) (mm-insert-inline handle text))) +(defun mm-display-patch-inline (handle) + (mm-display-inline-fontify handle 'diff-mode)) + +(defun mm-display-elisp-inline (handle) + (mm-display-inline-fontify handle 'emacs-lisp-mode)) + (provide 'mm-view) ;; mm-view.el ends here diff --git a/lisp/mml.el b/lisp/mml.el index 86faed8..1d71f4b 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -126,10 +126,7 @@ The function is called with one parameter, which is the generated part.") warn t)) (setq raw (cdr (assq 'raw tag)) point (point) - contents (if raw - (mm-with-unibyte-current-buffer - (mml-read-part (eq 'mml (car tag)))) - (mml-read-part (eq 'mml (car tag)))) + contents (mml-read-part (eq 'mml (car tag))) charsets (if raw nil (mm-find-mime-charset-region point (point)))) (when (and (not raw) (memq nil charsets)) @@ -352,8 +349,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." coded (buffer-string)))) (mml-insert-mime-headers cont type charset encoding) (insert "\n") - (mm-with-unibyte-current-buffer - (insert coded)))) + (insert coded))) ((eq (car cont) 'external) (insert "Content-Type: message/external-body") (let ((parameters (mml-parameter-string @@ -852,7 +848,12 @@ If RAW, don't highlight the article." (replace-match "\n")) (mml-to-mime) (if raw - (mm-disable-multibyte) + (when (fboundp 'set-buffer-multibyte) + (let ((s (buffer-string))) + ;; Insert the content into unibyte buffer. + (erase-buffer) + (mm-disable-multibyte) + (insert s))) (let ((gnus-newsgroup-charset (car message-posting-charset))) (run-hooks 'gnus-article-decode-hook) (let ((gnus-newsgroup-name "dummy")) diff --git a/lisp/qp.el b/lisp/qp.el index ea2a818..5979006 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -98,7 +98,9 @@ encode lines starting with \"From\"." ;; Encode all the non-ascii and control characters. (goto-char (point-min)) (while (and (skip-chars-forward - (or class "^\000-\007\013\015-\037\200-\377=")) + ;; Avoid using 8bit characters. = is \075. + ;; Equivalent to "^\000-\007\013\015-\037\200-\377=" + (or class "\010-\012\014\040-\074\076-\177")) (not (eobp))) (insert (prog1 diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index 7a86311..0b10d04 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -79,8 +79,11 @@ Valid encodings are nil, `Q' and `B'.") "Alist of RFC2047 encodings to encoding functions.") (defvar rfc2047-q-encoding-alist - '(("\\(From\\|Cc\\|To\\|Bcc\||Reply-To\\):" . "-A-Za-z0-9!*+/=_") - ("." . "^\000-\007\011\013\015-\037\200-\377=_?")) + '(("\\(From\\|Cc\\|To\\|Bcc\||Reply-To\\):" . "-A-Za-z0-9!*+/") + ;; = (\075), _ (\137), ? (\077) are used in the encoded word. + ;; Avoid using 8bit characters. Some versions of Emacs has bug! + ;; Equivalent to "^\000-\007\011\013\015-\037\200-\377=_?" + ("." . "\010\012\014\040-\074\076\100-\136\140-\177")) "Alist of header regexps and valid Q characters.") ;;; diff --git a/lisp/smiley.el b/lisp/smiley.el index 7778567..0f71178 100644 --- a/lisp/smiley.el +++ b/lisp/smiley.el @@ -37,16 +37,22 @@ ;; The smilies were drawn by Joe Reiss . (eval-when-compile (require 'cl)) - -(require 'annotations) -(require 'messagexmas) (require 'custom) +(eval-and-compile + (when (featurep 'xemacs) + (require 'annotations) + (require 'messagexmas))) + (defgroup smiley nil - "Turn :-)'s into real images (XEmacs)." + "Turn :-)'s into real images." :group 'gnus-visual) -(defcustom smiley-data-directory (message-xmas-find-glyph-directory "smilies") +;; FIXME: Where is the directory when using Emacs? +(defcustom smiley-data-directory + (if (featurep 'xemacs) + (message-xmas-find-glyph-directory "smilies") + "/usr/local/lib/xemacs/xemacs-packages/etc/smilies") "*Location of the smiley faces files." :type 'directory :group 'smiley) @@ -153,7 +159,6 @@ above them." :group 'smiley) (defvar smiley-glyph-cache nil) -(defvar smiley-running-xemacs (string-match "XEmacs" emacs-version)) (defvar smiley-map (make-sparse-keymap "smiley-keys") "Keymap to toggle smiley states.") @@ -169,26 +174,30 @@ above them." ["Toggle All Smilies" (smiley-toggle-extents ,e) t]))) (defun smiley-create-glyph (smiley pixmap) - (and - smiley-running-xemacs - (or - (cdr-safe (assoc pixmap smiley-glyph-cache)) - (let* ((xpm-color-symbols - (and (featurep 'xpm) - (append `(("flesh" ,smiley-flesh-color) - ("features" ,smiley-features-color) - ("tongue" ,smiley-tongue-color)) - xpm-color-symbols))) - (glyph (make-glyph - (list - (cons (if (featurep 'gtk) 'gtk 'x) - (expand-file-name pixmap smiley-data-directory)) - (cons 'mswindows - (expand-file-name pixmap smiley-data-directory)) - (cons 'tty smiley))))) - (setq smiley-glyph-cache (cons (cons pixmap glyph) smiley-glyph-cache)) - (set-glyph-face glyph 'default) - glyph)))) + (or + (cdr-safe (assoc pixmap smiley-glyph-cache)) + (let* ((xpm-color-symbols + (and (featurep 'xpm) + (append `(("flesh" ,smiley-flesh-color) + ("features" ,smiley-features-color) + ("tongue" ,smiley-tongue-color)) + xpm-color-symbols))) + (glyph (make-glyph + (list + (cons (if (featurep 'gtk) 'gtk 'x) + (expand-file-name pixmap smiley-data-directory)) + (cons 'mswindows + (expand-file-name pixmap smiley-data-directory)) + (cons 'tty smiley))))) + (setq smiley-glyph-cache (cons (cons pixmap glyph) smiley-glyph-cache)) + (set-glyph-face glyph 'default) + glyph))) + +(defun smiley-create-glyph-ems (smiley pixmap) + (condition-case e + (create-image (expand-file-name pixmap smiley-data-directory)) + (error nil))) + ;;;###autoload (defun smiley-region (beg end) @@ -213,6 +222,14 @@ above them." (reveal-annotation ant) (set-extent-property ext 'invisible t))))))) +;; FIXME:: +(defun smiley-toggle-extent-ems (event) + "Toggle smiley at given point. +Note -- this function hasn't been implemented yet." + (interactive "e") + (error "This function hasn't been implemented yet.") +) + (defun smiley-toggle-extents (e) (interactive "e") (map-extents @@ -229,6 +246,12 @@ above them." nil)) (event-buffer e))) +;; FIXME:: +(defun smiley-toggle-extents-ems (e) + (interactive "e") + (error "This function hasn't been implemented yet.") +) + ;;;###autoload (defun smiley-buffer (&optional buffer st nd) (interactive) @@ -295,6 +318,44 @@ Mouse button3 - menu")) (make-annotation ")" end 'text)) (goto-char end))))))))) +;; FIXME: No popup menu, no customized color +(defun smiley-buffer-ems (&optional buffer st nd) + (interactive) + (when window-system + (save-excursion + (when buffer + (set-buffer buffer)) + (let ((buffer-read-only nil) + (alist (if (symbolp smiley-regexp-alist) + (symbol-value smiley-regexp-alist) + smiley-regexp-alist)) + (case-fold-search nil) + entry regexp beg group file) + (dolist (overlay (overlays-in (or st (point-min)) + (or nd (point-max)))) + (when (overlay-get overlay 'smiley) + (remove-text-properties (overlay-start overlay) + (overlay-end overlay) '(display)) + (delete-overlay overlay))) + (goto-char (or st (point-min))) + (setq beg (point)) + ;; loop through alist + (while (setq entry (pop alist)) + (setq regexp (car entry) + group (cadr entry) + file (caddr entry)) + (goto-char beg) + (while (re-search-forward regexp nd t) + (let* ((start (match-beginning group)) + (end (match-end group)) + (glyph (smiley-create-glyph nil file)) + (overlay (make-overlay start end))) + (when glyph + (add-text-properties start end + `(display ,glyph)) + (overlay-put overlay 'smiley glyph) + (goto-char end))))))))) + (defun smiley-end-paren-p (start end) "Try to guess whether the current smiley is an end-paren smiley." (save-excursion @@ -334,6 +395,32 @@ With arg, turn displaying on if and only if arg is positive." (set-extent-property (cdar on) 'invisible nil) (setq on (cdr on)))))) +;; Simply removing all smiley if existing. +;; FIXME: make it work as the one in XEmacs. +(defun smiley-toggle-buffer-ems (&optional arg buffer st nd) + "Toggle displaying smiley faces. +With arg, turn displaying on if and only if arg is positive." + (interactive "P") + (save-excursion + (when buffer + (set-buffer buffer)) + (let (found) + (dolist (overlay (overlays-in (or st (point-min)) + (or nd (point-max)))) + (when (overlay-get overlay 'smiley) + (remove-text-properties (overlay-start overlay) + (overlay-end overlay) '(display)) + (setq found t))) + (unless found + (smiley-buffer buffer st nd))))) + +(unless (featurep 'xemacs) + (defalias 'smiley-create-glyph 'smiley-create-glyph-ems) + (defalias 'smiley-toggle-extent 'smiley-toggle-extent-ems) + (defalias 'smiley-toggle-extents 'smiley-toggle-extents-ems) + (defalias 'smiley-buffer 'smiley-buffer-ems) + (defalias 'smiley-toggle-buffer 'smiley-toggle-buffer-ems)) + (defvar gnus-article-buffer) ;;;###autoload (defun gnus-smiley-display (&optional arg) @@ -345,7 +432,8 @@ With arg, turn displaying on if and only if arg is positive." (save-restriction (widen) (article-goto-body) - (smiley-toggle-buffer arg (current-buffer) (point) (point-max))))) + (let (buffer-read-only) + (smiley-toggle-buffer arg (current-buffer) (point) (point-max)))))) (provide 'smiley) diff --git a/make.bat b/make.bat index 9e9936c..cce7352 100755 --- a/make.bat +++ b/make.bat @@ -28,17 +28,22 @@ set PWD= if "%1" == "" goto usage +rem Emacs 20.7 no longer includes emacs.bat. Use emacs.exe if the batch file is +rem not present -- this also fixes the problem about too many parameters on Win9x. +set emacs=emacs.exe +if exist %1\bin\emacs.bat set emacs=emacs.bat + cd lisp -call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile +call %1\bin\%emacs% -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile if not "%2" == "copy" goto info attrib -r %1\lisp\gnus\* copy *.el* %1\lisp\gnus :info cd ..\texi -call %1\bin\emacs.bat -batch -q -no-site-file message.texi -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer -call %1\bin\emacs.bat -batch -q -no-site-file emacs-mime.texi -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer -call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer +call %1\bin\%emacs% -batch -q -no-site-file message.texi -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer +call %1\bin\%emacs% -batch -q -no-site-file emacs-mime.texi -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer +call %1\bin\%emacs% -batch -q -no-site-file gnus.texi -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer if not "%2" == "copy" goto done copy gnus %1\info copy gnus-?? %1\info diff --git a/texi/ChangeLog b/texi/ChangeLog index 35e74d5..91e231f 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,22 @@ +2000-09-17 Felix Natter + + * gnusref.tex: New version. + + * refcard.tex: New version. + +2000-09-17 18:03:52 ShengHuo ZHU + + * gnus.texi (Article Hiding): Doc fix as suggested by Felix Natter + . + +2000-06-22 Michael Totschnig + + * gnus.texi (Agent Basics): Doc fix. + +2000-09-14 Jason R. Mastaler + + * gnus.texi (Mail Source Specifiers): Use $HOME. + 2000-08-14 Kai Grossjohann * gnus.texi (Mail Source Specifiers): Replace `@paragraph' with diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index d47674a..0025ad5 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -6984,7 +6984,8 @@ Fonts})$B!#F1$8%a%C%;!<%8$NCf$KJ#?t$N5-;v$+$i$N0zMQ$,$"$k$H!"(Bgnus $B$O$=$l$ $B=|$7$^$9!#$3$l$i$O$$$/$D$+$N%a!<%j%s%0%j%9%H$N%5!<%P!<$,A4$F(B $B$N(B @code{Subject} $B%X%C%@!<$N:G=i$K$D$1$kJ8;zNs$G$9(B---$BNc$($P!"(B @samp{[zebra 4711]}$B!#J8;zNs$N=i$a$K$"$k(B @samp{Re: } $B$O!":o=|$r9T$J$&A0$K(B -$BD7$S1[$5$l$^$9!#(B +$BD7$S1[$5$l$^$9!#(B@code{gnus-list-identifiers} $B$K(B @code{\\(..\\)} $B$r4^$a$F(B +$B$O$$$1$^$;$s!#(B @table @code @@ -10559,7 +10560,7 @@ POP $B%a!<%k%5!<%P!/dev/null && cat $TMP @end example @@ -11505,6 +11506,7 @@ Gnus $B$O5-;v$rI=<($9$k$H$-$K$=$l$r@vBu$9$k$?$a$K2aEY$N4X?t$rDs6!$7$F$$$^(B $B@P4o;~Be$N%a!<%k%X%C%@!<$r;H$C$F$$$k?M$K$ONI$$;v$@$H;W$$$^$9!#$3$N4X?t$O(B $B@55,I=8=(B @code{nnmail-list-identifiers} $B$K9gCW$9$kJ8;zNs$rl$G$9$0$K?7$7$$%K%e!<%9$rFI$`$3$H$b$G$-$^$9$7!"%K%e!<%9$r%m!<(B $B%+%k%^%7%s$K%@%&%s%m!<%I$9$k$3$H$b$G$-$^$9!#8eH$7$F$/$@$5$$!#(B) +@kbd{g} $B$r2!$7$F?7Ce%a!<%k$r8!::$7$F$+$i(B @kbd{J s} $B$GA4%0%k!<%W$+$iE,@Z(B +$B$J5-;v$rA4$FH$7$F$/$@$5$$!#(B) @item $B5-;v$ruBV$K$5$;!"(B diff --git a/texi/gnus.texi b/texi/gnus.texi index 4adc42d..31b8c96 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -7130,10 +7130,11 @@ Signature}. @kindex W W l (Summary) @findex gnus-article-hide-list-identifiers @vindex gnus-list-identifiers -Strip list identifiers specified in @code{gnus-list-identifiers}. -These are strings some mailing list servers add to the beginning of -all @code{Subject} headers---for example, @samp{[zebra 4711]}. Any -leading @samp{Re: } is skipped before stripping. +Strip list identifiers specified in @code{gnus-list-identifiers}. These +are strings some mailing list servers add to the beginning of all +@code{Subject} headers---for example, @samp{[zebra 4711]}. Any leading +@samp{Re: } is skipped before stripping. @code{gnus-list-identifiers} +may not contain @code{\\(..\\)}. @table @code @@ -11080,7 +11081,7 @@ The @samp{getmail} script would look something like the following: # flu@@iki.fi MOVEMAIL=/usr/lib/emacs/20.3/i386-redhat-linux/movemail -TMP=~/Mail/tmp +TMP=$HOME/Mail/tmp rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP @end example @@ -12067,7 +12068,8 @@ Some list servers add an identifier---for example, @samp{(idm)}---to the beginning of all @code{Subject} headers. I'm sure that's nice for people who use stone age mail readers. This function will remove strings that match the @code{nnmail-list-identifiers} regexp, which can -also be a list of regexp. +also be a list of regexp. @code{nnmail-list-identifiers} may not contain +@code{\\(..\\)}. For instance, if you want to remove the @samp{(idm)} and the @samp{nagnagnag} identifiers: @@ -14176,7 +14178,8 @@ Source Specifiers}). @item You can then read the new news immediately, or you can download the news -onto your local machine. If you want to do the latter, you press @kbd{J +onto your local machine. If you want to do the latter, you press @kbd{g} +to check if there are any new news and then @kbd{J s} to fetch all the eligible articles in all the groups. (To let Gnus know which articles you want to download, @pxref{Agent Categories}.) diff --git a/texi/gnusref.tex b/texi/gnusref.tex index 0ee9168..b8e863d 100644 --- a/texi/gnusref.tex +++ b/texi/gnusref.tex @@ -1,944 +1,1041 @@ -% include file for the Gnus refcard and booklet +% -*- mode: latex; TeX-master: "refcard.tex" -*- + % include file for the Gnus refcard and booklet \newlength{\keycolwidth} \newenvironment{keys}[1]% #1 is the widest key - {\nopagebreak%\noindent% - \settowidth{\keycolwidth}{#1}% - \addtolength{\keycolwidth}{\tabcolsep}% - \addtolength{\keycolwidth}{-\columnwidth}% - \begin{tabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}% +{\nopagebreak%\noindent% + \settowidth{\keycolwidth}{#1}% + \addtolength{\keycolwidth}{\tabcolsep}% + \addtolength{\keycolwidth}{-\columnwidth}% + \begin{tabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}% {\end{tabular}\\} -% uncomment the first definition if you do not want pagebreaks in maps -%\newcommand{\esamepage}{\samepage} + % uncomment the first definition if you do not want pagebreaks in maps + %\newcommand{\esamepage}{\samepage} \newcommand{\esamepage}{} \newcommand*{\B}[1]{{\bf#1})} % bold l)etter \newcommand{\Title}{% -\begin{center} -{\bf\LARGE Gnus \progver\ Reference \Guide\\} -%{\normalsize \Guide\ version \refver} -\end{center} -} + \begin{center} + {\bf\LARGE Gnus \progver\ Reference \Guide\\} + %{\normalsize \Guide\ version \refver} + \end{center} + } \newcommand*{\Logo}[1]{\centerline{% -\makebox[\logoscale\logowidth][l]{\vbox to \logoscale\logoheight -{\vfill\special{psfile=gnuslogo.#1}}\vspace{-\baselineskip}}}} + \makebox[\logoscale\logowidth][l]{\vbox to \logoscale\logoheight + {\vfill\special{psfile=gnuslogo.#1}}\vspace{-\baselineskip}}}} \newcommand{\Copyright}{% -\begin{center} -Copyright \copyright\ 1995 Free Software Foundation, Inc.\\* -Copyright \copyright\ 1995 \author.\\* -Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\* -Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne -Ingebrigtsen.\\* -and the Emacs Help Bindings feature (C-h b).\\* -Gnus logo copyright \copyright\ 1995 Luis Fernandes.\\* -\end{center} - -Permission is granted to make and distribute copies of this reference -\guide{} provided the copyright notice and this permission are preserved on -all copies. Please send corrections, additions and suggestions to the -current maintainer's email address. \Guide{} last edited on \date. -} + \begin{center} + Copyright \copyright\ 1995 Free Software Foundation, Inc.\\* + Copyright \copyright\ 1995 \author.\\* + Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\* + Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne + Ingebrigtsen.\\* + and the Emacs Help Bindings feature (C-h b).\\* + Gnus logo copyright \copyright\ 1995 Luis Fernandes.\\* + \end{center} + + Permission is granted to make and distribute copies of this reference + \guide{} provided the copyright notice and this permission are preserved on + all copies. Please send corrections, additions and suggestions to the + current maintainer's email address. \Guide{} last edited on \date. + } \newcommand{\Notes}{% -\subsection*{Notes} -{\esamepage -Gnus is complex. Currently it has some 346 interactive (user-callable) -functions. Of these 279 are in the two major modes (Group and -Summary/Article). Many of these functions have more than one binding, some -have 3 or even 4 bindings. The total number of keybindings is 389. So in -order to save 40\% space, every function is listed only once on this -\guide, under the ``more logical'' binding. Alternative bindings are given -in parentheses in the beginning of the description. - -Many Gnus commands are affected by the numeric prefix. Normally you enter a -prefix by holding the Meta key and typing a number, but in most Gnus modes -you don't need to use Meta since the digits are not self-inserting. The -prefixed behavior of commands is given in [brackets]. Often the prefix is -used to specify: - -\quad [distance] How many objects to move the point over. - -\quad [scope] How many objects to operate on (including the current one). - -\quad [p/p] The ``Process/Prefix Convention'': If a prefix is given then it -determines how many objects to operate on. Else if there are some objects -marked with the process mark \#, these are operated on. Else only the -current object is affected. - -\quad [level] A group subscribedness level. Only groups with a lower or -equal level will be affected by the operation. If no prefix is given, -`gnus-group-default-list-level' is used. If -`gnus-group-use-permanent-levels', then a prefix to the `g' and `l' -commands will also set the default level. - -\quad [score] An article score. If no prefix is given, -`gnus-summary-default-score' is used. \\*[\baselineskip] -% some keys -\begin{keys}{C-c C-i} -M-x gnus & start Gnus. \\ -M-x gnus-no-server & start Gnus without trying to contact server. \\ -C-c C-i & Go to the Gnus online {\bf info}.\\ -C-c C-b & Send a Gnus {\bf bug} report.\\ -\end{keys} -}} + \subsection*{Notes} + {\esamepage + Gnus is complex. Currently it has some 346 interactive (user-callable) + functions. Of these 279 are in the two major modes (Group and + Summary/Article). Many of these functions have more than one binding, some + have 3 or even 4 bindings. The total number of keybindings is 389. So in + order to save 40\% space, every function is listed only once on this + \guide, under the ``more logical'' binding. Alternative bindings are given + in parentheses in the beginning of the description. + + Many Gnus commands are affected by the numeric prefix. Normally you enter a + prefix by holding the Meta key and typing a number, but in most Gnus modes + you don't need to use Meta since the digits are not self-inserting. The + prefixed behavior of commands is given in [brackets]. Often the prefix is + used to specify: + + \quad [distance] How many objects to move the point over. + + \quad [scope] How many objects to operate on (including the current one). + + \quad [p/p] The ``Process/Prefix Convention'': If a prefix is given then it + determines how many objects to operate on. Else if there are some objects + marked with the process mark \#, these are operated on. Else only the + current object is affected. + + \quad [level] A group subscribedness level. Only groups with a lower or + equal level will be affected by the operation. If no prefix is given, + `gnus-group-default-list-level' is used. If + `gnus-group-use-permanent-levels', then a prefix to the `g' and `l' + commands will also set the default level. + + \quad [score] An article score. If no prefix is given, + `gnus-summary-default-score' is used. \\*[\baselineskip] + % some keys + \begin{keys}{C-c C-i} + M-x gnus & start Gnus. \\ + M-x gnus-no-server & start Gnus without trying to connect to server + (i.e. to read mail). \\ + M-x gnus-unplugged & start Gnus in \texttt{unplugged}-mode + (first see the manual, C-c C-i g Gnus Unplugged RET).\\ + % + C-c C-i & Go to the Gnus online {\bf info}.\\ + C-c C-b & Send a Gnus {\bf bug} report.\\ + \end{keys} + }} \newcommand{\GroupLevels}{% -The table below assumes that you use the default Gnus levels. -Fill your user-specific levels in the blank cells.\\[1\baselineskip] -\begin{tabular}{|c|l|l|} -\hline -Level & Groups & Status \\ -\hline -1 & draft/mail groups & \\ -2 & mail groups & \\ -3 & & subscribed \\ -4 & & \\ -5 & default list level & \\ -\hline -6 & & unsubscribed \\ -7 & & \\ -\hline -8 & & zombies \\ -\hline -9 & & killed \\ -\hline -\end{tabular}} + The table below assumes that you use the default Gnus levels. + Fill your user-specific levels in the blank cells.\\[1\baselineskip] + \begin{tabular}{|c|l|l|} + \hline + Level & Groups & Status \\ + \hline + 1 & draft/mail groups & \\ + 2 & mail groups & \\ + 3 & & subscribed \\ + 4 & & \\ + 5 & default list level & \\ + \hline + 6 & & unsubscribed \\ + 7 & & \\ + \hline + 8 & & zombies \\ + \hline + 9 & & killed \\ + \hline + \end{tabular}} \newcommand{\MarkCharacters}{% -{\esamepage If a command directly sets a mark, it is shown in parentheses.\\* -\newlength{\markcolwidth} -\settowidth{\markcolwidth}{` '}% widest character -\addtolength{\markcolwidth}{4\tabcolsep} -\addtolength{\markcolwidth}{-\columnwidth} -\newlength{\markdblcolwidth} -\setlength{\markdblcolwidth}{\columnwidth} -\addtolength{\markdblcolwidth}{-2\tabcolsep} -\begin{tabular}{|c|p{-\markcolwidth}|} -\hline -\multicolumn{2}{|p{\markdblcolwidth}|}{{\bf ``Read'' Marks.} - All these marks appear in the first column of the summary line, and so - are mutually exclusive.}\\ -\hline -` ' & (M-u, M SPC, M c) Not read.\\ -! & (!, M !, M t) Ticked (interesting).\\ -? & (?, M ?) Dormant (only followups are interesting).\\ -E & (E, M e, M x) {\bf Expirable}. Only has effect in mail groups.\\ -G & (C, B DEL) Canceled article (or deleted in mailgroups).\\ -\hline\hline -\multicolumn{2}{|p{\markdblcolwidth}|}{The marks below mean that the article - is read (killed, uninteresting), and have more or less the same effect. - Some commands however explicitly differentiate between them (e.g.\ M - M-C-r, adaptive scoring).}\\ -\hline -r & (d, M d, M r) Deleted (marked as {\bf read}).\\ -C & (M C; M C-c; M H; c, Z c; Z n; Z C) Killed by {\bf catch-up}.\\ -F & SOUPed article. See the manual.\\ -O & {\bf Old} (read in a previous session).\\ -K & (k, M k; C-k, M K) {\bf Killed}.\\ -M & Article marked as read by duplicate suppression.\\ -Q & Article is part of a sparse thread (see ``Threading'' in the manual).\\ -R & {\bf Read} (viewed in actuality).\\ -X & Killed by a kill file.\\ -Y & Killed due to low score.\\ -\hline\multicolumn{2}{c}{\vspace{1ex}}\\\hline -\multicolumn{2}{|p{\markdblcolwidth}|}{{\bf Marks not affecting visibility}}\\ -\hline -\# & (\#, M \#, M P p) Processable (will be affected by the next operation). -[2]\\ -A & {\bf Answered} (followed-up or replied). [2]\\ -* & Cached. [2]\\ -S & Saved. [2]\\ -+ & Over default score. [3]\\ -$-$ & Under default score. [3]\\ -$=$ & Has children (thread underneath it). Add `\%e' to -`gnus-summary-line-format'. [3]\\ -\hline -\end{tabular} -}} + {\esamepage If a command directly sets a mark, it is shown in parentheses.\\* + \newlength{\markcolwidth} + \settowidth{\markcolwidth}{` '}% widest character + \addtolength{\markcolwidth}{4\tabcolsep} + \addtolength{\markcolwidth}{-\columnwidth} + \newlength{\markdblcolwidth} + \setlength{\markdblcolwidth}{\columnwidth} + \addtolength{\markdblcolwidth}{-2\tabcolsep} + \begin{tabular}{|c|p{-\markcolwidth}|} + \hline + \multicolumn{2}{|p{\markdblcolwidth}|}{{\bf ``Read'' Marks.} + All these marks appear in the first column of the summary line, and so + are mutually exclusive.}\\ + \hline + ` ' & (M-u, M SPC, M c) Not read.\\ + ! & (!, M !, M t) Ticked (interesting).\\ + ? & (?, M ?) Dormant (only followups are interesting).\\ + E & (E, M e, M x) {\bf Expirable}. Only has effect in mail groups.\\ + G & (C, B DEL) Canceled article (or deleted in mailgroups).\\ + \hline\hline + \multicolumn{2}{|p{\markdblcolwidth}|} + {The marks below mean that the article + is read (killed, uninteresting), and have more or less the same effect. + Some commands however explicitly differentiate between them (e.g.\ M + M-C-r, adaptive scoring).}\\ + \hline + r & (d, M d, M r) Deleted (marked as {\bf read}).\\ + C & (M C; M C-c; M H; c, Z c; Z n; Z C) Killed by {\bf catch-up}.\\ + F & SOUPed article. See the manual.\\ + O & {\bf Old} (read in a previous session).\\ + K & (k, M k; C-k, M K) {\bf Killed}.\\ + M & Article marked as read by duplicate suppression.\\ + Q & Article is part of a sparse thread (see ``Threading'' + in the manual).\\ + R & {\bf Read} (viewed in actuality).\\ + X & Killed by a kill file.\\ + Y & Killed due to low score.\\ + \hline\multicolumn{2}{c}{\vspace{1ex}}\\\hline + \multicolumn{2}{|p{\markdblcolwidth}|} + {{\bf Marks not affecting visibility}}\\ + \hline + \# & (\#, M \#, M P p) Processable (will be affected by the next operation). + [2]\\ + A & {\bf Answered} (followed-up or replied). [2]\\ + * & Cached. [2]\\ + S & Saved. [2]\\ + + & Over default score. [3]\\ + $-$ & Under default score. [3]\\ + $=$ & Has children (thread underneath it). Add `\%e' to + `gnus-summary-line-format'. [3]\\ + \hline + \end{tabular} + }} \newcommand{\GroupModeGeneral}{% -\begin{keys}{C-c M-C-x} -RET & (=) Enter this group. [Prefix: how many (read) articles to fetch. -Positive: newest articles, negative: oldest ones; non-numerical: fetch all articles, not just unread]\\ -M-RET & Enter group quickly.\\ -M-SPC & Same as RET but does not expunge and hide dormants.\\ -M-C-RET & Enter group without any processing, changes will not be permanent.\\ -SPC & Select this group and display the first (unread) article. [Same -prefix as above.]\\ -? & Give a very short help message.\\ -$<$ & Go to the beginning of the Group buffer.\\ -$>$ & Go to the end of the Group buffer.\\ -, & Jump to the lowest-level group with unread articles.\\ -. & Jump to the first group with unread articles.\\ -xx & Enter the Server buffer mode.\\ -a & Post an {\bf article} to a group.\\ -b & Find {\bf bogus} groups and delete them.\\ -c & Mark all unticked articles in this group as read ({\bf catch-up}). -[p/p]\\ -g & Check the server for new articles ({\bf get}). [level]\\ -M-g & Check the server for new articles in this group ({\bf get}). [p/p]\\ -j & {\bf Jump} to a group.\\ -m & {\bf Mail} a message to someone.\\ -n & Go to the {\bf next} group with unread articles. [distance]\\ -M-n & Go to the {\bf next} group on the same or lower level. -[distance]\\ -p & (DEL) Go to the {\bf previous} group with unread articles. -[distance]\\ -M-p & Go to the {\bf previous} group on the same or lower level. [distance]\\ -q & {\bf Quit} Gnus.\\ -r & Re-read the init file ({\bf reset}).\\ -s & {\bf Save} the `.newsrc.eld' file (and `.newsrc' if -`gnus-save-newsrc-file').\\ -z & Suspend (kill all buffers of) Gnus.\\ -B & {\bf Browse} a foreign server.\\ -C & Mark all articles in this group as read ({\bf Catch-up}). [p/p]\\ -F & {\bf Find} new groups and process them.\\ -N & Go to the {\bf next} group. [distance]\\ -P & Go to the {\bf previous} group. [distance]\\ -Q & {\bf Quit} Gnus without saving any startup (.newsrc) files.\\ -R & {\bf Restart} Gnus.\\ -Z & Clear the dribble buffer.\\ -M-c & Clear data from group (marks and list of read articles). \\ -C-c C-s & {\bf Sort} the groups by name, number of unread articles, or level -(depending on `gnus-group-sort-function').\\ -C-c C-x & Run all expirable articles in this group through the {\bf expiry} -process.\\ -C-c M-C-x & Run all articles in all groups through the {\bf expiry} process.\\ -C-c M-g & Activate all {\bf groups}.\\ -C-c C-i & Gnus online-manual ({\bf info}).\\ -C-x C-t & {\bf Transpose} two groups.\\ -H f & Fetch this group's {\bf FAQ} (using ange-ftp).\\ -H v & (V) Display the Gnus {\bf version} number.\\ -H d & (C-c C-d) Show the {\bf description} of this group -[Prefix: re-read from server].\\ -M-d & {\bf Describe} all groups. [Prefix: re-read from server]\\ -\end{keys} -} + \begin{keys}{C-c M-C-x} + RET & (=) Enter this group. [Prefix: how many (read) articles to fetch. + Positive: newest articles, negative: oldest ones; non-numerical: + view all articles, not just unread]\\ + M-RET & Enter group quickly.\\ + M-SPC & Same as RET but does not expunge and hide dormants.\\ + M-C-RET & Enter group without any processing, changes will not be permanent.\\ + SPC & Select this group and display the first (unread) article. [Same + prefix as above.]\\ + ? & Give a very short help message.\\ + $<$ & Go to the beginning of the Group buffer.\\ + $>$ & Go to the end of the Group buffer.\\ + , & Jump to the lowest-level group with unread articles.\\ + . & Jump to the first group with unread articles.\\ + xx & Enter the Server buffer mode.\\ + a & Post an {\bf article} to a group.\\ + b & Find {\bf bogus} groups and delete them.\\ + c & Mark all unticked articles in this group as read ({\bf catch-up}). + [p/p]\\ + g & Check the server for new articles ({\bf get}). [level]\\ + M-g & Check the server for new articles in this group ({\bf get}). [p/p]\\ + j & {\bf Jump} to a group.\\ + m & {\bf Mail} a message to someone.\\ + n & Go to the {\bf next} group with unread articles. [distance]\\ + M-n & Go to the {\bf next} group on the same or lower level. + [distance]\\ + p & (DEL) Go to the {\bf previous} group with unread articles. + [distance]\\ + M-p & Go to the {\bf previous} group on the same or lower level. [distance]\\ + q & {\bf Quit} Gnus.\\ + r & Re-read the init file ({\bf reset}).\\ + s & {\bf Save} the `.newsrc.eld' file (and `.newsrc' if + `gnus-save-newsrc-file').\\ + z & Suspend (kill all buffers of) Gnus.\\ + B & {\bf Browse} a foreign server.\\ + C & Mark all articles in this group as read ({\bf Catch-up}). [p/p]\\ + F & {\bf Find} new groups and process them.\\ + N & Go to the {\bf next} group. [distance]\\ + P & Go to the {\bf previous} group. [distance]\\ + Q & {\bf Quit} Gnus without saving any startup (.newsrc) files.\\ + R & {\bf Restart} Gnus.\\ + Z & Clear the dribble buffer.\\ + M-c & Clear data from group (marks and list of read articles). \\ + C-c C-s & {\bf Sort} the groups by name, number of unread articles, or level + (depending on `gnus-group-sort-function').\\ + C-c C-x & Run all expirable articles in this group through the {\bf expiry} + process.\\ + C-c M-C-x & Run all articles in all groups through the {\bf expiry} process.\\ + C-c M-g & Activate all {\bf groups}.\\ + C-c C-i & Gnus online-manual ({\bf info}).\\ + C-x C-t & {\bf Transpose} two groups.\\ + H f & Fetch this group's {\bf FAQ} (using ange-ftp).\\ + H v & (V) Display the Gnus {\bf version} number.\\ + H d & (C-c C-d) Show the {\bf description} of this group + [Prefix: re-read from server].\\ + M-d & {\bf Describe} all groups. [Prefix: re-read from server]\\ + \end{keys} + } \newcommand{\ListGroups}{% -{\esamepage -\begin{keys}{A M} -A d & List all groups whose names or {\bf descriptions} match a regexp.\\ -A k & (C-c C-l) List all {\bf killed} groups. -[Prefix: look at active-file from server]\\ -A l & List all groups on a specific level. -[Prefix: also list groups with no unread articles]\\ -A d & List all groups that have names or {\bf descriptions} matching -a regexp.\\ -A a & (C-c C-a) List all groups whose names match a regexp -({\bf apropos}).\\ -A A & List the server's active-file.\\ -A M & List groups that {\bf match} a regexp.\\ -A m & List groups that {\bf match} a regexp and have unread articles. -[level]\\ -A s & (l) List all {\bf subscribed} groups with unread articles. -[level, 5 and lower is the default]\\ -A u & (L) List all groups (including read and {\bf unsubscribed}). -[level, 7 and lower is the default]\\ -A z & List all {\bf zombie} groups.\\ -\end{keys} -} - -\newcommand{\CreateEditGroups}{% -{\esamepage -The select methods are indicated in parentheses.\\* -\begin{keys}{G DEL} -G a & Make the Gnus list {\bf archive} group. (nndir over ange-ftp)\\ -G c & {\bf Customize} this group's parameters.\\ -G d & Make a {\bf directory} group (every file must be a posting and files -must have numeric names). (nndir)\\ -G D & Enter a {\bf directory} as a (temporary) group. -(nneething without recording articles read)\\ -G e & (M-e) {\bf Edit} this group's select method.\\ -G E & {\bf Edit} this group's info (select method, articles read, etc).\\ -G f & Make a group based on a {\bf file}. (nndoc)\\ -G h & Make the Gnus {\bf help} (documentation) group. (nndoc)\\ -G k & Make a {\bf kiboze} group. (nnkiboze)\\ -G m & {\bf Make} a new group.\\ -G p & Edit this group's {\bf parameters}.\\ -G r & Rename this group (does not work with read-only groups!).\\ -G u & Create one of the groups mentioned in gnus-{\bf useful}-groups.\\ -G v & Add this group to a {\bf virtual} group. [p/p]\\ -G V & Make a new empty {\bf virtual} group. (nnvirtual)\\ -G w & Create ephemeral group based on web-search. [Prefix: make solid group -instead]\\ -G DEL & {\bf Delete} group [Prefix: delete all articles as well].\\ -\end{keys} -You can also create mail-groups and read your mail with Gnus (very useful -if you are subscribed to mailing lists), using one of the methods -nnmbox, nnbabyl, nnml, nnmh, or nnfolder. Read about it in the online info -(C-c C-i g Reading Mail RET). -}} - -% TODO: -\newcommand{\SoupCommands}{% -\begin{keys}{G s w} -G s b & gnus-group-brew-soup: not documented.\\ -G s p & gnus-soup-pack-packet: not documented.\\ -G s r & nnsoup-pack-replies: not documented.\\ -G s s & gnus-soup-send-replies: not documented.\\ -G s w & gnus-soup-save-areas: not documented.\\ -\end{keys}} - -\newcommand{\MarkGroups}{% -\begin{keys}{M m} -M m & (\#) Set the process {\bf mark} on this group. [scope]\\ -M r & Mark all groups matching regular expression.\\ -M u & (M-\#) Remove the process mark from this group ({\bf unmark}). -[scope]\\ -M U & Remove the process mark from all groups (\textbf{umark all}).\\ -M w & Mark all groups in the current region.\\ -\end{keys}} - -\newcommand{\GroupTopicsGeneral}{% -{\esamepage -Topics are ``categories'' for groups. Press t in the group-buffer to -toggle gnus-topic-mode (C-c C-i g Group Topics RET). -\begin{keys}{C-c C-x} -T n & Prompt for topic {\bf name} and create it.\\ -T m & {\bf Move} the current group to some other topic [p/p].\\ -T j & {\bf Jump} to a topic.\\ -T c & {\bf Copy} the current group to some other topic [p/p].\\ -T D & Remove (not delete) the current group [p/p].\\ -T M & {\bf Move} all groups matching a regexp to a topic.\\ -T C & {\bf Copy} all groups matching a regexp to a topic.\\ -T H & Toggle {\bf hiding} of empty topics.\\ -T r & {\bf Rename} a topic.\\ -T DEL & Delete an empty topic.\\ -T \# & Mark all groups in the current topic with the process-mark.\\ -T M-\# & Remove the process-mark from all groups in the current topic.\\ -T TAB & (TAB) Indent current topic [Prefix: unindent].\\ -M-TAB & Unindent the current topic.\\ -RET & (SPC) Either unfold topic or enter group [level].\\ -C-c C-x & Expire all articles in current group or topic.\\ -C-k & {\bf Kill} a group or topic.\\ -C-y & {\bf Yank} a group or topic.\\ -A T & List active-file using {\bf topics}.\\ -G p & Edit topic-{\bf parameters}.\\ -\end{keys}}} - -\newcommand{\TopicSorting}{% -{\esamepage -\begin{keys}{T S m} -T S a & Sort {\bf alphabetically}.\\ -T S u & Sort by number of {\bf unread} articles.\\ -T S l & Sort by group {\bf level}.\\ -T S v & Sort by group score ({\bf value}).\\ -T S r & Sort by group {\bf rank}.\\ -T S m & Sort by {\bf method}.\\ -\end{keys}}} - -\newcommand{\SubscribeKillYankGroups}{% -{\esamepage -\begin{keys}{S C-k} -S k & (C-k) {\bf Kill} this group.\\ -S l & Set the {\bf level} of this group. [p/p]\\ -S s & (U) Prompt for a group and toggle its {\bf subscription}.\\ -S t & (u) {\bf Toggle} subscription to this group. [p/p]\\ -S w & (C-w) Kill all groups in the region.\\ -S y & (C-y) {\bf Yank} the last killed group.\\ -S z & Kill all {\bf zombie} groups.\\ -S C-k & Kill all groups on a certain level.\\ -\end{keys}}} - -\newcommand{\SummaryModeGeneral}{% -{\esamepage -\begin{keys}{M-RET} -SPC & (A SPC, A n) Select an article, scroll it one page, move to the -next one.\\ -DEL & (A DEL, A p, b) Scroll this article one page back. [distance]\\ -RET & Scroll this article one line forward. [distance]\\ -M-RET & Scroll this article one line backward. [distance]\\ -= & Expand the Summary window (fullsize). -[Prefix: shrink to display article window]\\ -% -\& & Execute a command on all articles whose header matches a regexp. -[Prefix: move backwards]\\ -M-\& & Execute a command on all articles having the process mark.\\ -% -M-n & (G M-n) Go to the {\bf next} summary line of an unread article. -[distance]\\ -M-p & (G M-p) Go to the {\bf previous} summary line of an unread article. -[distance]\\ -M-s & {\bf Search} through all subsequent articles for a regexp.\\ -M-r & Search through all previous articles for a regexp.\\ -% -A P & {\bf Postscript}-print current buffer.\\ -% -M-k & Edit this group's {\bf kill} file.\\ -M-K & Edit the general {\bf kill} file.\\ -% -C-t & Toggle {\bf truncation} of summary lines.\\ -Y g & Regenerate the summary-buffer.\\ -Y c & Insert all cached articles into the summary-buffer.\\ -% -M-C-e & {\bf Edit} the group-parameters.\\ -M-C-g & Customize the group-parameters.\\ -% -% article handling -% -A $<$ & ($<$, A b) Scroll to the beginning of this article.\\ -A $>$ & ($>$, A e) Scroll to the end of this article.\\ -A s & (s) Perform an i{\bf search} in the article buffer.\\ -% -A D & (C-d) Un{\bf digestify} this article into a separate group. -[Prefix: force digest]\\ -M-C-d & Like C-d, but open several documents in nndoc-groups, wrapped -in an nnvirtual group [p/p]\\ -% -A g & (g) (Re)fetch this article ({\bf get}). [Prefix: get raw version]\\ -A r & (\^{}, A \^{}) Fetch the parent(s) of this article. -[Prefix: if positive fetch \textit{n} ancestors; -negative: fetch only the \textit{n}th ancestor]\\ -A t & {\bf Translate} this article.\\ -A R & Fetch all articles mentioned in the {\bf References}-header.\\ -A T & Fetch full \textbf{thread} in which the current article appears.\\ -M-\^{} & Fetch the article with a given Message-ID.\\ -S y & {\bf Yank} the current article into an existing message-buffer. -[p/p]\\ -\end{keys}}} - -\newcommand{\MIMESummary}{% -{\esamepage -For the commands operating on one MIME part (a subset of gnus-article-*), a -prefix selects which part to operate on. If the point is placed over a -MIME button in the article buffer, use the corresponding bindings for the -article buffer instead. -\begin{keys}{W M w} -K v & (b) {\bf View} the MIME-part.\\ -K o & {\bf Save} the MIME part.\\ -K c & {\bf Copy} the MIME part.\\ -K e & View the MIME part {\bf externally}.\\ -K i & View the MIME part {\bf internally}.\\ -K $\mid$ & Pipe the MIME part to an external command.\\ -K b & Make all the MIME parts have buttons in front of them.\\ -K m & Try to repair {\bf multipart-headers}.\\ -X m & Save all parts matching a MIME type to a directory. [p/p]\\ -M-t & Toggle the buttonized display of the article buffer.\\ -W M w & Decode RFC2047-encoded words in the article headers.\\ -W M c & Decode encoded article bodies. [Prefix: prompt for charset]\\ -W M v & View all MIME parts in the current article.\\ -\end{keys}}} - -\newcommand{\SortSummary}{% -{\esamepage -\begin{keys}{C-c C-s C-a} -C-c C-s C-a & Sort the summary-buffer by {\bf author}.\\ -C-c C-s C-d & Sort the summary-buffer by {\bf date}.\\ -C-c C-s C-i & Sort the summary-buffer by article score.\\ -C-c C-s C-l & Sort the summary-buffer by amount of lines.\\ -C-c C-s C-c & Sort the summary-buffer by length.\\ -C-c C-s C-n & Sort the summary-buffer by article {\bf number}.\\ -C-c C-s C-s & Sort the summary-buffer by {\bf subject}.\\ -\end{keys}}} - -\newcommand{\MailGroups}{% formerly \Bsubmap -{\esamepage -These commands (except `B c') are only valid in a mail group.\\* -\begin{keys}{B M-C-e} -B DEL & (B backspace, B delete) {\bf Delete} the mail article from disk (!). -[p/p]\\ -B B & Crosspost this article to another group.\\ -B c & {\bf Copy} this article from any group to a mail group. [p/p]\\ -B e & {\bf Expire} all expirable articles in this group. [p/p]\\ -B i & {\bf Import} a random file into this group.\\ -B m & {\bf Move} the article from one mail group to another. [p/p]\\ -B p & Query whether the article was posted as well.\\ -B q & {\bf Query} where the article will end up after fancy splitting\\ -B r & {\bf Respool} this mail article. [p/p]\\ -B t & {\bf Trace} the fancy splitting patterns applied to this article.\\ -B w & (e) Edit this article.\\ -B M-C-e & {\bf Expunge} (delete from disk) all expirable articles in this group -(!). [p/p]\\ -\end{keys}}} - -\newcommand{\DraftGroup}{% formerly \Dsubmap -{\esamepage -The ``drafts''-group contains messages that have been saved but not sent -and rejected articles. \\* -\begin{keys}{B DEL} -D e & {\bf edit} message in draft group.\\ -B DEL & \textbf{Delete} message (like in mailgroup).\\ -\end{keys}}} - -\newcommand{\SelectArticles}{% formerly \Gsubmap -{\esamepage -These commands select the target article. They do not understand the prefix.\\* -\begin{keys}{G C-n} -h & Enter article-buffer.\\ -G b & (,) Go to the {\bf best} article (the one with highest score).\\ -G f & (.) Go to the {\bf first} unread article.\\ -G n & (n) Go to the {\bf next} unread article.\\ -G p & (p) Go to the {\bf previous} unread article.\\ -% -G N & (N) Go to {\bf the} next article.\\ -G P & (P) Go to the {\bf previous} article.\\ -% -G C-n & (M-C-n) Go to the {\bf next} article with the same subject.\\ -G C-p & (M-C-p) Go to the {\bf previous} article with the same subject.\\ -% -G l & (l) Go to the previously read article ({\bf last-read-article}).\\ -G o & Pop an article off the summary history and go to it.\\ -% -G g & Search an article via subject.\\ -G j & (j) Search an article via Message-Id or subject.\\ -\end{keys}}} - -\newcommand{\ArticleModeGeneral}{% -{\esamepage -The normal navigation keys work in Article mode. Some additional keys are:\\* -\begin{keys}{C-c RET} -C-c \^{} & Get the article with the Message-ID near point.\\ -C-c RET & Send reply to address near point.\\ -h & Go to the \textbf{header}-line of the article in the -summary-buffer.\\ -s & Go to \textbf{summary}-buffer.\\ -RET & (middle mouse button) Activate the button at point to follow -an URL or Message-ID.\\ -TAB & Move the point to the next button.\\ -M-TAB & Move point to previous button.\\ -\end{keys}}} - -\newcommand{\WashArticle}{% formerly \Wsubmap -{\esamepage -\begin{keys}{W W H} -W b & Make Message-IDs and URLs in the article mouse-clickable -{\bf buttons}.\\ -W l & (w) Remove page breaks ({\bf\^{}L}) from the article.\\ -W c & Translate CRLF-pairs to LF and then the remaining CR's to LF's.\\ -W d & Treat {\bf dumbquotes}.\\ -W f & Look for and display any X-{\bf Face} headers.\\ -W m & Toggle {\bf MIME} processing.\\ -W o & Treat {\bf overstrike} or underline (\^{}H\_) in the article.\\ -W q & Treat {\bf quoted}-printable in the article.\\ -W r & (C-c C-r) Do a Caesar {\bf rotate} (rot13) on the article.\\ -W t & (t) {\bf Toggle} display of all headers.\\ -W v & (v) Toggle permanent {\bf verbose} displaying of all headers.\\ -W w & Do word {\bf wrap} in the article.\\ -W B & Add clickable {\bf buttons} to the article headers.\\ -W C & {\bf Capitalize} first word in each sentence.\\ -W Q & Fill long lines.\\ -% -W W H & Strip certain {\bf headers} from body.\\ -% -W E l & Strip blank {\bf lines} from the beginning of the article.\\ -W E m & Replace blank lines with empty lines and remove {\bf multiple} -blank lines.\\ -W E t & Remove {\bf trailing} blank lines.\\ -W E a & Strip blank lines at the beginning and the end -(W E l, W E m and W E t).\\ -W E A & Strip {\bf all} blank lines.\\ -W E s & Strip leading blank lines from the article body.\\ -W E e & Strip trailing blank lines from the article body.\\ -% -W T u & (W T z) Display the article timestamp in GMT ({\bf UT, ZULU}).\\ -W T i & Display the article timestamp in {\bf ISO} 8601.\\ -W T l & Display the article timestamp in the {\bf local} timezone.\\ -W T s & Display according to `gnus-article-time-format'.\\ -W T e & Display the time {\bf elapsed} since it was sent.\\ -W T o & Display the {\bf original} timestamp.\\ -\end{keys}}} - -\newcommand{\HideHighlightArticle}{% -{\esamepage -\begin{keys}{W W C-c} -W W a & Hide {\bf all} unwanted parts. Calls W W h, W W s, W W C-c.\\ -W W h & Hide article {\bf headers}.\\ -W W b & Hide {\bf boring} headers.\\ -W W s & Hide {\bf signature}.\\ -W W l & Hide {\bf list} identifiers in subject-header.\\ -W W p & Hide {\bf PGP}-signatures.\\ -W W P & Hide {\bf PEM} (privacy enhanced messages).\\ -W W B & Hide banner specified by group parameter.\\ -W W c & Hide {\bf citation}.\\ -W W C-c & Hide {\bf citation} using a more intelligent algorithm.\\ -W W C & Hide cited text in articles that aren't roots.\\ -% -W e & {\bf Emphasize} article.\\ -% -W H a & Highlight {\bf all} parts. Calls W b, W H c, W H h, W H s.\\ -W H c & Highlight article {\bf citations}.\\ -W H h & Highlight article {\bf headers}.\\ -W H s & Highlight article {\bf signature}.\\ -\end{keys} -For all hiding-commands: A positive prefix always hides, and a negative -prefix will show what was previously hidden. -}} - -\newcommand{\MIMEArticleMode}{% -{\esamepage -\begin{keys}{M-RET} -RET & (BUTTON-2) Toggle display of the MIME object.\\ -v & (M-RET) Prompt for a method and then view object using this method.\\ -o & Prompt for a filename and save the MIME object.\\ -c & {\bf Copy} the MIME object to a new buffer and display this buffer.\\ -t & View the MIME object as a different {\bf type}.\\ -$\mid$ & Pipe the MIME object to a process.\\ -\end{keys}}} - -%% end of article mode for reading .......................................... - -\newcommand{\MarkArticlesGeneral}{% formerly \Msubmap -{\esamepage -\begin{keys}{M M-C-r} -d & (M d, M r) Mark this article as read and move to the next one. -[scope]\\ -D & Mark this article as read and move to the previous one. [scope]\\ -! & (u, M !, M t) Tick this article (mark it as interesting) and move -to the next one. [scope]\\ -U & Tick this article and move to the previous one. [scope]\\ -M ? & (?) Mark this article as dormant (only followups are -interesting). [scope]\\ -M D & Show all {\bf dormant} articles (normally they are hidden unless they -have any followups).\\ -M M-D & Hide all {\bf dormant} articles.\\ -C-w & Mark all articles between point and mark as read.\\ -M-u & (M SPC, M c) Clear all marks from this article and move to the next -one. [scope]\\ -M-U & Clear all marks from this article and move to the previous one. -[scope]\\ -% -M e & (E, M x) Mark this article as {\bf expirable}. [scope]\\ -% -M k & (k) {\bf Kill} all articles with the same subject then select the -next unread one.\\ -M K & (C-k) {\bf Kill} all articles with the same subject as this one.\\ -% -M C & {\bf Catch-up} the articles that are not ticked and not dormant.\\ -M C-c & {\bf Catch-up} all articles in this group.\\ -M H & Catch-up (mark read) this group to point (to-{\bf here}).\\ -% -M b & Set a {\bf bookmark} in this article.\\ -M B & Remove the {\bf bookmark} from this article.\\ -% -M M-r & (x) Expunge all {\bf read} articles from this group.\\ -M M-C-r & Expunge all articles having a given mark.\\ -M S & (C-c M-C-s) {\bf Show} all expunged articles.\\ -M M C-h & Displays some more keys doing ticking slightly differently.\\ -\end{keys} -The variable `gnus-summary-goto-unread' controls what happens after a mark -has been set (C-x C-i g Setting Marks RET) -}} - -\newcommand{\MarkByScore}{% -\begin{keys}{M V m} -M V c & {\bf Clear} all marks from all high-scored articles. [score]\\ -M V k & {\bf Kill} all low-scored articles. [score]\\ -M V m & Mark all high-scored articles with a given {\bf mark}. [score]\\ -M V u & Mark all high-scored articles as interesting (tick them). [score]\\ -\end{keys}}} + {\esamepage + \begin{keys}{A M} + A d & List all groups whose names or {\bf descriptions} match a regexp.\\ + A k & (C-c C-l) List all {\bf killed} groups. + [Prefix: look at active-file from server]\\ + A l & List all groups on a specific level. + [Prefix: also list groups with no unread articles]\\ + A d & List all groups that have names or {\bf descriptions} matching + a regexp.\\ + A a & (C-c C-a) List all groups whose names match a regexp + ({\bf apropos}).\\ + A A & List the server's active-file.\\ + A M & List groups that {\bf match} a regexp.\\ + A m & List groups that {\bf match} a regexp and have unread articles. + [level]\\ + A s & (l) List all {\bf subscribed} groups with unread articles. + [level; 5 and lower is the default]\\ + A u & (L) List all groups (including read and {\bf unsubscribed}). + [level; 7 and lower is the default]\\ + A z & List all {\bf zombie} groups.\\ + \end{keys} + } + + \newcommand{\CreateEditGroups}{% + {\esamepage + The select methods are indicated in parentheses.\\* + \begin{keys}{G DEL} + G a & Make the Gnus list {\bf archive} group. (nndir over ange-ftp)\\ + G c & {\bf Customize} this group's parameters.\\ + G d & Make a {\bf directory} group (every file must be a posting and files + must have numeric names). (nndir)\\ + G D & Enter a {\bf directory} as a (temporary) group. + (nneething without recording articles read)\\ + G e & (M-e) {\bf Edit} this group's select method.\\ + G E & {\bf Edit} this group's info (select method, articles read, etc).\\ + G f & Make a group based on a {\bf file}. (nndoc)\\ + G h & Make the Gnus {\bf help} (documentation) group. (nndoc)\\ + G k & Make a {\bf kiboze} group. (nnkiboze)\\ + G m & {\bf Make} a new group.\\ + G p & Edit this group's {\bf parameters}.\\ + G r & Rename this group (does not work with read-only groups!).\\ + G u & Create one of the groups mentioned in gnus-{\bf useful}-groups.\\ + G v & Add this group to a {\bf virtual} group. [p/p]\\ + G V & Make a new empty {\bf virtual} group. (nnvirtual)\\ + G w & Create ephemeral group based on web-search. [Prefix: make solid group + instead]\\ + G DEL & {\bf Delete} group [Prefix: delete all articles as well].\\ + \end{keys} + You can also create mail-groups and read your mail with Gnus (very useful + if you are subscribed to mailing lists), using one of the methods + nnmbox, nnbabyl, nnml, nnmh, or nnfolder. Read about it in the online info + (C-c C-i g Reading Mail RET). + }} + + % TODO: + \newcommand{\SoupCommands}{% + \begin{keys}{G s w} + G s b & gnus-group-brew-soup: not documented.\\ + G s p & gnus-soup-pack-packet: not documented.\\ + G s r & nnsoup-pack-replies: not documented.\\ + G s s & gnus-soup-send-replies: not documented.\\ + G s w & gnus-soup-save-areas: not documented.\\ + \end{keys}} + + \newcommand{\MarkGroups}{% + \begin{keys}{M m} + M m & (\#) Set the process {\bf mark} on this group. [scope]\\ + M r & Mark all groups matching regular expression.\\ + M u & (M-\#) Remove the process mark from this group ({\bf unmark}). + [scope]\\ + M U & Remove the process mark from all groups (\textbf{umark all}).\\ + M w & Mark all groups in the current region.\\ + \end{keys}} + + \newcommand{\GroupTopicsGeneral}{% + {\esamepage + Topics are ``categories'' for groups. Press t in the group-buffer to + toggle gnus-topic-mode (C-c C-i g Group Topics RET). + \begin{keys}{C-c C-x} + T n & Prompt for topic {\bf name} and create it.\\ + T m & {\bf Move} the current group to some other topic [p/p].\\ + T j & {\bf Jump} to a topic.\\ + T c & {\bf Copy} the current group to some other topic [p/p].\\ + T D & Remove (not delete) the current group [p/p].\\ + T M & {\bf Move} all groups matching a regexp to a topic.\\ + T C & {\bf Copy} all groups matching a regexp to a topic.\\ + T H & Toggle {\bf hiding} of empty topics.\\ + T r & {\bf Rename} a topic.\\ + T DEL & Delete an empty topic.\\ + T \# & Mark all groups in the current topic with the process-mark.\\ + T M-\# & Remove the process-mark from all groups in the current topic.\\ + T TAB & (TAB) Indent current topic [Prefix: unindent].\\ + M-TAB & Unindent the current topic.\\ + RET & (SPC) Either unfold topic or enter group [level].\\ + C-c C-x & Expire all articles in current group or topic.\\ + C-k & {\bf Kill} a group or topic.\\ + C-y & {\bf Yank} a group or topic.\\ + A T & List active-file using {\bf topics}.\\ + G p & Edit topic-{\bf parameters}.\\ + \end{keys} + } + } + + \newcommand{\TopicSorting}{% + {\esamepage + \begin{keys}{T S m} + T S a & Sort {\bf alphabetically}.\\ + T S u & Sort by number of {\bf unread} articles.\\ + T S l & Sort by group {\bf level}.\\ + T S v & Sort by group score ({\bf value}).\\ + T S r & Sort by group {\bf rank}.\\ + T S m & Sort by {\bf method}.\\ + \end{keys} + } + } + + \newcommand{\SubscribeKillYankGroups}{% + {\esamepage + \begin{keys}{S C-k} + S k & (C-k) {\bf Kill} this group.\\ + S l & Set the {\bf level} of this group. [p/p]\\ + S s & (U) Prompt for a group and toggle its {\bf subscription}.\\ + S t & (u) {\bf Toggle} subscription to this group. [p/p]\\ + S w & (C-w) Kill all groups in the region.\\ + S y & (C-y) {\bf Yank} the last killed group.\\ + S z & Kill all {\bf zombie} groups.\\ + S C-k & Kill all groups on a certain level.\\ + \end{keys} + } + } + + \newcommand{\SummaryModeGeneral}{% + {\esamepage + \begin{keys}{M-RET} + SPC & (A SPC, A n) Select an article, scroll it one page, move to the + next one.\\ + DEL & (A DEL, A p, b) Scroll this article one page back. [distance]\\ + RET & Scroll this article one line forward. [distance]\\ + M-RET & Scroll this article one line backward. [distance]\\ + = & Expand the Summary window (fullsize). + [Prefix: shrink to display article window]\\ + % + \& & Execute a command on all articles whose header matches a regexp. + [Prefix: move backwards]\\ + M-\& & Execute a command on all articles having the process mark.\\ + % + M-n & (G M-n) Go to the {\bf next} summary line of an unread article. + [distance]\\ + M-p & (G M-p) Go to the {\bf previous} summary line of an unread article. + [distance]\\ + M-s & {\bf Search} through all subsequent articles for a regexp.\\ + M-r & Search through all previous articles for a regexp.\\ + % + A P & {\bf Postscript}-print current buffer.\\ + % + M-k & Edit this group's {\bf kill} file.\\ + M-K & Edit the general {\bf kill} file.\\ + % + C-t & Toggle {\bf truncation} of summary lines.\\ + Y g & Regenerate the summary-buffer.\\ + Y c & Insert all cached articles into the summary-buffer.\\ + % + M-C-e & {\bf Edit} the group-parameters.\\ + M-C-g & Customize the group-parameters.\\ + % + % article handling + % + A $<$ & ($<$, A b) Scroll to the beginning of this article.\\ + A $>$ & ($>$, A e) Scroll to the end of this article.\\ + A s & (s) Perform an i{\bf search} in the article buffer.\\ + % + A D & (C-d) Un{\bf digestify} this article into a separate group. + [Prefix: force digest]\\ + M-C-d & Like C-d, but open several documents in nndoc-groups, wrapped + in an nnvirtual group [p/p]\\ + % + A g & (g) (Re)fetch this article ({\bf get}). [Prefix: get raw version]\\ + A r & (\^{}, A \^{}) Fetch the parent(s) of this article. + [Prefix: if positive fetch \textit{n} ancestors; + negative: fetch only the \textit{n}th ancestor]\\ + A t & {\bf Translate} this article.\\ + A R & Fetch all articles mentioned in the {\bf References}-header.\\ + A T & Fetch full \textbf{thread} in which the current article appears.\\ + M-\^{} & Fetch the article with a given Message-ID.\\ + S y & {\bf Yank} the current article into an existing message-buffer. + [p/p]\\ + \end{keys} + } + } + + \newcommand{\MIMESummary}{% + {\esamepage + For the commands operating on one MIME part (a subset of gnus-article-*), a + prefix selects which part to operate on. If the point is placed over a + MIME button in the article buffer, use the corresponding bindings for the + article buffer instead. + \begin{keys}{W M w} + K v & (b) {\bf View} the MIME-part.\\ + K o & {\bf Save} the MIME part.\\ + K c & {\bf Copy} the MIME part.\\ + K e & View the MIME part {\bf externally}.\\ + K i & View the MIME part {\bf internally}.\\ + K $\mid$ & Pipe the MIME part to an external command.\\ + K b & Make all the MIME parts have buttons in front of them.\\ + K m & Try to repair {\bf multipart-headers}.\\ + X m & Save all parts matching a MIME type to a directory. [p/p]\\ + M-t & Toggle the buttonized display of the article buffer.\\ + W M w & Decode RFC2047-encoded words in the article headers.\\ + W M c & Decode encoded article bodies. [Prefix: prompt for charset]\\ + W M v & View all MIME parts in the current article.\\ + \end{keys} + } + } + + \newcommand{\SortSummary}{% + {\esamepage + \begin{keys}{C-c C-s C-a} + C-c C-s C-a & Sort the summary-buffer by {\bf author}.\\ + C-c C-s C-d & Sort the summary-buffer by {\bf date}.\\ + C-c C-s C-i & Sort the summary-buffer by article score.\\ + C-c C-s C-l & Sort the summary-buffer by amount of lines.\\ + C-c C-s C-c & Sort the summary-buffer by length.\\ + C-c C-s C-n & Sort the summary-buffer by article {\bf number}.\\ + C-c C-s C-s & Sort the summary-buffer by {\bf subject}.\\ + \end{keys} + } + } + + \newcommand{\MailGroups}{% formerly \Bsubmap + {\esamepage + These commands (except `B c') are only valid in a mail group.\\* + \begin{keys}{B M-C-e} + B DEL & (B backspace, B delete) {\bf Delete} the mail article from disk (!). + [p/p]\\ + B B & Crosspost this article to another group.\\ + B c & {\bf Copy} this article from any group to a mail group. [p/p]\\ + B e & {\bf Expire} all expirable articles in this group. [p/p]\\ + B i & {\bf Import} a random file into this group.\\ + B m & {\bf Move} the article from one mail group to another. [p/p]\\ + B p & Query whether the article was posted as well.\\ + B q & {\bf Query} where the article will end up after fancy splitting\\ + B r & {\bf Respool} this mail article. [p/p]\\ + B t & {\bf Trace} the fancy splitting patterns applied to this article.\\ + B w & (e) Edit this article.\\ + B M-C-e & {\bf Expunge} (delete from disk) all expirable articles in this group + (!). [p/p]\\ + \end{keys} + } + } + + \newcommand{\DraftGroup}{% formerly \Dsubmap + {\esamepage + The ``drafts''-group contains messages that have been saved but not sent + and rejected articles. \\* + \begin{keys}{B DEL} + D e & \textbf{edit} message.\\ + D s & \textbf{Send} message. [p/p]\\ + D S & \textbf{Send} all messages.\\ + D t & \textbf{Toggle} sending (mark as unsendable).\\ + B DEL & \textbf{Delete} message (like in mailgroup).\\ + \end{keys} + } + } + + \newcommand{\SelectArticles}{% formerly \Gsubmap + {\esamepage + These commands select the target article. They do not understand the prefix.\\* + \begin{keys}{G C-n} + h & Enter article-buffer.\\ + G b & (,) Go to the {\bf best} article (the one with highest score).\\ + G f & (.) Go to the {\bf first} unread article.\\ + G n & (n) Go to the {\bf next} unread article.\\ + G p & (p) Go to the {\bf previous} unread article.\\ + % + G N & (N) Go to {\bf the} next article.\\ + G P & (P) Go to the {\bf previous} article.\\ + % + G C-n & (M-C-n) Go to the {\bf next} article with the same subject.\\ + G C-p & (M-C-p) Go to the {\bf previous} article with the same subject.\\ + % + G l & (l) Go to the previously read article ({\bf last-read-article}).\\ + G o & Pop an article off the summary history and go to it.\\ + % + G g & Search an article via subject.\\ + G j & (j) Search an article via Message-Id or subject.\\ + \end{keys} + } + } + + \newcommand{\ArticleModeGeneral}{% + {\esamepage + The normal navigation keys work in Article mode. Some additional keys are:\\* + \begin{keys}{C-c RET} + C-c \^{} & Get the article with the Message-ID near point.\\ + C-c RET & Send reply to address near point.\\ + h & Go to the \textbf{header}-line of the article in the + summary-buffer.\\ + s & Go to \textbf{summary}-buffer.\\ + RET & (middle mouse button) Activate the button at point to follow + an URL or Message-ID.\\ + TAB & Move the point to the next button.\\ + M-TAB & Move point to previous button.\\ + \end{keys} + } + } + + \newcommand{\WashArticle}{% formerly \Wsubmap + {\esamepage + \begin{keys}{W W H} + W b & Make Message-IDs and URLs in the article mouse-clickable + {\bf buttons}.\\ + W l & (w) Remove page breaks ({\bf\^{}L}) from the article.\\ + W c & Translate CRLF-pairs to LF and then the remaining CR's to LF's.\\ + W d & Treat {\bf dumbquotes}.\\ + W f & Look for and display any X-{\bf Face} headers.\\ + W m & Toggle {\bf MIME} processing.\\ + W o & Treat {\bf overstrike} or underline (\^{}H\_) in the article.\\ + W q & Treat {\bf quoted}-printable in the article.\\ + W r & (C-c C-r) Do a Caesar {\bf rotate} (rot13) on the article.\\ + W t & (t) {\bf Toggle} display of all headers.\\ + W v & (v) Toggle permanent {\bf verbose} displaying of all headers.\\ + W w & Do word {\bf wrap} in the article.\\ + W B & Add clickable {\bf buttons} to the article headers.\\ + W C & {\bf Capitalize} first word in each sentence.\\ + W Q & Fill long lines.\\ + % + W W H & Strip certain {\bf headers} from body.\\ + % + W E l & Strip blank {\bf lines} from the beginning of the article.\\ + W E m & Replace blank lines with empty lines and remove {\bf multiple} + blank lines.\\ + W E t & Remove {\bf trailing} blank lines.\\ + W E a & Strip blank lines at the beginning and the end + (W E l, W E m and W E t).\\ + W E A & Strip {\bf all} blank lines.\\ + W E s & Strip leading blank lines from the article body.\\ + W E e & Strip trailing blank lines from the article body.\\ + % + W T u & (W T z) Display the article timestamp in GMT ({\bf UT, ZULU}).\\ + W T i & Display the article timestamp in {\bf ISO} 8601.\\ + W T l & Display the article timestamp in the {\bf local} timezone.\\ + W T s & Display according to `gnus-article-time-format'.\\ + W T e & Display the time {\bf elapsed} since it was sent.\\ + W T o & Display the {\bf original} timestamp.\\ + \end{keys} + } + } + + \newcommand{\HideHighlightArticle}{% + {\esamepage + \begin{keys}{W W C-c} + W W a & Hide {\bf all} unwanted parts. Calls W W h, W W s, W W C-c.\\ + W W h & Hide article {\bf headers}.\\ + W W b & Hide {\bf boring} headers.\\ + W W s & Hide {\bf signature}.\\ + W W l & Hide {\bf list} identifiers in subject-header.\\ + W W p & Hide {\bf PGP}-signatures.\\ + W W P & Hide {\bf PEM} (privacy enhanced messages).\\ + W W B & Hide banner specified by group parameter.\\ + W W c & Hide {\bf citation}.\\ + W W C-c & Hide {\bf citation} using a more intelligent algorithm.\\ + W W C & Hide cited text in articles that aren't roots.\\ + % + W e & {\bf Emphasize} article.\\ + % + W H a & Highlight {\bf all} parts. Calls W b, W H c, W H h, W H s.\\ + W H c & Highlight article {\bf citations}.\\ + W H h & Highlight article {\bf headers}.\\ + W H s & Highlight article {\bf signature}.\\ + \end{keys} + For all hiding-commands: A positive prefix always hides, and a negative + prefix will show what was previously hidden. + }} + + \newcommand{\MIMEArticleMode}{% + {\esamepage + \begin{keys}{M-RET} + RET & (BUTTON-2) Toggle display of the MIME object.\\ + v & (M-RET) Prompt for a method and then view object using this method.\\ + o & Prompt for a filename and save the MIME object.\\ + c & {\bf Copy} the MIME object to a new buffer and display this buffer.\\ + t & View the MIME object as a different {\bf type}.\\ + $\mid$ & Pipe the MIME object to a process.\\ + \end{keys} + } + } + + %% end of article mode for reading .......................................... + + \newcommand{\MarkArticlesGeneral}{% formerly \Msubmap + {\esamepage + \begin{keys}{M M-C-r} + d & (M d, M r) Mark this article as read and move to the next one. + [scope]\\ + D & Mark this article as read and move to the previous one. [scope]\\ + ! & (u, M !, M t) Tick this article (mark it as interesting) and move + to the next one. [scope]\\ + U & Tick this article and move to the previous one. [scope]\\ + M ? & (?) Mark this article as dormant (only followups are + interesting). [scope]\\ + M D & Show all {\bf dormant} articles (normally they are hidden unless they + have any followups).\\ + M M-D & Hide all {\bf dormant} articles.\\ + C-w & Mark all articles between point and mark as read.\\ + M-u & (M SPC, M c) Clear all marks from this article and move to the next + one. [scope]\\ + M-U & Clear all marks from this article and move to the previous one. + [scope]\\ + % + M e & (E, M x) Mark this article as {\bf expirable}. [scope]\\ + % + M k & (k) {\bf Kill} all articles with the same subject then select the + next unread one.\\ + M K & (C-k) {\bf Kill} all articles with the same subject as this one.\\ + % + M C & {\bf Catch-up} the articles that are not ticked and not dormant.\\ + M C-c & {\bf Catch-up} all articles in this group.\\ + M H & {\bf Catch-up} (mark read) this group to point (to-{\bf here}).\\ + % + M b & Set a {\bf bookmark} in this article.\\ + M B & Remove the {\bf bookmark} from this article.\\ + % + M M-r & (x) Expunge all {\bf read} articles from this group.\\ + M M-C-r & Expunge all articles having a given mark.\\ + M S & (C-c M-C-s) {\bf Show} all expunged articles.\\ + M M C-h & Displays some more keys doing ticking slightly differently.\\ + \end{keys} + The variable `gnus-summary-goto-unread' controls what happens after a mark + has been set (C-x C-i g Setting Marks RET) + }} + + \newcommand{\MarkByScore}{% + \begin{keys}{M V m} + M V c & {\bf Clear} all marks from all high-scored articles. [score]\\ + M V k & {\bf Kill} all low-scored articles. [score]\\ + M V m & Mark all high-scored articles with a given {\bf mark}. [score]\\ + M V u & Mark all high-scored articles as interesting (tick them). [score]\\ + \end{keys} + } + } \newcommand{\ProcessMark}{% -{\esamepage -These commands set and remove the process mark (\#). You only need to use -it if the set of articles you want to operate on is non-contiguous. Else -use a numeric prefix.\\* -\begin{keys}{M P R} -M P p & (\#, M \#) Mark this article.\\ -M P u & (M-\#, M M-\#) \textbf{unmark} this article.\\ -M P b & Mark all articles in {\bf buffer}.\\ -M P r & Mark all articles in the {\bf region}.\\ -M P R & Mark all articles matching a {\bf regexp}.\\ -M P t & Mark all articles in this (sub){\bf thread}.\\ -M P s & Mark all articles in the current {\bf series}.\\ -M P S & Mark all {\bf series} that already contain a marked article.\\ -M P a & Mark {\bf all} articles (in series order).\\ -M P U & \textbf{unmark} all articles.\\ -% -M P i & {\bf Invert} the list of process-marked articles.\\ -M P k & Push the current process-mark set onto stack and unmark -all articles.\\ -M P y & Pop process-mark set from stack and restore it.\\ -\end{keys}}} + {\esamepage + These commands set and remove the process mark (\#). You only need to use + it if the set of articles you want to operate on is non-contiguous. Else + use a numeric prefix.\\* + \begin{keys}{M P R} + M P p & (\#, M \#) Mark this article.\\ + M P u & (M-\#, M M-\#) \textbf{unmark} this article.\\ + M P b & Mark all articles in {\bf buffer}.\\ + M P r & Mark all articles in the {\bf region}.\\ + M P R & Mark all articles matching a {\bf regexp}.\\ + M P t & Mark all articles in this (sub){\bf thread}.\\ + M P s & Mark all articles in the current {\bf series}.\\ + M P S & Mark all {\bf series} that already contain a marked article.\\ + M P a & Mark {\bf all} articles (in series order).\\ + M P U & \textbf{unmark} all articles.\\ + % + M P i & {\bf Invert} the list of process-marked articles.\\ + M P k & Push the current process-mark set onto stack and unmark + all articles.\\ + M P y & Pop process-mark set from stack and restore it.\\ + \end{keys} + } + } \newcommand{\Limiting}{% -{\esamepage -\begin{keys}{/M} -// & (/s) Limit the summary-buffer to articles matching {\bf subject}.\\ -/a & Limit the summary-buffer to articles matching {\bf author}.\\ -/x & Limit depending on ``extra'' headers.\\ -/u & (x) Limit to {\bf unread} articles. -[Prefix: also exclude ticked and dormant articles]\\ -/m & Limit to articles marked with specified {\bf mark}.\\ -/t & Ask for a number and exclude articles younger than that many days. -[Prefix: exclude older articles]\\ -/n & Limit to current article. [p/p]\\ -/w & Pop the previous limit off the stack and restore it. -[Prefix: pop all limits]\\ -/v & Limit to score. [score]\\ -/E & (M S) Include all expunged articles in the limit.\\ -/D & Include all dormant articles in the limit.\\ -/* & Include all cached articles in the limit.\\ -/d & Exclude all dormant articles from the limit.\\ -/M & Exclude all marked articles.\\ -/T & Include all articles from the current thread in the limit.\\ -/c & Exclude all dormant articles that have no children from the limit.\\ -/C & Mark all excluded unread articles as read. -[Prefix: also mark ticked and dormant articles]\\ -\end{keys}}} + {\esamepage + \begin{keys}{/M} + // & (/s) Limit the summary-buffer to articles matching {\bf subject}.\\ + /a & Limit the summary-buffer to articles matching {\bf author}.\\ + /x & Limit depending on ``extra'' headers.\\ + /u & (x) Limit to {\bf unread} articles. + [Prefix: also exclude ticked and dormant articles]\\ + /m & Limit to articles marked with specified {\bf mark}.\\ + /t & Ask for a number and exclude articles younger than that many days. + [Prefix: exclude older articles]\\ + /n & Limit to current article. [p/p]\\ + /w & Pop the previous limit off the stack and restore it. + [Prefix: pop all limits]\\ + /v & Limit to score. [score]\\ + /E & (M S) Include all expunged articles in the limit.\\ + /D & Include all dormant articles in the limit.\\ + /* & Include all cached articles in the limit.\\ + /d & Exclude all dormant articles from the limit.\\ + /M & Exclude all marked articles.\\ + /T & Include all articles from the current thread in the limit.\\ + /c & Exclude all dormant articles that have no children from the limit.\\ + /C & Mark all excluded unread articles as read. + [Prefix: also mark ticked and dormant articles]\\ + \end{keys} + } + } \newcommand{\OutputArticles}{% formerly \Osubmap -{\esamepage -\begin{keys}{O m} -O o & (o, C-o) Save this article using the default article saver. [p/p]\\ -O b & Save this article's {\bf body} in plain file format [p/p]\\ -O f & Save this article in plain {\bf file} format. [p/p]\\ -O F & like O f, but overwrite file's contents. [p/p]\\ -O h & Save this article in {\bf mh} folder format. [p/p]\\ -O m & Save this article in {\bf mail} format. [p/p]\\ -O r & Save this article in {\bf rmail} format. [p/p]\\ -O v & Save this article in {\bf vm} format. [p/p]\\ -O p & ($\mid$) Pipe this article to a shell command. [p/p]\\ -\end{keys}}} + {\esamepage + \begin{keys}{O m} + O o & (o, C-o) Save this article using the default article saver. [p/p]\\ + O b & Save this article's {\bf body} in plain file format [p/p]\\ + O f & Save this article in plain {\bf file} format. [p/p]\\ + O F & like O f, but overwrite file's contents. [p/p]\\ + O h & Save this article in {\bf mh} folder format. [p/p]\\ + O m & Save this article in {\bf mail} format. [p/p]\\ + O r & Save this article in {\bf rmail} format. [p/p]\\ + O v & Save this article in {\bf vm} format. [p/p]\\ + O p & ($\mid$) Pipe this article to a shell command. [p/p]\\ + \end{keys} + } + } \newcommand{\PostReplyetc}{% formerly \Ssubmap -{\esamepage -These commands put you in a separate news or mail buffer. See the section -about composing messages for more information. -%After -%editing the article, send it by pressing C-c C-c. If you are in a -%foreign group and want to post the article using the foreign server, give -%a prefix to C-c C-c.\\* -\begin{keys}{S O m} -S p & (a) {\bf Post} an article to this group.\\ -S f & (f) Post a {\bf followup} to this article.\\ -S F & (F) Post a {\bf followup} and include the original. [p/p]\\ -S o p & Forward this article as a {\bf post} to a newsgroup. -[Prefix: include all headers]\\ -S M-c & Send a complaint about excessive crossposting to the author of this -article. [p/p]\\ -% -S m & (m) Send {\bf a} mail to some other person.\\ -S r & (r) Mail a {\bf reply} to the author of this article.\\ -S R & (R) Mail a {\bf reply} and include the original. [p/p]\\ -S w & Mail a {\bf wide} reply to this article.\\ -S W & Mail a {\bf wide} reply to this article.\\ -S o m & (C-c C-f) Forward this article by {\bf mail} to a person. -[Prefix: include all headers]\\ -S D b & Resend {\bf bounced} mail.\\ -S D r & {\bf Resend} mail to a different person.\\ -% -S n & Post a followup via {\bf news} even if you got the message -through mail.\\ -S N & Post a followup via {\bf news} and include the original mail. -[p/p]\\ -% -S c & (C) {\bf Cancel} this article (only works if it is your own).\\ -S s & {\bf Supersede} this article with a new one (only for own -articles).\\ -% -S O m & Digest these series and forward by {\bf mail}. [p/p]\\ -S O p & Digest these series and forward as a {\bf post} to a newsgroup. -[p/p]\\ -% -S u & {\bf Uuencode} a file and post it as a series.\\ -\end{keys} -If you want to cancel or supersede an article you just posted (before it -has appeared on the server), go to the *post-news* buffer, change -`Message-ID' to `Cancel' or `Supersedes' and send it again with C-c C-c. -}} + {\esamepage + These commands put you in a separate news or mail buffer. See the section + about composing messages for more information. + %After + %editing the article, send it by pressing C-c C-c. If you are in a + %foreign group and want to post the article using the foreign server, give + %a prefix to C-c C-c.\\* + \begin{keys}{S O m} + S p & (a) {\bf Post} an article to this group.\\ + S f & (f) Post a {\bf followup} to this article.\\ + S F & (F) Post a {\bf followup} and include the original. [p/p]\\ + S o p & Forward this article as a {\bf post} to a newsgroup. + [Prefix: include all headers]\\ + S M-c & Send a complaint about excessive crossposting to the author of this + article. [p/p]\\ + % + S m & (m) Send {\bf a} mail to some other person.\\ + S r & (r) Mail a {\bf reply} to the author of this article.\\ + S R & (R) Mail a {\bf reply} and include the original. [p/p]\\ + S w & Mail a {\bf wide} reply to this article.\\ + S W & Mail a {\bf wide} reply to this article.\\ + S o m & (C-c C-f) Forward this article by {\bf mail} to a person. + [Prefix: include all headers]\\ + S D b & Resend {\bf bounced} mail.\\ + S D r & {\bf Resend} mail to a different person.\\ + % + S n & Post a followup via {\bf news} even if you got the message + through mail.\\ + S N & Post a followup via {\bf news} and include the original mail. + [p/p]\\ + % + S c & (C) {\bf Cancel} this article (only works if it is your own).\\ + S s & {\bf Supersede} this article with a new one (only for own + articles).\\ + % + S O m & Digest these series and forward by {\bf mail}. [p/p]\\ + S O p & Digest these series and forward as a {\bf post} to a newsgroup. + [p/p]\\ + % + S u & {\bf Uuencode} a file and post it as a series.\\ + \end{keys} + If you want to cancel or supersede an article you just posted (before it + has appeared on the server), go to the *post-news* buffer, change + `Message-ID' to `Cancel' or `Supersedes' and send it again with C-c C-c. + }} \newcommand{\Threading}{% formerly \Tsubmap -{\esamepage -\begin{keys}{T M-\#} -T \# & Mark this thread with the process mark.\\ -T M-\# & Remove process-marks from this thread.\\ -% -T t & Re-{\bf thread} the current article's thread.\\ -% movement -T n & (M-C-f) Go to the {\bf next} thread. [distance]\\ -T p & (M-C-b) Go to the {\bf previous} thread. [distance]\\ -T d & {\bf Descend} this thread. [distance]\\ -T u & Ascend this thread ({\bf up}-thread). [distance]\\ -T o & Go to the top of this thread.\\ -% -T s & {\bf Show} the thread hidden under this article.\\ -T h & {\bf Hide} this (sub)thread.\\ -% -T i & {\bf Increase} the score of this thread.\\ -T l & (M-C-l) {\bf Lower} the score of this thread.\\ -% -T k & (M-C-k) {\bf Kill} the current (sub)thread. [Negative prefix: -tick it, positive prefix: unmark it.]\\ -% -T H & {\bf Hide} all threads.\\ -T S & {\bf Show} all hidden threads.\\ -T T & (M-C-t) {\bf Toggle} threading.\\ -\end{keys}}} + {\esamepage + \begin{keys}{T M-\#} + T \# & Mark this thread with the process mark.\\ + T M-\# & Remove process-marks from this thread.\\ + % + T t & Re-{\bf thread} the current article's thread.\\ + % movement + T n & (M-C-f) Go to the {\bf next} thread. [distance]\\ + T p & (M-C-b) Go to the {\bf previous} thread. [distance]\\ + T d & {\bf Descend} this thread. [distance]\\ + T u & Ascend this thread ({\bf up}-thread). [distance]\\ + T o & Go to the top of this thread.\\ + % + T s & {\bf Show} the thread hidden under this article.\\ + T h & {\bf Hide} this (sub)thread.\\ + % + T i & {\bf Increase} the score of this thread.\\ + T l & (M-C-l) {\bf Lower} the score of this thread.\\ + % + T k & (M-C-k) {\bf Kill} the current (sub)thread. [Negative prefix: + tick it, positive prefix: unmark it.]\\ + % + T H & {\bf Hide} all threads.\\ + T S & {\bf Show} all hidden threads.\\ + T T & (M-C-t) {\bf Toggle} threading.\\ + \end{keys} + } + } \newcommand{\Scoring}{% formerly \Vsubmap -{\esamepage -Read about Adaptive Scoring in the online info.\\* -\begin{keys}{\bf A p m l} -V a & {\bf Add} a new score entry, specifying all elements.\\ -V c & Specify a new score file as {\bf current}.\\ -V e & {\bf Edit} the current score alist.\\ -V f & Edit a score {\bf file} and make it the current one.\\ -V m & {\bf Mark} all articles below a given score as read.\\ -V s & Set the {\bf score} of this article.\\ -V t & Display all score rules applied to this article ({\bf track}).\\ -V x & {\bf Expunge} all low-scored articles. [score]\\ -V C & {\bf Customize} the current score file through a user-friendly -interface.\\ -V S & Display the {\bf score} of this article.\\ -\bf A p m l& Make a scoring entry based on this article.\\ -\end{keys} -The four letters stand for:\\* -\quad \B{A}ction: I)ncrease, L)ower;\\* -\quad \B{p}art: a)utor (from), s)ubject, x)refs (cross-posting), d)ate, l)ines, -message-i)d, t)references (parent), f)ollowup, b)ody, h)ead (all headers);\\* -\quad \B{m}atch type:\\* -\qquad string: s)ubstring, e)xact, r)egexp, f)uzzy,\\* -\qquad date: b)efore, a)t, n)this,\\* -\qquad number: $<$, =, $>$;\\* -\quad \B{l}ifetime: t)emporary, p)ermanent, i)mmediate. - -If you type the second letter in uppercase, the remaining two are assumed -to be s)ubstring and t)emporary. -If you type the third letter in uppercase, the last one is assumed to be -t)emporary. - -\quad Extra keys for manual editing of a score file:\\* -\begin{keys}{C-c C-c} -C-c C-c & Finish editing the score file.\\ -C-c C-d & Insert the current {\bf date} as number of days.\\ -\end{keys}}} + {\esamepage + Read about Adaptive Scoring in the online info.\\* + \begin{keys}{\bf A p m l} + V a & {\bf Add} a new score entry, specifying all elements.\\ + V c & Specify a new score file as {\bf current}.\\ + V e & {\bf Edit} the current score alist.\\ + V f & Edit a score {\bf file} and make it the current one.\\ + V m & {\bf Mark} all articles below a given score as read.\\ + V s & Set the {\bf score} of this article.\\ + V t & Display all score rules applied to this article ({\bf track}).\\ + V x & {\bf Expunge} all low-scored articles. [score]\\ + V C & {\bf Customize} the current score file through a user-friendly + interface.\\ + V S & Display the {\bf score} of this article.\\ + \bf A p m l& Make a scoring entry based on this article.\\ + \end{keys} + The four letters stand for:\\* + \quad \B{A}ction: I)ncrease, L)ower;\\* + \quad \B{p}art: a)utor (from), s)ubject, x)refs (cross-posting), d)ate, l)ines, + message-i)d, t)references (parent), f)ollowup, b)ody, h)ead (all headers);\\* + \quad \B{m}atch type:\\* + \qquad string: s)ubstring, e)xact, r)egexp, f)uzzy,\\* + \qquad date: b)efore, a)t, n)this,\\* + \qquad number: $<$, =, $>$;\\* + \quad \B{l}ifetime: t)emporary, p)ermanent, i)mmediate. + + If you type the second letter in uppercase, the remaining two are assumed + to be s)ubstring and t)emporary. + If you type the third letter in uppercase, the last one is assumed to be + t)emporary. + + \quad Extra keys for manual editing of a score file:\\* + \begin{keys}{C-c C-c} + C-c C-c & Finish editing the score file.\\ + C-c C-d & Insert the current {\bf date} as number of days.\\ + \end{keys} + } + } \newcommand{\ExtractSeries}{% formerly \Xsubmap -{\esamepage -Gnus recognizes if the current article is part of a series (multipart -posting whose parts are identified by numbers in their subjects, e.g.{} -1/10\dots10/10) and processes the series accordingly. You can mark and -process more than one series at a time. If the posting contains any -archives, they are expanded and gathered in a new group.\\* -\begin{keys}{X p} -X b & Un-{\bf binhex} these series. [p/p]\\ -X o & Simply {\bf output} these series (no decoding). [p/p]\\ -X p & Unpack these {\bf postscript} series. [p/p]\\ -X s & Un-{\bf shar} these series. [p/p]\\ -X u & {\bf Uudecode} these series. [p/p]\\ -\end{keys} - -Each one of these commands has four variants:\\* -\begin{keys}{X v \bf Z} -X \bf z & Decode these series. [p/p]\\ -X \bf Z & Decode and save these series. [p/p]\\ -X v \bf z & Decode and view these series. [p/p]\\ -X v \bf Z & Decode, save and view these series. [p/p]\\ -\end{keys} -where {\bf z} or {\bf Z} identifies the decoding method (b, o, p, s, u). - -An alternative binding for the most-often used of these commands is\\* -\begin{keys}{C-c C-v C-v} -C-c C-v C-v & (X v u) Uudecode and view these series. [p/p]\\ -\end{keys} -}} + {\esamepage + Gnus recognizes if the current article is part of a series (multipart + posting whose parts are identified by numbers in their subjects, e.g.{} + 1/10\dots10/10) and processes the series accordingly. You can mark and + process more than one series at a time. If the posting contains any + archives, they are expanded and gathered in a new group.\\* + \begin{keys}{X p} + X b & Un-{\bf binhex} these series. [p/p]\\ + X o & Simply {\bf output} these series (no decoding). [p/p]\\ + X p & Unpack these {\bf postscript} series. [p/p]\\ + X s & Un-{\bf shar} these series. [p/p]\\ + X u & {\bf Uudecode} these series. [p/p]\\ + \end{keys} + + Each one of these commands has four variants:\\* + \begin{keys}{X v \bf Z} + X \bf z & Decode these series. [p/p]\\ + X \bf Z & Decode and save these series. [p/p]\\ + X v \bf z & Decode and view these series. [p/p]\\ + X v \bf Z & Decode, save and view these series. [p/p]\\ + \end{keys} + where {\bf z} or {\bf Z} identifies the decoding method (b, o, p, s, u). + + An alternative binding for the most-often used of these commands is\\* + \begin{keys}{C-c C-v C-v} + C-c C-v C-v & (X v u) Uudecode and view these series. [p/p]\\ + \end{keys} + }} \newcommand{\ExitSummary}{% formerly \Zsubmap -{\esamepage -\begin{keys}{Z G} -Z Z & (q, Z Q) Exit this group.\\ -Z E & (Q) {\bf Exit} without updating the group information.\\ -% -Z c & (c) Mark all unticked articles as read ({\bf catch-up}) and exit.\\ -Z C & Mark all articles as read ({\bf catch-up}) and exit.\\ -% -Z n & Mark all articles as read and go to the {\bf next} group.\\ -Z N & Exit and go to {\bf the} next group.\\ -Z P & Exit and go to the {\bf previous} group.\\ -% -Z G & (M-g) Check for new articles in this group ({\bf get}).\\ -Z R & Exit this group, and then enter it again ({\bf reenter}). -[Prefix: select all articles, read and unread.]\\ -Z s & Update and save the dribble buffer. [Prefix: save .newsrc* as well]\\ -\end{keys}}} + {\esamepage + \begin{keys}{Z G} + Z Z & (q, Z Q) Exit this group.\\ + Z E & (Q) {\bf Exit} without updating the group information.\\ + % + Z c & (c) Mark all unticked articles as read ({\bf catch-up}) and exit.\\ + Z C & Mark all articles as read ({\bf catch-up}) and exit.\\ + % + Z n & Mark all articles as read and go to the {\bf next} group.\\ + Z N & Exit and go to {\bf the} next group.\\ + Z P & Exit and go to the {\bf previous} group.\\ + % + Z G & (M-g) Check for new articles in this group ({\bf get}).\\ + Z R & Exit this group, and then enter it again ({\bf reenter}). + [Prefix: select all articles, read and unread.]\\ + Z s & Update and save the dribble buffer. [Prefix: save .newsrc* as well]\\ + \end{keys} + } + } \newcommand{\MsgCompositionGeneral}{% -Press C-c ? in the composition-buffer to get this information. -{\esamepage -\begin{keys}{C-c C-m} -% sending -C-c C-c & Send message and exit. [Prefix: send via foreign server]\\ -C-c C-s & Send message. [Prefix: send via foreign server]\\ -C-c C-d & Don't send message (save as \textbf{draft}).\\ -C-c C-k & \textbf{Kill} message-buffer.\\ -C-c C-m & {\bf Mail} reply to the address near point. -[Prefix: include the original]\\ -% modify headers/body -C-c C-t & Paste the recipient's address into \textbf{To:}-field.\\ -C-c C-n & Insert a \textbf{Newsgroups:}-header.\\ -C-c C-o & Sort headers.\\ -C-c C-e & \textbf{Elide} region.\\ -C-c C-v & Kill everything outside region.\\ -C-c C-r & Do a \textbf{Rot-13} on the body.\\ -C-c C-w & Insert signature (from `message-signature-file').\\ -C-c C-z & Kill everything up to signature.\\ -C-c C-y & \textbf{Yank} original message.\\ -C-c C-q & Fill the yanked message.\\ -\end{keys}}} + Press C-c ? in the composition-buffer to get this information. + {\esamepage + \begin{keys}{C-c C-m} + % sending + C-c C-c & Send message and exit. [Prefix: send via foreign server]\\ + C-c C-s & Send message. [Prefix: send via foreign server]\\ + C-c C-d & Don't send message (save as \textbf{draft}).\\ + C-c C-k & \textbf{Kill} message-buffer.\\ + C-c C-m & {\bf Mail} reply to the address near point. + [Prefix: include the original]\\ + % modify headers/body + C-c C-t & Paste the recipient's address into \textbf{To:}-field.\\ + C-c C-n & Insert a \textbf{Newsgroups:}-header.\\ + C-c C-o & Sort headers.\\ + C-c C-e & \textbf{Elide} region.\\ + C-c C-v & Kill everything outside region.\\ + C-c C-r & Do a \textbf{Rot-13} on the body.\\ + C-c C-w & Insert signature (from `message-signature-file').\\ + C-c C-z & Kill everything up to signature.\\ + C-c C-y & \textbf{Yank} original message.\\ + C-c C-q & Fill the yanked message.\\ + \end{keys} + } + } \newcommand{\MsgCompositionMovementArticle}{% -The following functions create the header-field if necessary. -{\esamepage -\begin{keys}{C-c C-f C-u} -C-c TAB & Move to \textbf{signature}.\\ -C-c C-b & Move to \textbf{body}.\\ -C-c C-f C-t & Move to \textbf{To:}.\\ -C-c C-f C-c & Move to \textbf{Cc:}.\\ -C-c C-f C-b & Move to \textbf{Bcc:}.\\ -C-c C-f C-w & Move to \textbf{Fcc:}.\\ -C-c C-f C-s & Move to \textbf{Subject:}.\\ -C-c C-f C-r & Move to \textbf{Reply-To:}.\\ -C-c C-f C-f & Move to \textbf{Followup-To:}.\\ -C-c C-f C-n & Move to \textbf{Newsgroups:}.\\ -C-c C-f C-u & Move to \textbf{Summary:}.\\ -C-c C-f C-k & Move to \textbf{Keywords:}.\\ -C-c C-f C-d & Move to \textbf{Distribution:}.\\ -\end{keys}}} + The following functions create the header-field if necessary. + {\esamepage + \begin{keys}{C-c C-f C-u} + C-c TAB & Move to \textbf{signature}.\\ + C-c C-b & Move to \textbf{body}.\\ + C-c C-f C-t & Move to \textbf{To:}.\\ + C-c C-f C-c & Move to \textbf{Cc:}.\\ + C-c C-f C-b & Move to \textbf{Bcc:}.\\ + C-c C-f C-w & Move to \textbf{Fcc:}.\\ + C-c C-f C-s & Move to \textbf{Subject:}.\\ + C-c C-f C-r & Move to \textbf{Reply-To:}.\\ + C-c C-f C-f & Move to \textbf{Followup-To:}.\\ + C-c C-f C-n & Move to \textbf{Newsgroups:}.\\ + C-c C-f C-u & Move to \textbf{Summary:}.\\ + C-c C-f C-k & Move to \textbf{Keywords:}.\\ + C-c C-f C-d & Move to \textbf{Distribution:}.\\ + \end{keys} + } + } \newcommand{\MsgCompositionMML}{% -{\esamepage -\begin{keys}{M-m P} -M-m f & (C-c C-a) Attach \textbf{file}.\\ -M-m b & Attach contents of \textbf{buffer}.\\ -M-m e & Attach \textbf{external} file (ftp..).\\ -M-m P & Create MIME-\textbf{preview} (new buffer).\\ -M-m v & \textbf{Validate} article.\\ -M-m p & Insert \textbf{part}.\\ -M-m m & Insert \textbf{multi}-part.\\ -M-m q & \textbf{Quote} region.\\ -% TODO: narrow headers (M-m n) ? -\end{keys}}} + {\esamepage + \begin{keys}{M-m P} + M-m f & (C-c C-a) Attach \textbf{file}.\\ + M-m b & Attach contents of \textbf{buffer}.\\ + M-m e & Attach \textbf{external} file (ftp..).\\ + M-m P & Create MIME-\textbf{preview} (new buffer).\\ + M-m v & \textbf{Validate} article.\\ + M-m p & Insert \textbf{part}.\\ + M-m m & Insert \textbf{multi}-part.\\ + M-m q & \textbf{Quote} region.\\ + % TODO: narrow headers (M-m n) ? + \end{keys} + } + } %% TODO: \newcommand{\ServerMode}{% -{\esamepage -To enter this mode, press `\^' while in Group mode.\\* -\begin{keys}{SPC} -SPC & (RET) Browse this server.\\ -a & {\bf Add} a new server.\\ -c & {\bf Copy} this server.\\ -e & {\bf Edit} a server.\\ -k & {\bf Kill} this server. [scope]\\ -l & {\bf List} all servers.\\ -q & Return to the group buffer ({\bf quit}).\\ -s & Request that the server scan its sources for new articles.\\ -g & Request that the server regenerate its data.\\ -y & {\bf Yank} the previously killed server.\\ -\end{keys}}} + {\esamepage + To enter this mode, press `\^' while in Group mode.\\* + \begin{keys}{SPC} + SPC & (RET) Browse this server.\\ + a & {\bf Add} a new server.\\ + c & {\bf Copy} this server.\\ + e & {\bf Edit} a server.\\ + k & {\bf Kill} this server. [scope]\\ + l & {\bf List} all servers.\\ + q & Return to the group buffer ({\bf quit}).\\ + s & Request that the server scan its sources for new articles.\\ + g & Request that the server regenerate its data.\\ + y & {\bf Yank} the previously killed server.\\ + \end{keys} + } + } \newcommand{\BrowseServer}{% -{\esamepage -To enter this mode, press `B' while in Group mode.\\* -\begin{keys}{RET} -RET & Enter the current group.\\ -SPC & Enter the current group and display the first article.\\ -? & Give a very short help message.\\ -n & Go to the {\bf next} group. [distance]\\ -p & Go to the {\bf previous} group. [distance]\\ -q & (l) {\bf Quit} browse mode.\\ -u & Subscribe to the current group. [scope]\\ -\end{keys}}} + {\esamepage + To enter this mode, press `B' while in Group mode.\\* + \begin{keys}{RET} + RET & Enter the current group.\\ + SPC & Enter the current group and display the first article.\\ + ? & Give a very short help message.\\ + n & Go to the {\bf next} group. [distance]\\ + p & Go to the {\bf previous} group. [distance]\\ + q & (l) {\bf Quit} browse mode.\\ + u & Subscribe to the current group. [scope]\\ + \end{keys} + } + } + +\newcommand{\GroupUnplugged}{% + {\esamepage + \begin{keys}{J S} + J j & Toggle plugged-state.\\ + J s & Fetch articles from current group.\\ + J s & Fetch articles from all groups for offline-reading.\\ + J S & \textbf{Send} all sendable messages in the drafts group.\\ + % + J c & Enter \textbf{category} buffer.\\ + J a & \textbf{Add} this group to an Agent category [p/p].\\ + J r & \textbf{Remove} this group from its Agent category [p/p].\\ + \end{keys} + } + } + +\newcommand{\SummaryUnplugged}{% + {\esamepage + \begin{keys}{J M-\#} + J \# & \textbf{Mark} the article for downloading.\\ + J M-\# & \textbf{Unmark} the article for downloading.\\ + @ & \textbf{Toggle} whether to download the article.\\ + J c & Mark all undownloaded articles as read (\textbf{catch-up}).\\ + \end{keys} + } + } + +\newcommand{\ServerUnplugged}{% + {\esamepage + \begin{keys}{J a} + J a & \textbf{Add} the current server to the list of servers covered + by the agent.\\ + J r & \textbf{Remove} the current server from the list of servers covered + by the agent.\\ + \end{keys} + } + } diff --git a/texi/refcard.tex b/texi/refcard.tex index f5ce217..5e5731f 100644 --- a/texi/refcard.tex +++ b/texi/refcard.tex @@ -1,5 +1,5 @@ % -*- latex -*- -% Reference Card for (ding) Gnus: to be processed with LaTeX2e +% Reference Card for (ding) Gnus 5.8.x: to be processed with LaTeX2e \documentclass{article} \def\Guide{Card}\def\guide{card} \def\logoscale{0.25} @@ -8,41 +8,77 @@ % top and bottom of the page. \oddsidemargin -0.5in \evensidemargin -0.5in -% TODO: -% - how can you get 'tabular' to wrap around pages ? -% - some things might not be updated: scoring and server modes, maybe more +% README: +% *** purpose +% this was originally thought of as a reference card, but as it is now 5+ +% pages long, I doubt that it is more useful than the online-help. It helped +% to get an overview for the Gnus-functionality. +% +% *** files +% refcard.tex (this file), gnusref.tex ("include"-file) and gnuslogo.refcard +% (Gnus logo). +% +% *** printing (about 5 pages now: write me if you can make it shorter..) +% if you are using latex-mode, you do C-c C-f (process with latex), +% C-c C-v (view using xdvi/dvi2tty) and C-c C-p (print) +% the original author has set up the page dimensions cleverly so that this +% should print on both letter and a4 (see note above) +% $latex refcard.tex +% this creates a file refcard.dvi which you can preview using +% $xdvi refcard.dvi [C-c C-v] +% and print using something like +% $dvips refcard.dvi +% which creates refcard.ps (print using 'lpr refcard.ps') +% +% *** customization: +% the part following \begin{document} in this file consists of a macro for +% each section and section-headers (\section*{..}). It should be easy to +% reorder things and/or remove sections (put '%' at the beginning of the line). +% (i.e. you might want to omit \notes in the printed version ?) +% If you think that the order is not logical and you have ideas for +% improvements, please send mail to the current maintainer. +% +% *** ChangeLog: +% 2000-03-26 Felix Natter : +% refcard updated for Gnus 5.8.x: please send corrections or suggestions +% to the above email-address +% changes since 2000-03-26: +% o Create/Edit Foreign Groups: remove S b and S B (not available in 5.8.3) +% o Send/Reply etc.: remove w and W (the only bindings are S w and S W) +% Mon Apr 3 18:41:09 2000: +% o added C-c C-n and C-c C-t (Article) +% o C-c C-a as alias for M-m f (Article) + some other M-m *-bindings +% o added section for ``jumping'' in article-mode +% o now there's a difference between ``reading'' and ``composition'' +% (article-modes) +% Apr 24th, 2000: +% o added D s, D S and D t for nndraft +% o group-mode: i.e. C-u RET does not actually fetch fewer articles; also ,=>; +% Fri Jul 14 23:15:43 2000: +% o added README-section +% Thu Jul 27 20:51:01 2000: +% o added Unplugged-commands +% +% *** TODO: +% o (LaTeX) how can you get 'tabular' to wrap around pages ? +% o some things might not be updated: scoring and server modes, maybe more +% o Gnus Unplugged category-buffer commands need to be written \begin{document} -\newlength{\logowidth} -\setlength{\logowidth}{6.861in} -\newlength{\logoheight} -\setlength{\logoheight}{7.013in} +\newlength{\logowidth} \setlength{\logowidth}{6.861in} +\newlength{\logoheight} \setlength{\logoheight}{7.013in} -\def\progver{5.8}\def\refver{5.8} % program and refcard versions -\def\date{26th of March 2000} +\def\progver{5.8}\def\refver{5.8-4} % program and refcard versions +\def\date{July 27th, 2000} \def\author{Vladimir Alexiev $<$vladimir@cs.ualberta.ca$>$} \raggedbottom\raggedright -% -% 2000-03-26 Felix Natter : -% refcard updated for Gnus 5.8.3: please send corrections or suggestions -% to the above email-address - -% changes since 2000-03-26: -% - Create/Edit Foreign Groups: remove S b and S B (not there in 5.8.3) -% - Send/Reply etc.: remove w and W (the only bindings are S w and S W) -% Mon Apr 3 18:41:09 2000: -% - added C-c C-n and C-c C-t (Article) -% - C-c C-a as alias for M-m f (Article) + some other M-m *-bindings -% - added section for ``jumping'' in article-mode -% - now there's a difference between ``reading'' and ``composition'' -% article-modes \twocolumn %\tiny \scriptsize \pagestyle{plain} -% this contains a set of commands containing the actual key-sequences +% this contains a set of commands containing the actual sections % (and some explanations). \input{gnusref} @@ -54,83 +90,90 @@ % \section*{Group-Mode} \GroupModeGeneral - \subsection*{Group Subscribedness-Levels} - \GroupLevels - \subsection*{List Groups} - \ListGroups - \subsection*{Create/Edit Foreign Groups} - \CreateEditGroups - \subsection*{Unsubscribe, Kill and Yank Groups} - \SubscribeKillYankGroups - \subsection*{Mark Groups} - \MarkGroups + \subsection*{Group Subscribedness-Levels} + \GroupLevels + \subsection*{List Groups} + \ListGroups + \subsection*{Create/Edit Foreign Groups} + \CreateEditGroups + \subsection*{Unsubscribe, Kill and Yank Groups} + \SubscribeKillYankGroups + \subsection*{Mark Groups} + \MarkGroups + \subsection*{Group-Unplugged} + \GroupUnplugged % topics in group-mode - \subsection*{Group Topics} - \GroupTopicsGeneral - \subsubsection*{Topic Sorting} - \TopicSorting + \subsection*{Group Topics} + \GroupTopicsGeneral + \subsubsection*{Topic Sorting} + \TopicSorting +% % summary-mode \section*{Summary-Mode} \SummaryModeGeneral - \subsection*{Select Articles} - \SelectArticles -% - \subsection*{Threading} - \Threading -% - \subsection*{Limiting} - \Limiting - \subsection*{Sort the Summary-Buffer} - \SortSummary - \subsection*{Score (Value) Commands} - \Scoring + \subsection*{Select Articles} + \SelectArticles +% + \subsection*{Threading} + \Threading +% + \subsection*{Limiting} + \Limiting + \subsection*{Sort the Summary-Buffer} + \SortSummary + \subsection*{Score (Value) Commands} + \Scoring % - \subsection*{MIME operations from the Summary-Buffer} - \MIMESummary - \subsection*{Extract Series (Uudecode etc)} - \ExtractSeries - \subsection*{Output Articles} - \OutputArticles -% - \subsection*{Post, Followup, Reply, Forward, Cancel} - \PostReplyetc - \subsection*{Message-Composition} - \MsgCompositionGeneral - \subsubsection*{Jumping in message-buffer} - \MsgCompositionMovementArticle - \subsubsection*{Attachments/MML} - \MsgCompositionMML + \subsection*{MIME operations from the Summary-Buffer} + \MIMESummary + \subsection*{Extract Series (Uudecode etc)} + \ExtractSeries + \subsection*{Output Articles} + \OutputArticles +% + \subsection*{Post, Followup, Reply, Forward, Cancel} + \PostReplyetc + \subsection*{Message-Composition} + \MsgCompositionGeneral + \subsubsection*{Jumping in message-buffer} + \MsgCompositionMovementArticle + \subsubsection*{Attachments/MML} + \MsgCompositionMML % marking articles - \subsection*{Mark Articles} - \MarkArticlesGeneral - \subsubsection*{Mark Based on Score} - \MarkByScore - \subsubsection*{The Process Mark} - \ProcessMark - \subsubsection*{Mark Indication-Characters} - \MarkCharacters -% - \subsection*{Mail-Group Commands} - \MailGroups - \subsection*{Draft-Group Commands} - \DraftGroup + \subsection*{Mark Articles} + \MarkArticlesGeneral + \subsubsection*{Mark Based on Score} + \MarkByScore + \subsubsection*{The Process Mark} + \ProcessMark + \subsubsection*{Mark Indication-Characters} + \MarkCharacters +% + \subsection*{Summary-Unplugged} + \SummaryUnplugged + \subsection*{Mail-Group Commands} + \MailGroups + \subsection*{Draft-Group Commands} + \DraftGroup % exiting - \subsection*{Exit the Summary-Buffer} - \ExitSummary + \subsection*{Exit the Summary-Buffer} + \ExitSummary % % \section*{Article Mode (reading)} \ArticleModeGeneral - \subsection*{Wash the Article-Buffer} - \WashArticle - \subsection*{Hide/Highlight Parts of the Article} - \HideHighlightArticle - \subsection*{MIME operations from the Article-Buffer (reading)} - \MIMEArticleMode + \subsection*{Wash the Article-Buffer} + \WashArticle + \subsection*{Hide/Highlight Parts of the Article} + \HideHighlightArticle + \subsection*{MIME operations from the Article-Buffer (reading)} + \MIMEArticleMode % % \section*{Server Mode} \ServerMode + \subsection*{Unplugged-Server} + \ServerUnplugged % % \section*{Browse Server Mode} @@ -142,26 +185,4 @@ \end{document} -% \SummaryMode -% \Gsubmap -% \Bsubmap -% \Dsubmap -% \Tsubmap -% %\pagebreak -% % page 2, right column -% \Msubmap -% \Marks -% %\pagebreak -% \Limiting -% % page 3 -% \Osubmap -% \Ssubmap -% \Xsubmap -% \Vsubmap -% \SortSummary -% \Zsubmap -% \ArticleMode -% \ServerMode -% % page 4 -% \BrowseServer -- 1.7.10.4