René Nyffenegger's collection of things on the web | |
René Nyffenegger on Oracle - Most wanted - Feedback
- Follow @renenyffenegger
|
slrn | ||
I've chosen slrn as my newsreader because it comes with fully customizable keyboard short cuts. As I am a vim addict, I have chosen the
shortcuts to be compatible with VI, if possible.
Download
slrn also needs the S-Lang library which can be downloaded from
here.
Compiling (with cygwin)
I don't want to send mails with slrn, so I configure it like so:
$ ./configure --with-mta=null Using slrn together with slrnpull
When I am on the way in a train and don't have anything better to do, I want to read and answer the news. slrnpull can be used for exactly this purpose. In the following, I describe
the setup I have on my laptop (windows).
The following files are involved:
slrn.bat
slrn.bat starts slrn. It needs to be accessible in the %PATH% environment variable.
c:\tools\slrn\slrn.exe --spool -i c:\tools\slrn\slrn.rc -f c:\tools\slrn\jnews.rc
The -i option indicates the init file (in my case: slrn.rc)
The -f option indicates the news rc file (in my case: jnews.rc)
slrn.rc
This is the slrn init file; it configures slrn's behaviour. The various keyboard shortcuts are defined within it.
If slrn is used without slrnpull and it is desired to automatically log
on, a nnrpaccess should be added to the .slrnrc file:
nnrpaccess news.individual.de username password
However, slrnpull authenticates itself, so the following slrnrc file does
not have an nnrpaccess.
set username "rene.nyffenegger" set hostname "gmx.ch" set realname "Rene Nyffenegger" set organization "ADP Analyse, Design & Programmierung GmbH" set signature "c:\\tools\\slrn\\.signature" set server_object "spool" set post_object "slrnpull" set spool_inn_root "c:\\tools\\slrn" set spool_root "c:\\tools\\slrn\\news" set spool_nov_root "c:\\tools\\slrn\\over.view" set editor_command "gvim %s +%d" set Xbrowser "explorer %s" set scorefile "score.file" set mime_charset "iso-8859-1" set sorting_method 11 % 11=> Thread, then sorted by date, most recent last color unread_subject "white" "black" color article "lightgray" "black" color author "magenta" "black" color boldtext "brightblue" "black" color box "black" "white" color cursor "brightgreen" "black" color date "lightgray" "black" color description "lightgray" "black" color error "white" "brightred" color frame "yellow" "blue" color from_myself "brightmagenta" "black" color group "lightgray" "black" color grouplens_display "lightgray" "black" color header_name "green" "black" color header_number "green" "black" color headers "brightcyan" "black" color neg_score "green" "black" color pos_score "blue" "black" color high_score "red" "black" color italicstext "magenta" "black" color menu "yellow" "blue" color menu_press "lightgray" "yellow" color message "lightgray" "black" color normal "lightgray" "black" color pgpsignature "lightgray" "black" color quotes "yellow" "black" color quotes1 "magenta" "black" color quotes2 "brown" "black" color quotes3 "brown" "black" color quotes4 "brown" "black" color quotes5 "brown" "black" color quotes6 "brown" "black" color quotes7 "brown" "black" color response_char "green" "black" color signature "lightgray" "black" color selection "yellow" "blue" color status "yellow" "blue" color subject "lightgray" "black" color thread_number "lightgray" "black" color tilde "green" "black" color tree "red" "black" color underlinetext "cyan" "black" color url "white" "black" color verbatim "green" "black" setkey group line_down "j" setkey group line_down "^N" setkey group line_up "k" setkey group page_down "^V" % Scroll to the next page setkey group page_down "\e[6~" setkey group page_down "\e[G" % (FreeBSD keycode) setkey group page_down "^D" setkey group page_up "\eV" % Scroll to the previous page setkey group page_up "\e[5~" setkey group page_up "\e[I" % (FreeBSD keycode) setkey group page_up "^U" setkey group eob "$G" setkey group bob "1G" setkey group group_search_backward "?" % Group keyword search backward setkey group group_search_forward "/" % Group keyword search forward setkey group select_group "\r" setkey group post "P" % Post an article setkey group post_postponed "\eP" % Post or edit a postponed article setkey group toggle_scoring "K" % Select scoring mode setkey group repeat_last_key "." % Repeat last key sequence setkey group evaluate_cmd "^X\e" % Read line and interpret it as S-Lang setkey group suspend "^Z" % Suspend slrn setkey group quit "Q" % Quit slrn setkey group catchup "C" % Mark all articles as read setkey group uncatchup "\eu" % Mark all articles as unread setkey group add_group "a" % Add a new newsgroup setkey group subscribe "S" % Subscribe to the current newsgroup setkey group unsubscribe "U" % Unsubscribe from the current newsgroup setkey group move_group "m" % Move newsgroup to a different location setkey group transpose_groups "^X^T" % Transpose position of groups setkey group save_newsrc "X" % Force a save of the newsrc file setkey group toggle_group_formats "\033A" % Toggle group display formats setkey group toggle_hidden "l" % Toggle display of hidden groups setkey group toggle_list_all "L" % Toggle listing of unsubscribed groups setkey group redraw "^L" % Redraw the screen setkey group redraw "^R" setkey article next "n" % next unread article setkey article previous "p" % previous unread article setkey article skip_to_next_group "N" % go to the next group setkey article skip_to_next_group "\e\e[C" setkey article skip_to_next_group "\e\eOC" setkey article skip_to_previous_group "\e\e[D" % go to the previous group setkey article skip_to_previous_group "\e\eOD" setkey article next_high_score "!" % next article with high score setkey article next_same_subject "=" % next article with same subject setkey article goto_last_read "L" % go to the last read article setkey article post "P" % Post a new article setkey article post_postponed "\eP" % Post/edit a postponed article setkey article followup "f" % Post a followup setkey article reply "r" % Reply to poster setkey article forward "F" % Forward posting via mail setkey article supersede "\e^S" % Supersede article setkey article cancel "\e^C" % Cancel article setkey article save "O" % Save article setkey article pipe "|" % Pipe article setkey article print "y" % Print article setkey article decode ":" % Decode article setkey article suspend "^Z" % Suspend slrn setkey article quit "q" % Quit slrn setkey article fast_quit "Q" % Quit slrn immediately setkey article article_line_down "\r" setkey article article_line_up "^k" setkey article article_page_down " " % Scroll article down one page setkey article article_page_up "^?" % Scroll article up one page setkey article article_page_up "b" % Scroll article up one page setkey article article_eob ">" % Move to the end of the article setkey article article_bob "<" % Move to the beginning setkey article article_left "\eOD" % Pan article to the left setkey article article_left "\e[D" setkey article article_right "\eOC" % Pan article to the right setkey article article_right "\e[C" setkey article article_search "/" % Search forward in the article setkey article skip_quotes "\t" % Skip beyond quoted text setkey article forward_digest "g" % Skip to next digest setkey article header_line_down "j" setkey article header_line_up "k" setkey article header_page_down "^V" % Scroll down one page setkey article header_page_down "\e[6~" setkey article header_page_down "\e[G" % (FreeBSD keycode) setkey article header_page_down "^D" setkey article header_page_up "\eV" % Scroll up one page setkey article header_page_up "\e[5~" setkey article header_page_up "\e[I" % (FreeBSD keycode) setkey article header_page_up "^U" setkey article header_eob "$G" % Go to last article in group setkey article header_bob "1G" % Go to first article in group setkey article author_search_forward "a" % Author search forward setkey article author_search_backward "A" % Author search backward setkey article subject_search_forward "s" % Subject search forward setkey article subject_search_backward "S" % Subject search backward setkey article delete "d" % Mark article as read setkey article undelete "u" % Mark article as unread setkey article delete_thread "\ed" % Mark (Sub-)Thread as read setkey article catchup_all "c" % Mark all articles as read setkey article catchup_all "\ec" setkey article catchup "\eC" % Catchup (up to this article) setkey article uncatchup_all "\eu" % Mark all articles as unread setkey article uncatchup "\eU" % Uncatchup (up to this article) setkey article expunge "x" % Remove all read articles setkey article toggle_headers "t" % Full headers (on/off) setkey article toggle_rot13 "\eR" % Toggle ROT-13 decryption setkey article toggle_quotes "T" % Display quoted lines (on/off) setkey article toggle_signature "\\" % Show signature (on/off) setkey article wrap_article "W" % Wrap long lines (on/off) setkey article show_spoilers "\e?" % Reveal spoilers (on/off) setkey article toggle_pgpsignature "]" % Show PGP signature (on/off) setkey article toggle_verbatim_marks "[" % Show verbatim marks (on/off) setkey article enlarge_article_window "^" % Enlarge the article window setkey article shrink_article_window "^^" % Shrink the article window setkey article zoom_article_window "z" % Maximize/Unmaximize article setkey article hide_article "h" % Hide/Show the article window setkey article browse_url "U" % Search for URL and follow it setkey article toggle_sort "\eS" % Select threading method setkey article toggle_collapse_threads "\et" % Collapse/Uncollapse thread setkey article toggle_header_formats "\ea" % Toggle header display formats setkey article redraw "^L" % Redraw screen setkey article redraw "^R" % Redraw screen setkey article help "?" % Display help screen setkey article create_score "K" % Create a scorefile entry setkey article view_scores "v" % Show which rules matched setkey article locate_article "\el" % Locate article by Message-ID setkey article get_children_headers "\e^P" % Find all children setkey article get_parent_header "\ep" % Reconstruct thread setkey article mark_spot ";" % Mark current article position setkey article exchange_mark "," % Return to marked article setkey article tag_header "#" % Numerically tag article setkey article untag_headers "\e#" % Remove all numerical tags setkey article toggle_header_tag "*" % Set/remove header tag setkey article repeat_last_key "." % Repeat last key sequence setkey article grouplens_rate_article "0" % Rate article with grouplens setkey article evaluate_cmd "^X\e" % Interpret line as S-Lang setkey readline bol "^A" % Beginning of line setkey readline eol "^E" % End of line setkey readline right "\e[C" % Move right setkey readline left "\e[D" % Move left setkey readline bdel "^H" % Delete backward setkey readline bdel "^?" % Delete Backward setkey readline del "^D" % Delete Foreword setkey readline delbol "^U" % Delete to Beginning of line setkey readline delbow "^W" % Delete to Beginning of word setkey readline deleol "^K" % Delete to End of line setkey readline trim "\e/" % Trim whitespace setkey readline quoted_insert "^Q" % Quoted insert setkey readline complete "\t" % Complete filename setkey readline cycle " " % Cycle among filenames spool_inn_root
Names the directory that contains the active, active.times and newsgroups files.
The active file lists all active newsgroups.
slrnpull.bat
This batch file retrieves the news from the server and puts the written article back to the server.
c:\tools\slrn\slrnpull.exe -h news.individual.de -d c:\tools\slrn
-h: the nntp server
-d: the spool directory, also points to the directory containing slrnpull.conf slrnpull.conf#ch.test 500 14 comp.dsp 500 20 comp.lang.perl.announce 500 20 comp.lang.perl.misc 500 20 comp.lang.perl.moderated 500 20 comp.lang.perl.modules 500 20 comp.lang.perl.tk 500 20 comp.lang.javascript 500 20 comp.os.ms-windows.programmer.win32 500 20 comp.text.xml 500 20 de.comp.lang.javascript 500 14 de.comp.lang.perl.cgi 500 14 de.comp.lang.perl.misc 500 14 de.comp.text.xml 500 14 de.etc.beruf.selbstaendig 500 14 microsoft.public.inetsdk.programming.html_objmodel 500 14 microsoft.public.office.developer.web.components 500 14 misc.business.marketing.moderated 500 14 jnews.rc
jnews.rc lists the newsgroups that by default are displayed when slrn is started.
If there is an exlamation mark (!) after the newsgroup's name, the group is still not displayed, however.
It looks like so:
ch.test! 1-23893 comp.dsp: 1-166900 comp.lang.perl.announce: 1-2337 comp.lang.perl.misc: 1-530803 comp.lang.perl.moderated: 1-12592 comp.lang.perl.modules: 1-65080 comp.lang.perl.tk: 1-38756 comp.lang.javascript: 1-447670 comp.os.ms-windows.programmer.win32: 1-261023 comp.text.xml: 1-62887 de.comp.lang.javascript: 1-165317 de.comp.lang.perl.cgi: 1-52076 de.comp.lang.perl.misc: 1-56821 de.etc.beruf.selbstaendig: 1-168506 microsoft.public.inetsdk.programming.html_objmodel: 1-3158 microsoft.public.office.developer.web.components: 1-8519 misc.business.marketing.moderated: 1-17945
jnews.rc keeps also track of which articles are already read.
slrnpull
slrn needs an out.going directory for the posts that are made and delivered by slrnpull. Otherwise, an posting directory c:\tools\slrn\out.going does not exist error
is issued. In order to prevent that, this directory is created:
mkdir c:\tools\slrn\out.going Directories needed for slrnpull
slrnpull.conf
This file contains the newsgroup to download along with the number of articles. Additionally, it specifies when an article expires.
authinfo
This file is used if authentification is needed on the news server and consists of two lines only! The first line is the user name, the second the password.
Delete old articles
slrnpull deletes expired articles if invoked with the --expire command option.
|