Newsgroup: it.comp.os.linux.software
Titolo: Gnus, primi passi ;-)

Hi all, sto cercando di imparare gnus perche` mi pare piu` completo
rispetto a slrn che usavo in accoppiata con vim. Pero` ho delle domande
da farvi alle quali non ho trovato risposta (probabilmente mi e`
sfuggita) nel gigantesco manuale di gnus. Ecco quel che non capisco:
1) Come fare a "mappare" i tasti con le accentate in modo che 
   sostituisca automaticamente 'ì' con 'i`' e cosi` via.
2) Quando spedisco un articolo se voglio uscire senza salvarlo come
   posso fare (per spedire C-c C-c, ma per evitare che lo spedisca
   oppure metterlo da parte per spedirlo dopo?)
3) Nella lista dei gruppi mi posiziono su un gruppo e schiaccio 'a',
   pero` quando mi trovo ad editare il messaggio deve scrivere a mano
   il nome del newsgroup; come renderlo automatico in base al gruppo su
   cui sono posizionato?
4) Cosa mettere nello ~/.gnus affinche` i threads siano disposti in
   ordine di tempo -ma- con sopra i piu` recenti e sotto quelli vecchi?
   gnus-thread-sort-by-date me lo mette nell'ordine inverso rispetto a 
   quello voluto.
5) Come usare programmi tipo 'par' qui dentro emacs?
6) Ho letto che esisteva un mini-HOWTO su gnus in ita; ma la pagina su 
   cui era non risulta piu` disponibile; sapete qualcosa? Altra doc.
   sempre in ita...??
Mi scuso per la marea di domande ma non avendo mai usato emacs mi trovo
molto spaesato ;-)
Ciao
-- 
err: signature too big.

 sfuggita) nel gigantesco manuale di gnus. Ecco quel che non capisco:
Non uso gnus quindi non so risponderti, ma ti posso dire che esiste
uno gnus-tutorial in inglese non gigantesco (l'ho scaricato ma non ho
annotato l'url, se non lo trovi te lo mando), e varie informazioni
nell'apposita categoria su 
www.emacswiki.org
 (sito must per utenti
emacs di ogni livello).
Per il resto, la mia miniguida su emacs la conosci gia` ma penso tu
sia gia` al livello al quale non se ne ha piu` bisogno. :-)
Massimiliano

 writes:
 
