Avanti Indietro Indice

15. Slrn

15.1 Introduzione

In questa sezione trovate il file di configurazione, ampiamente commentato, e i tasti principali di slrn. Slrn è un news-reader (un programma capace di collegarsi ad un news-server) che permette di leggere ONLINE i newsgroup. Per questo motivo dovete avere installato un news-server locale (guardate la sezione "Leafnode" dell'Howto per un esempio), in modo da non dover stare collegati a internet tutto il tempo in cui userete i newsgroup: infatti il news-server locale scaricherà le nuove news da quello remoto, e voi usarete il news-reader collegandovi in locale (quindi per usare un news-reader online dovete avere IN FUNZIONE in locale il news-server, anche quando non siete collegati a internet). Per indicare a slrn il server e l'editor da usare, dovrete inserire in $HOME/.bash_profile le seguenti righe (sezione Bash dell'Howto):

NNTPSERVER='127.0.0.1'

SLANG_EDITOR='mcedit %s'

Slrn ha tre modalità di funzionamento:

  1. selezione newsgroup - permette di vedere la lista dei newsgroup presenti sul server (magari visualizzandone solo una parte, tramite wildcard), sottoscrivere o annullare la sottoscrizione ad essi e selezionare quello da consultare
  2. selezione articolo/thread - selezionando un newsgroup entrerete in questa modalità, che permette di scegliere gli articoli da salvare, marcarli come letti o meno, inviare un nuovo articolo, oppure rispondere ad uno già presente con un followup (sul newsgroup) o un reply (per email)
  3. lettura articolo - selezionando un articolo per la lettura, è poi possibile leggerlo, rispondere per email (tasto "r") o sul newsgroup (tasto "f"), salvarlo (tasto "o") o inviarne uno nuovo (tasto "P"), o ancora stamparlo (tasto "y").

Il tasto "?" permette di avere sempre un aiuto, qualunque sia la modalità selezionata. "q" permette di ritornare alla modalità precedente o di uscire se si è in quella di selezione newsgroup. La prima volta che userete slrn, dovrete farlo con l'opzione "-create", che genera, nella directory indicata nel file di configurazione, altre sottodirectory e il file che contiene la copia locale dei newsgroup presenti sul server (nel caso ciò non avvenga, create le directory $HOME/News, $HOME/News/decoded, $HOME/News/other e $HOME/News/postponed, oltre a $HOME/News/.Slrn). In seguito basterà lanciare in comando "slrn" da solo, senza opzioni. In genere al primo avvio vi ritroverete con già sottoscritti alcuni newsgroup cui forse non siete interessati, e avete due possibilità: o scorrere la lista a mano e deselezionare i newsgroup uno ad uno con il tasto "u", oppure uscire e dare i seguenti comandi nella directory $HOME/News:


tr \: \! < .newsrc > .newsrc.new
rm .newsrc
mv .newsrc.new .newsrc

Per effettuare le sottoscrizioni, premere "L" e inserire una parte del nome del newsgroup, tipo: "*.comp.os.*", poi spostatevi sui newsgroup da sottoscrivere e premere "s", infine premete ancora 'L' per visualizzare solo i newsgroup sottoscritti.

A volte può capitare di voler rileggere un articolo o un thread già letto e per questo non più visualizzato da slrn: si può farlo con la sequenza "<Esc>1<Return>" o con "<Esc>1<Esc>p". La prima riscarica dal server tutti gli articoli già letti (riconoscibili da una "D" all'inizio della riga), mentre la seconda riconstruisce solo il thread corrente. Per applicare uno stesso comando a più articoli (ad esempio per salvare un intero thread), selezionateli prima con ";" o "#", e poi applicate il comando normalmente. I file generati da slrn quando si salva un articolo o un thread sono in formato standard mailbox, quindi per aprirli usate l'opzione adatta del vostro mail-reader (per esempio per Mutt usate: "mutt -f /path/del/file/salvato").

Una caratteristica molto utile di slrn è il cosiddetto "scoring": esso permette di assegnare un "punteggio" agli articoli in base ad alcuni criteri. Questo permette ad esempio di marcare come già letti gli articoli con subject che non vi interessano ("killing", da cui killfile, sinonimo di scorefile), oppure di assegnare punteggi alti ad articoli contenenti determinati subject o provenienti da determinate persone, così come di assegnarne di bassi ad altri, facendo in modo da avere nell'elenco degli articoli per primi quelli più interessanti, e via di seguito gli altri. Premendo il tasto "K" su un articolo e rispondendo ad alcune semplici domande, si genera una voce all'interno dello scorefile, che è possibile visionare o modificare con la sequenza di tasti "<Esc>1 K". In genere dovrete usare delle espressioni regolari, potete vederne la sintassi nella sezione di Procmail di questo Howto.

Se volete evitare di scaricare del tutto gli articoli che non vi interessano, dovete impostare di conseguenza il news-server, non il news-reader (guardate la parte apposita nella sezione di Leafnode di questo Howto).

Altri comandi e consigli sono di seguito, nella descrizione dei tasti principali di slrn, mentre molte altre informazioni e macro possono essere trovate nell'ottimo Slrn-Slrnpull-HOWTO di Alessandro Airaghi ( http://web.tiscalinet.it/airaghi).

15.2 File di configurazione .slrnrc


% server da cui scaricare le News e file apposito
% NdA: preferisco tenere i file accessori di configurazione nella newsdir
server "127.0.0.1" "News/.Slrn/jnewrc"
 
% nome utente (parte a sinistra di '@') del proprio indirizzo email
set username "mrshark"
 
% nome dell'host (parte a destra di '@') del proprio indirizzo email
hostname "ELIMINAMI.linuxfan.com"
 
% nome reale
set realname "MrShark - Antonio Fragola"
 
% indirizzo per le risposte (viene usato anche un banale antispam)
set replyto  "mrshark@ELIMINAMI.linuxfan.com"
 
% file contenente la firma da usare
set signature "$HOME/.signature"
 
% stringa da preporre al testo quotato
set quote_string "> "
 
% se diverso da 0, la firma non verrà inclusa nel testo quotato dei followup
set followup_strip_signature 0
 
% se impostato ad 1, slrn non permette di inviare articoli con righe non
% quotate più lunghe di 80 caratteri. Se impostato a 2 verrà solo mostrato
% un avvertimento
set reject_long_lines 2
 
% espressione regolare per riconoscere il testo quotato
ignore_quotes "^ ? ?[><:=|\-]"
 
% stringhe da preporre in follow-up e reply
set followup_string "In data %d, %r scrive:"
set reply_string "In '%n', nell'articolo '%s', hai scritto:"
 
% Header personalizzati da inserire nei nuovi articoli
% consiglio di eliminare l'ultima '\' dalle righe seguenti
% e di inserire la direttiva set_custom... su un'unica riga
set custom_headers "X-Operating-System: Linux 2.2.14 on pingu.mrshark.home\n\
X-Organization: Dark Half SoftWare\n\
X-Disclaimer: Linux - The choice of a GNU generation!"
 
% Header da mostrare quando si legge un articolo
% consiglio di eliminare l'ultima '\' dalla riga seguente
% e di inserire la direttiva visible_headers su un'unica riga
visible_headers "From,Subject:,Newsgroups:,Followup-To:,Reply-To:,\
X-Operating-System:,X-Organization:,X-Disclaimer:"
 
% WWW browser da usare se si è o no in X, in seguito alla pressione di 'U'
set non_Xbrowser "lynx '%s'"
set Xbrowser "netscape '%s' &"
 
% se diverso da 0, mostra il primo articolo quando si passa alla modalità articolo
set show_article 0
 
% se diverso da 0, mostra le descrizioni dei newsgroup se disponibili
set show_descriptions 1
 
% colonna dove inizia la descrizione del gruppo
set group_dsc_start_column 40
 
% se diverso da 0, non vengono effettuati backup del file newsrc
set no_backups 0
 
% segnala sia con un beep che visivamente
set beep 3
 
% se diverso da 0, annulla automaticamente le sottoscrizioni ai nuovi gruppi
set unsubscribe_new_groups 1

% se posto a 0, previene la ricerca di nuovi newsgroup (SOLO con slrn >=0.9.6.3)
set check_new_groups 0

% se 0, visualizza il titolo solo nel primo articolo di un thread
set show_thread_subject 0
 
% usa caratteri ASCII per indicare le relazioni tra messaggi
set simulate_graphic_chars 1
 
% abilita supporto per il mouse in xterm
set mouse 1
 
% usa barra colorata come cursore invece di '->'
set display_cursor_bar 1
 
% se impostato ad 1, un articolo viene segnato come letto se visualizzato
% se imposatato a 0, deve essere l'utente a segnarlo esplicitamente come letto
set auto_mark_article_as_read 0
 
% se impostati a 0, ci si sposta al prossimo articolo/gruppo automaticamente
set query_next_article 1
set query_next_group 1
 
% se impostato a 0, non viene proposto il prompt 'next group:'
set prompt_next_group 1
 
% se impostato a 0, non viene chiesta conferma per follow-up, reply, quit, ecc...
set confirm_actions 1
 
% visualizza prima il subject e poi il nome dell'autore
% 0=niente nome, 2=prima nome e poi subject
set author_display 1
 
% visualizza nome reale dell'autore
set display_author_realname 1
 
% se 0, salva tutti i gruppi durante il salvataggio del file newsrc
% se 1, non salva i gruppi non sottoscritti
% se 2, non salva i gruppi non sottoscritti o non letti
set write_newsrc_flags 0
 
% visualizza '~' alla fine di un articolo
set use_tilde 1
 
% nome dei file che conterranno i propri Post e Reply
% (N.B.: la propria HOME è sottintesa)
set save_posts "News/My_Posts"
set save_replies "News/My_Replies"
 
% file che conterrà i Post falliti. "" per disabilitare
set failed_posts_file "News/Failed_Posts"
 
% nome del file dei punteggi (score). (N.B.: la propria HOME è sottintesa)
scorefile "News/scorefile"
 
% articoli con punteggi superiori a min_high_score vengono posti in cima
% articoli con punteggi inferiori a max_low_score vengono posti alla fine
% articoli con punteggi inferiori a below kill_score vengono eliminati
set min_high_score 1
set max_low_score 0
set kill_score -666
 
% nome della directory in cui vengono posti i file decodificati
% (N.B.: la propria HOME è sottintesa - assicurarsi che esista)
set decode_directory "News/decoded"
% directory dove vengono salvati tutti gli altri file
% (N.B.: la propria HOME è sottintesa - assicurarsi che esista)
set save_directory "News/other"
% directory dove verranno posti gli articoli posposti
% (N.B.: la propria HOME è sottintesa - assicurarsi che esista)
set postpone_directory "News/postponed"
 
% usa la directory TMPDIR per i file temporanei (consiglio per la privacy:
% impostare TMPDIR come indicato in .bash_profile nella sezione BASH del
% Quick&Easy Configuration Howto e creare la directory: $HOME/.tmp)
set use_tmpdir 1
 
% ordina per thread, poi per data con i più recenti prima
set sorting_method 9
 
% visualizza il punteggio (score) nell'elenco
set display_score 1
 
% un header con un nuovo subject inizia un nuovo thread
set new_subject_breaks_threads 1
 
% espandi i thread
set uncollapse_threads 1
 
% legge l'active file in avvio
set read_active 1
 
% manda a capo solo il body, non gli header o il testo quotato
set wrap_flags 4
 
%---------------------------------------------------------------------------
% Supporto Mime
%---------------------------------------------------------------------------
set use_mime 1
set mime_charset "iso-8859-1"
set use_metamail 0
set metamail_command "metamail"
 
% visualizza i numeri di fianco agli articoli, per selezioni veloci
set use_header_numbers 1
 
% If non-zero, prompt for reconnection if the NNTP connection drops.  If zero,
% attempt reconnection without asking user.
set query_reconnect 1
 
% Character to use to hide spoiler text:
set spoiler_char '*'
 
% set to 0 to keep the display still, and just reveal the spoiler
% set to 1 to start a new page when spoiler is revealed
% set to 2 to keep the display still, and reveal ALL spoilers
% set to 3 to start new page and reveal ALL spoilers
set spoiler_display_mode 1
 
% Help text to be displayed at bottom of screen in various modes:
%set art_help_line "bla bla"
%set header_help_line "more bla bla"
%set group_help_line "and even more"
 
%If set to 1, then spool.c will actually check each article file exists when
%reading an overview file.  This adds a perceptible delay (especially in a
%large spool directory), so I've made it an option.  With some servers it is
%almost redundant, whereas with others which don't expire entries from
%overview files regularly, it's almost vital.  If the users sees a lot of
%"article not available" errors, they should probably try turning it on.
set spool_check_up_on_nov 0
 
interpret "News/.Slrn/search.sl"
 
%---------------------------------------------------------------------------
% Colors
%---------------------------------------------------------------------------
color header_number     "brightgreen"   "black" 
color header_name       "brightgreen"   "black" 
color normal            "white"         "black" 
color error             "brightred"     "black" 
color status            "yellow"        "blue" 
color group             "brightgreen"   "black" 
color article           "white"         "black" 
color cursor            "brightcyan"    "blue" 
color author            "yellow"        "black" 
color subject           "brightgreen"   "black" 
color headers           "yellow"        "black" 
color menu              "yellow"        "blue" 
color menu_press        "blue"          "yellow" 
color tree              "brightred"     "black" 
color quotes            "cyan"          "black" 
color quotes1           "yellow"        "black" 
color quotes2           "magenta"       "black" 
color quotes3           "red"           "black" 
color quotes4           "red"           "black" 
color quotes5           "red"           "black" 
color quotes6           "red"           "black" 
color quotes7           "red"           "black" 
color thread_number     "brightblue"    "black" 
color high_score        "brightred"     "black" 
color signature         "red"           "black" 
color description       "blue"          "black" 
color tilde             "brightgreen"   "black" 
color response_char     "cyan"          "black" 
 
%-----------------------------------------------------
% Monochrome attributes for monochrom terminals.   One or more attributes
% may be specified.
%-----------------------------------------------------
mono normal             "none"
mono header_number      "none"
mono header_name        "bold"
mono error              "blink" "bold"
mono status             "reverse"
mono group              "bold"
mono article            "none"
mono cursor             "bold"  "reverse"
mono author             "none"
mono subject            "none"
mono headers            "bold"
mono menu               "reverse"
mono menu_press         "none"
mono tree               "bold"
mono quotes             "underline"
mono thread_number      "bold"
mono high_score         "bold"
mono signature          "none"
mono description        "none"
mono response_char      "bold"

15.3 Tasti principali


Note:
1. ^ sta per CTRL, <qualcosa> sta per il tasto indicato
2. I comandi sono case-sensitive, maiuscole e minuscole sono diverse.
3. Per attivare il tasto '$' per fare le ricerche all'interno dei messaggi,
   dovete inserire nel vostro .slrnrc una riga tipo:
   interpret "News/.Slrn/search.sl"
   dove 'search.sl' è lo script riportato alla fine di questa sezione dell'Howto
                        
Comandi attivi sui gruppi:   
P             invia un articolo nel newsgroup corrente
<Esc>P        invia o modifica un articolo posposto
<Space>       seleziona il newsgroup corrente
<Return>      seleziona il newsgroup corrente
s             sottoscrivi il newsgroup corrente
<Esc>1 s      sottoscrivi i newsgroup che corrispondono al pattern...
u             annulla la sottoscrizione al newsgroup 
<Esc>1 u      annulla la sottoscrizione ai newsgroup corrispondondenti  al pattern...
c             segna tutti gli articoli come letti (catchup)
<Esc>u        segna tutti gli articoli come non letti
 
Movimenti:
<Esc><        spostati in cima all'elenco
<Esc>>        spostati in coda all'elenco
<PageUp>      spostati alla pagina precedente
<PageDown>    spostati alla pagina successiva
<Up>          spostati al gruppo precedente
<Down>        spostati al gruppo successivo
  
Varie:
a             aggiungi un nuovo newsgroup
^L            cancella e ridisegna lo schermo
l             (dis)attiva la visualizzazione dei gruppi che non hanno articoli non letti
L             (dis)attiva l'elenco dei gruppi non sottoscritti
<ESC>1 L      nasconde i gruppi non sottoscritti
/             ricerca una parola nei gruppi ('l' per visualizzare quelli non sottoscritti)
q             esci dal newsreader
G             preleva i nuovi articoli
K             (dis)attiva la modalità punteggi (score)
X             forza il salvataggio del file newsrc
<ESC>a        (dis)attiva la visualizzazione della descrizione del newsgroup
.             ripeti l'ultima sequenza di tasti
 
Comandi attivi sugli articoli:   
Movimenti:
<Space>       seleziona l'articolo o scorri di una pagina
<Del>         scorri l'articolo indietro di una pagina
b             scorri l'articolo indietro di una pagina
<Esc><Up>     scorri l'articolo indietro di una riga
<Esc><Down>   scorri l'articolo avanti di una riga
<Left>        sposta la visualizzazione articolo a sinistra
<Right>       sposta la visualizzazione articolo a destra
 
Articoli:
P             componi un nuovo articolo (NON un follow-up)
f             componi un follow-up all'articolo corrente
<Esc>1 f      componi un follow-up all'articolo corrente inserendo tutti gli header
<Esc>2 f      componi un follow-up all'articolo corrente non quotando l'originale
<Esc>P        invia o modifica un articolo posposto
F             reinvia (forward) l'articolo a qualcuno
r             rispondi via email all'autore
   
Ricerche: 
/             cerca in avanti nell'articolo
a             cerca in avanti un autore
A             cerca all'indietro un autore
s             cerca in avanti un Subject
S             cerca all'indietro un Subject
$             cerca negli articoli (guarda nota N.3)
=             salta al prossimo articolo con il Subject indicato
!             salta al prossimo articolo con il punteggio più alto
 
Varie:
W             (dis)attiva ritorno a capo
t             (dis)attiva la visualizione completa degli header
T             (dis)attiva la visualizione delle righe quotate
h             nascondi la finestra dell'articolo
<Tab>         salta il testo quotato
<Esc>^C       cancella l'articolo (solo se si è l'autore)
y             stampa l'articolo
o             accoda l'articolo, il thread, o gli articoli segnati ad un file
|             manda un articolo a un comando della shell con una pipe
   
Comandi attivi nella finestra degli header:
Movimenti:
<Esc><        spostati in cima all'elenco degli header
<Esc>>        spostati in coda all'elenco degli header
p             spostati al precedente articolo non letto
n             spostati al successivo articolo non letto o gruppo se è raggiunta la fine
L             torna all'ultimo articolo letto
N             salta al newsgroup successivo
<Up>          spostati all'articolo precedente
<Down>        spostati all'articolo successivo
,             torna al precedente articolo segnato
 
Gestione:
d             segna un articolo come letto e spostati al successivo non letto
<Esc>d        segna un thread come letto e spostati al successivo non letto
u             segna un articolo come non letto
;             segna l'articolo nella posizione corrente
c             segna tutti gli articoli come letti (catchup)
<Esc>u        segna tutti gli articoli come non letti
C             segna tutti gli articoli fino alla posizione corrente come letti
<Esc>U        segna tutti gli articoli fino alla posizione corrente come non letti
 
Varie:
<Esc>t        (dis)attiva il raggruppamento del thread
<Esc>a        modifica il formato di visualizzazione degli header
<Esc>s        seleziona il tipo di ordinamento
<Esc>p        cerca l'header genitore, scaricandolo dal server se necessario
<Esc>1<Esc>p  ricostruisci il thread, scaricandolo dal server se necessario
<Esc>^P       cerca tutti gli header figli di quello corrente (chiedendo al server)
K             crea una nuova voce di punteggio (score) in base all'header corrente
<Esc>1 K      modifica il file dei punteggi (score)
*             segna l'articolo affinchè non sia affetto dai comandi di catchup
<Esc>1 *      elimina i segni '*' da tutti gli articoli marcati
x             rimuovi tutti gli articoli letti dall'elenco
.             ripeti l'ultima sequenza di tasti
U             cerca l'URL e seguila
q             esci dalla modalità gruppo                     

15.4 script: "search.sl"


% File ~/News/.Slrn/search.sl
% Questa macro è presente nei sorgenti del programma slrn (slrn-*.tar.gz)
%
% This macro allows one to search throgh the bodies of the articles in
% the current newsgroup.  It binds the function 'search_newsgroup' to
% the '$' key in article mode.
%
% Traduzione: questa macro effettua una ricerca all'interno dei
% messaggi del newsgroup corrente. Associa (in modalità lettura
% articoli) la funzione 'search_newsgroup' al tasto [$].
 
 
variable Search_Last_Art_Search_Str = "";
define search_newsgroup ()
{
variable str;
variable flags;
 
str = read_mini ("Search for regexp", Search_Last_Art_Search_Str,
"");
if (str == "")
return;
 
Search_Last_Art_Search_Str = str;
 
uncollapse_threads ();
 
do
{
flags = get_header_flags ();
 
if (re_search_article (str))
{
pop ();
return;
}
 
set_header_flags (flags);
 
call ("hide_article");
}
while (header_down (1));
 
error ("Not found.");
}
definekey ("search_newsgroup", "$", "article");

Siete pronti per il mondo di Usenet, ma prima leggetevi qualche documento sulla Netiquette!


Avanti Indietro Indice