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:
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).
% 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"
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
% 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!