matte> Hi all, sto cercando di imparare gnus perche` mi pare piu` completo
matte> rispetto a slrn che usavo in accoppiata con vim. Pero` ho delle domande
matte> da farvi alle quali non ho trovato risposta (probabilmente mi e`
matte> sfuggita) nel gigantesco manuale di gnus. Ecco quel che non capisco:
matte> 1) Come fare a "mappare" i tasti con le accentate in modo che 
matte>    sostituisca automaticamente 'ì' con 'i`' e cosi` via.
Hmmm,  premesso  che  se   indichi  che  codifica  usi  (iso-8859.1  o
iso-8859.15) puoi  usare le  accentate (Emacs ti  sa farti  mettere le
accentate anche se non le hai sulla tastiera :)) e mi pare che la cosa
si faccia con la  riga X-Coding-System: iso-8859.1 (le correzioni sono
le  benvenute), puoi  attaccare allo  hook  gnus-article-mode-hook una
funzione che ti rimappi  localmente le accentate su funzioncine custom
che mettono dentro la stringa che preferisci:
;; Per le altre cambi nome e caratteri. Possono essere usate per inserire
;; num volte un carattere con M-(num) à
(defun old-time-agrave ( val )
  "Inserisce a` invece di à"
  (interactive "P")
  (cond ((eq val nil) (setq val 1)))
  (while (< 0 val)
    (execute-kbd-macro "a`")
    (set 'val (1- val))))
(defun old-time-accents ()
   (local-set-key "à" 'old-time-agrave)
   (local-set-key "ì" 'old-time-igrave)
   (local-set-key "é" 'old-time-eacute)
   (local-set-key "è" 'old-time-egrave)
   (local-set-key "ù" 'old-time-ugrave)
   (local-set-key "ò" 'old-time-ograve))
 
(add-hook 'gnus-article-mode-hook 'old-time-accents)
matte> 2) Quando spedisco un articolo se voglio uscire senza salvarlo come
matte>    posso fare (per spedire C-c C-c, ma per evitare che lo spedisca
matte>    oppure metterlo da parte per spedirlo dopo?)
Lo salvi come draft, poi lo ricarichi ed usi "gnus-article-mode"
Per eliminarlo, C-x k
-- 
Gian  | main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Uberto|                        David Korn, 1987 ioccc best one liner 
Lauri |-------------------------------------------------------------------
(aka saint) >>Vedere X-Nospam nell'header - See X-Nospam field in Header<<

 writes:
[...]
`matte> 1) Come fare a "mappare" i tasti con le accentate in modo che
`matte> sostituisca automaticamente 'ì' con 'i`' e cosi` via.
Prima faccio notare che sono finiti i tempi delle accentate che non
vengono più mostrate correttamente da alcuni terminali. Ormai questa
esigenza è rimasta solo per i subject. In Emacs comunque si possono
assegnare combinazioni di tasti ad intere parti di lisp (p.e. macro)
I codici dipendono dal modo che si usa per l'input (X, console,
ISO...) e da qualche parte ho visto strade diverse per arrivare allo
scopo medesimo. In ~/.gnus basta questo (da me in X):
(add-hook 'message-mode-hook
	  (lambda ()
	    (progn
	      (local-set-key [?\340] "a`")
	      (local-set-key [?\350] "e`")
	      (local-set-key [?\351] "e'")
	      (local-set-key [?\354] "i`")
	      (local-set-key [?\362] "o`")
	      (local-set-key [?\371] "u`"))))
Per attivarlo da subito, posizionati dopo l'ultima parentesi e digita
C-x C-e.
`matte> 2) Quando spedisco un articolo se voglio uscire senza salvarlo
`matte> come posso fare (per spedire C-c C-c, ma per evitare che lo
`matte> spedisca oppure metterlo da parte per spedirlo dopo?)
C-x C-s Lo salvi semplicemente, Gnus te lo mette nei draft e puoi
rimodificarlo dopo.
Si deve aggiornare la lista dei gruppi per vedere i nuovi messaggi
("g") - e quindi i nuovi draft.
`matte> 3) Nella lista dei gruppi mi posiziono su un gruppo e
`matte> schiaccio 'a', pero` quando mi trovo ad editare il messaggio
`matte> deve scrivere a mano il nome del newsgroup; come renderlo
`matte> automatico in base al gruppo su cui sono posizionato?
Mi pare più semplice se premi invio (entri dentro al gruppo) e qui 
premi "a" per scrivere un messaggio.
`matte> 4) Cosa mettere nello ~/.gnus affinche` i threads siano
`matte> disposti in ordine di tempo -ma- con sopra i piu` recenti e
`matte> sotto quelli vecchi?  gnus-thread-sort-by-date me lo mette
`matte> nell'ordine inverso rispetto a quello voluto.
Prendo dal manuale di Gnus (sezione "summary buffer/sorting"):
«If you want to sort by score and then reverse arrival order, you
could say something like:
     (setq gnus-thread-sort-functions
           '((lambda (t1 t2)
               (not (gnus-thread-sort-by-number t1 t2)))
             gnus-thread-sort-by-score))
»
`matte> 5) Come usare programmi tipo 'par' qui dentro emacs?
Eheheh. Inutili ci sono auto-fill-mode, filladapt-mode e decine di
altri modi utili (flyspell-mode, supercite,...).
`matte> 6) Ho letto che esisteva un mini-HOWTO su gnus in ita; ma la
`matte> pagina su cui era non risulta piu` disponibile; sapete
`matte> qualcosa? Altra doc.  sempre in ita...??
Ho già risposto a questa domanda (tm) :)
`matte> Mi scuso per la marea di domande ma non avendo mai usato emacs
`matte> mi trovo molto spaesato ;-)
Ti consiglio di imparare prima un po' di Emacs e col tempo le domande
su Gnus troveranno risposte da sole.
Ciao
Marco

 sia gia` al livello al quale non se ne ha piu` bisogno. :-)
Ci ho ridato un occhiata, in effetti qualcosa mi era sfuggito si ;-)


 Per eliminarlo, C-x k
TNX, questo mi mancava ;-)


> Lo salvi come draft, poi lo ricarichi ed usi "gnus-article-mode"
`> Intendi C-x C-s, successivamente C-x k e poi M-x gnus-article-mode e
`> dovrebbe apparire, oppure ho capito male?
Ti manca un C-x C-f per ricaricarlo :) prima del M-x gnus-article-mode


>>>> "k" == kaboom  <kab...@NOSPAM.bah> writes:
k> (add-hook 'message-mode-hook
k> 	  (lambda ()
k> 	    (progn
k> 	      (local-set-key [?\340] "a`")
k> 	      (local-set-key [?\350] "e`")
k> 	      (local-set-key [?\351] "e'")
k> 	      (local-set-key [?\354] "i`")
k> 	      (local-set-key [?\362] "o`")
k> 	      (local-set-key [?\371] "u`"))))
Carino, con la funzione anonima... Hmmm, e local-set-key accetta anche
la stringa, ovvio,  command e` o un valore o  una funzione che ritorna
un valore. Non si finisce mai  di imparare, questo mi accorcera` di un
tot il .emacs.

 su Gnus troveranno risposte da sole.
