gnus: Virtual Groups
6.7.1 Virtual Groups
--------------------
An “nnvirtual group” is really nothing more than a collection of other
groups.
For instance, if you are tired of reading many small groups, you can
put them all in one big group, and then grow tired of reading one big,
unwieldy group. The joys of computing!
You specify ‘nnvirtual’ as the method. The address should be a
regexp to match component groups.
All marks in the virtual group will stick to the articles in the
component groups. So if you tick an article in a virtual group, the
article will also be ticked in the component group from whence it came.
(And vice versa—marks from the component groups will also be shown in
the virtual group.). To create an empty virtual group, run ‘G V’
(‘gnus-group-make-empty-virtual’) in the group buffer and edit the
method regexp with ‘M-e’ (‘gnus-group-edit-group-method’)
Here’s an example ‘nnvirtual’ method that collects all Andrea Dworkin
newsgroups into one, big, happy newsgroup:
(nnvirtual "^alt\\.fan\\.andrea-dworkin$\\|^rec\\.dworkin.*")
The component groups can be native or foreign; everything should work
smoothly, but if your computer explodes, it was probably my fault.
Collecting the same group from several servers might actually be a
good idea if users have set the Distribution header to limit
distribution. If you would like to read ‘soc.motss’ both from a server
in Japan and a server in Norway, you could use the following as the
group regexp:
"^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$"
(Remember, though, that if you’re creating the group with ‘G m’, you
shouldn’t double the backslashes, and you should leave off the quote
characters at the beginning and the end of the string.)
This should work kinda smoothly—all articles from both groups should
end up in this one, and there should be no duplicates. Threading (and
the rest) will still work as usual, but there might be problems with the
sequence of articles. Sorting on date might be an option here (
Selecting a Group).
One limitation, however—all groups included in a virtual group have
to be alive (i.e., subscribed or unsubscribed). Killed or zombie groups
can’t be component groups for ‘nnvirtual’ groups.
If the ‘nnvirtual-always-rescan’ variable is non-‘nil’ (which is the
default), ‘nnvirtual’ will always scan groups for unread articles when
entering a virtual group. If this variable is ‘nil’ and you read
articles in a component group after the virtual group has been
activated, the read articles from the component group will show up when
you enter the virtual group. You’ll also see this effect if you have
two virtual groups that have a component group in common. If that’s the
case, you should set this variable to ‘t’. Or you can just tap ‘M-g’ on
the virtual group every time before you enter it—it’ll have much the
same effect.
‘nnvirtual’ can have both mail and news groups as component groups.
When responding to articles in ‘nnvirtual’ groups, ‘nnvirtual’ has to
ask the back end of the component group the article comes from whether
it is a news or mail back end. However, when you do a ‘^’, there is
typically no sure way for the component back end to know this, and in
that case ‘nnvirtual’ tells Gnus that the article came from a not-news
back end. (Just to be on the safe side.)
‘C-c C-n’ in the message buffer will insert the ‘Newsgroups’ line
from the article you respond to in these cases.
‘nnvirtual’ groups do not inherit anything but articles and marks
from component groups—group parameters, for instance, are not inherited.