To supplement the online Gnus manuals this is a brief overview of the system. The online docs really do have a lot of information, but I had a very hard time getting started with them, especially using Gnus to read mail.

There are two version of Gnus. Pterodactyl Gnus and old Gnus. My code is only known to work with Pterodactyl Gnus.

Gnus presents articles to you sorted into groups. It can get articles from any number of sources, such as the local spool, remote servers (nntp, pop or imap) local archives and even ftp or directory listings. The grouping is not dictated by the source, so you can mix messages from friends about Gnus with usenet Gnus help newsgrousp, if you so desire. The top level interface to Gnus is the Group Buffer, which lists all your current groups. For instance, mine currently looks like this:


       0: Misc
       0: Seattle-Robotics-Society
       0: gfish@u
       0: gfish@hesse
       0: Niven-List
       0: Saved-Messages
       0: mrd@cs
       0: nnfolder+archive:sent-mail
       0: nndraft:drafts

Pretty intuitive, really. The current group will be highlighted, and you can move between them with arrow keys and enter a group with the enter or space keys. To get this particular set of groups I use the following in my .gnus:

(setq nnmail-split-methods
     '(("Seattle-Robotics-Society" "^Resent-From: srs-list@wipd.com")
	("Niven-List" "^Reply-To: larryniven-l@bucknell.edu")
	("mrd@cs" "^To:.*mrd")
	("mrd@cs" "^To: urbansim")
	("gfish@u" "^To:.*gfish@u")
        ("gfish@hesse" "^To:.*gfish@hesse")
	("Misc" "")))

(setq gnus-message-archive-group "sent-mail") ;; Save sent mail

The nnfolder+archive:sent-mail group is created by the archive line above. nnfolder:drafts is created automatically for rejected messages. You don't have to have them listed if you don't want. C-k will remove a group from the buffer. The group listing will only show groups with new messages by default. I added (gnus-group-list-all-groups) to make it always show all groups.

When you first start Gnus you will not be subscribed to any groups, even if Gnus found mail for them. To subscribe hit 'U' and type in the name of the group. You can also use command completion to see what groups you can subscribe to.

When you enter a group you move to the Summary Buffer, which lists the messages currently in the group. If you have new messages you will see just the new messages, otherwise you will see all the old messages in that group. To view a message you select the same as in the Group Buffer, with enter or space. If you want to delete a message (which I had to do a lot, not wanting all the test messages I had sent to myself cluttering up my archives) the command is 'B del' (that is 'B' followed by delete), though I remapped this to just delete with (define-key gnus-summary-mode-map [delete] 'gnus-summary-delete-article). To return to the Group Buffer hit 'q'.

If you select a message an Article Buffer appears in the lower half of the screen. You can scroll down with space and up with backspace. You are usually not really in the Article Buffer, just viewing it. So you can still use the arrow keys to select a different article in the Summary Buffer. 'n' for next and 'p' for prev also work. If you have no more unread articles, they will offer to take you to the next (or previous) group instead.

To mark a large group of messages as read, simple select them using a normal emacs region and kill them with 'C-x w'. To delete a large number, select them as before and 'M P r' to mark them. You can now 'B del' (or any other command you want applied to all of them).

At any point you can write a new message to send, by hitting 'm'. This will create a new mail buffer. Enter the address, subject and body like you would expect. To cancel it, close it like any other emacs buffer. To send, C-c C-c. While in a Summary Buffer you can also reply to a message with 'r' (without citations) or 'R' (with quoted citations) and forward it with 'f' and 'F'.

MIME attachments are all accessed via their part number, which Gnus will list. Use the part number n as a numerical prefix. To view an attachment 'n K v', to save the attackment 'n K o'.

I use the Insidious Big Brother Database (aka BBDB) as an address book. BBDB is, of course, far more than just an address book, but thats another story. See my .gnus for the code to hook it into Gnus. M-x bbdb will let you search the database or view all of it, and M-x bbdb-create will let you create new bbdb entries. When viewing the database (in the *BBDB* buffer) you can edit a field with 'e' and add a field with C-o. With the code in my .gnus, you can expand names into email address with M-tab. I keep an abreiviated handle for people in their AKA field, so, for example, 'srs' with expand into the address for the Seattle Robotics Society mailing list. With the code given, a small window will open at the bottom of the screen whenever you view a message from someone in your database. ';' will let you edit their Notes field, which can be very convenient.

There, a quick little overview. Pretty simple, really. Read my Gnus setup page for more details on how to get the mail to your machine in the first place. It focuses on some wacky hacks I had to use, but it could be generally useful.