Ok. Comunque direi che mi trovo abbastanza bene, e lo uso da soli 3
giorni. Devo ancora approfondire lo scoring (ho cambiato nr appunto
per questo), ma sono sulla buona strada.
Ah, ultima domanda; ho intravvisto la possibilita` di modificare la
visualizzazione dei topics nella lista ma non sono riuscito a
cambiarla ne` tantomeno ho capito se sia possibile creare una sorta di
"albero" tipo simulate_graphics_char di slrn. Una cosa cosi`:
Topic One [Tizio]                                               [Data]
+- Re: Topic One [Caio]                                         [Data]
|- Re: Topic One [Autore3]                                      [Data]
|  `+- Re: Topic One [Caio]                                     [Data]
|   `- Re: Topic One [Tizio]                                    [Data]
`- Re: Topic One [Autore4]                                      [Data]
(...come usavo in slrn) E` fattibile oppure sarebbe troppo complesso?
Ciao e grazie


 Ti manca un C-x C-f per ricaricarlo :) prima del M-x gnus-article-mode
Ah quindi lo devo caricare come un normale file....ok


 [gio, 22 nov 2001 alle 20:36 GMT]:
Pardon, il subject del thread non viene ripetuto, e` cosi`:
Topic One - Tizio						[Data]
+-> Caio							[Data]
|-> Autore3							[Data]
| +-> Caio							[Data]
| `-> Tizio							[Data]
`-> Autore4							[Data]
 
Ciao


 writes:
`> In effetti M-10e scriveva 10 e, ma non mettela l'accento inverso "`",
`> comunque con il metodo suggeritomi da kaboom funge bene ;-)
Se  ti consola  ho  adottato anche  io  il metodo  di  kaboom. Era  la
documentazione   ad  essere  leggermente   fuorviante  (o   meglio  io
fuorviabile assai),  per cui non mi  era saltato in  mente che command
poteva essere una stringa letterale.


 [gio, 22 nov 2001 alle
matte> 20:36 GMT]: Pardon, il subject del thread non viene ripetuto,
matte> e` cosi`:
matte> Topic One - Tizio				[Data]
matte> +-> Caio						[Data]
matte> |-> Autore3					[Data]
matte> | +-> Caio					[Data]
matte> | `-> Tizio					[Data]
matte> `-> Autore4					[Data]
 
Gran parte del lavoro si puň fare direttamente impostando la variabile
gnus-summary-line-format, la cui documentazione č piuttosto lunga. Ti
rimando al manuale perché non saprei fare di meglio:
The summary buffer -> Summary Buffer Format -> Summary Buffer Lines
In piů ti possono aiutare le impostazioni per ricostruire il thread:
(setq gnus-fetch-old-headers t
      gnus-build-sparse-threads t)
Ciao
Marco

       gnus-build-sparse-threads t)
Giusto, quella e` un altra cosa che devo fare.
Comunque dopo qualche tempo di ambientamento, ora comincio ad
apprezzarne le grandi qualita`, e` veramente IL newsreader, non c'e`
che dire. Ho apprezzato _moltissimo_ la possibilita` di killare oltre
ai troll e/o rompipalle anche i sub-thread generati da loro (che poi
e` la ragione principale che mi ha spinto a cambiare), perche` se in
icol.* non e` un problema, su it.sport.* e` veramente un suicidio
senza quella funzione! Ho visto che appunto per il kill sul followup
basta inserire un entry nel "gruppo.SCORE" e poi all'entrata del ng si
calcola tutto e inserisce automaticamente i references in
"gruppo.ADAPT", mi e` a riguardo rimasto un solo dubbio: se io 
decidessi di variare il "gruppo.SCORE" variando un punteggio ad
una certa entry nel campo followup, poi per renderlo effettivo dovrei
cancellare a mano il "gruppo.ADAPT" oppure c'e` un altro metodo?
Riguardo all'adaptive scoring e` un concetto che al momento non ho
inquadrato benissimo, ma penso non mi sia utile perche` se ho capito
bene si rifa' ai marks assegnati ai singoli messaggi, io pero` non uso
(se non per segnare le risposte ai miei articoli) assegnare dei
punteggi ai thread e/o autori in particolare; quel che faccio e`
praticamente solo killing e questo mi fa dubitare dell'utilita` che
avrebbe l'adaptive nel _mio caso_. Sbaglio?
Ok, ho finito, vista la lunghezza del post se non rispondi ti capisco
:-D comunque piu` che domande sono impressioni su questo gran bel nr :-)


 writes:
matte> Comunque dopo qualche tempo di ambientamento, ora comincio ad
matte> apprezzarne le grandi qualita`, e` veramente IL newsreader, non
Per me -ma non solo per me!- č anche IL mail reader.
[...]
matte> "gruppo.ADAPT", mi e` a riguardo rimasto un solo dubbio: se io
matte> decidessi di variare il "gruppo.SCORE" variando un punteggio ad
matte> una certa entry nel campo followup, poi per renderlo effettivo
matte> dovrei cancellare a mano il "gruppo.ADAPT" oppure c'e` un altro
matte> metodo?
C'č di sicuro un altro metodo, ma devi sorbirti il manuale, perché č
una cosa che non ho fatto mai in questi termini :)
matte> Riguardo all'adaptive scoring e` un concetto che al momento non
matte> ho inquadrato benissimo, ma penso non mi sia utile perche` se
matte> ho capito bene si rifa' ai marks assegnati ai singoli messaggi,
matte> io pero` non uso (se non per segnare le risposte ai miei
matte> articoli) assegnare dei punteggi ai thread e/o autori in
matte> particolare; quel che faccio e` praticamente solo killing e
matte> questo mi fa dubitare dell'utilita` che avrebbe l'adaptive nel
matte> _mio caso_. Sbaglio?
Con l'adaptive scoring si impostano i punteggi in base a delle regole
(anche quelle predefinite) associate ai comandi usati per marcare uno
o piů messaggi; per esempio una lettura (INVIO) del messaggio aumenta
il punteggio del from del messaggio e quello del subject, mentre il
kill (k) li diminuisce. Oltre a queste "azioni" ce ne sono altre che
si possono effettuare sui messaggi/thread ed hanno tutte un proprio
punteggio associato; questo č un esempio (sempre da manuale):
(setq gnus-default-adaptive-score-alist
      '((gnus-unread-mark)
	(gnus-ticked-mark (from 4))
	(gnus-dormant-mark (from 5))
	(gnus-del-mark (from -4) (subject -1))
	(gnus-read-mark (from 4) (subject 2))
	(gnus-expirable-mark (from -1) (subject -1))
	(gnus-killed-mark (from -1) (subject -3))
	(gnus-kill-file-mark)
	(gnus-ancient-mark)
	(gnus-low-score-mark)
	(gnus-catchup-mark (from -1) (subject -1))))
Ci sono altre cose sullo scoring, ma stiamo andando troppo OT :)
Ciao
Marco

 avrebbe l'adaptive nel _mio caso_. Sbaglio?
Invece proprio in quel caso da' il massimo.
L'idea e` questa: un articolo letto assegna un (piccolo) punteggio positivo
al subject e un (ancora piu` piccolo) punteggio positivo
all'autore. Ovviamente un kill da` penalizzazioni. Ora supponiamo che
l'adaptive scoring dia un -10 sul subject per un thread killato, e che tu
abbia un expunge-below (vedi apropos)  a -200. Se hai killato piu` di 20
articoli con quel subject, NON NE VEDRAI ALTRI.
-- 
     /kinkie (kinkie chiocciola tiscalinet punto it)
Ed ora, qualche parola dai nostri sponsor:
If you steal from one author it's plagiarism; if you steal from
many it's research.
		-- Wilson Mizner

 articoli con quel subject, NON NE VEDRAI ALTRI.
Eh io ho capito ma non ne colgo ancora l'utilita`; perche` killare
piu` messaggi, se non mi interessa killo tutto subito con un entry nel
campo subject di gruppo.SCORE . Cioe`, l'unico vantaggio che hai e`
uno scoring graduale con passi pre-impostati da te?? Si si, non penso
che mi sarebbe utile..... bho. Io pensavo fosse qualcosa di
semi-intelligente, cioe` cercasse delle parole comuni nei subject
killati e "capisse" gli argomenti che non mi interessano. Ho capito
tutto sbagliato? Come si capira` non sono una cima con l'inglese ;-D
Ciao
-- 
Giovane si schianta contro un lampione. Spenti entrambi.

 con l'inglese ;-D
E` "intelligentemente stupido". I parametri esatti sono (ovviamente, e` pur
sempre gnus) customizzabili. L'idea e` che e` inutile cercare di essere
troppo intelligenti, un falso positivo e` molto piu` fastidioso di cento
falsi negativi.
-- 
     /kinkie (kinkie chiocciola tiscalinet punto it)
Ed ora, qualche parola dai nostri sponsor:
Rule of Feline Frustration:
	When your cat has fallen asleep on your lap and looks utterly
	content and adorable, you will suddenly have to go to the
	bathroom.

 falsi negativi.
Ok, grazie dei chiarimenti.
