Provided by: manpages-it_0.3.4-1_all bug

NOME

       joe - Joe’s Own Editor ( l’ Editor di Joe )

SINTASSI

       joe [opzioni-globali] [ [opzioni-locali] nomefile ]...

       jstar [opzioni-globali] [ [opzioni-locali] nomefile ]...

       jmacs [opzioni-globali] [ [opzioni-locali] nomefile ]...

       rjoe [opzioni-globali] [ [opzioni-locali] nomefile ]...

       jpico [opzioni-globali] [ [opzioni-locali] nomefile ]...

DESCRIZIONE

       JOE  è  un  potente  editor  di  testo ASCII orientato allo schermo. Ha
       un’interfaccia senza modi  che  è  simile  a  quella  di  molti  editor
       amichevoli  per  PC.  Gli  utenti  di  WordStar  della  Micro-Pro o dei
       linguaggi «Turbo» di Borland dovrebbero sentirsi a casa propria. JOE  è
       un  completo  editor UNIX orientato allo schermo, comunque, ed ha molte
       funzionalità per l’editing di programmi e testo.

       JOE emula inoltre molti altri editor. JSTAR è una  accurata  imitazione
       di WordStar con molte estensioni proprie di «JOE». JPICO è una accurata
       imitazione dell’editor PICO del sistema di posta «Pine», ma  con  molte
       estensioni e miglioramenti. JMACS è una imitazione di GNU-EMACS. RJOE è
       una versione limitata di JOE che permette di effettuare l’editing  solo
       sui file specificati sulla linea di comando.

       Anche  se JOE è in realtà cinque editor diversi, ha tuttavia bisogno di
       un solo eseguibile, ma con cinque nomi differenti. Posponendo  «rc»  al
       nome dell’editor si ottiene il nome del file di inizializzazione di JOE
       che determina le peculiarità di quell’editor.

       JOE is free software;  you can distribute it and/or modify it under the
       terms  of  the  GNU  General  Public  License  as published by the Free
       Software Foundation. (JOE è software libero; può essere distribuito e/o
       modificato   secondo   i  termini  della  GNU  General  Public  License
       pubbilicata dalla Free Software Foundation). Non  ho  in  programma  di
       trasformare   JOE  in  un  prodotto  commerciale  o  shareware.  JOE  è
       disponibile su Internet  via  FTP  anonimo  presso  ftp.std.com,  file:
       src/editors/joe*.tar.Z.

USO

       Per  avviare  l’editor, digitate joe seguito da zero o più nomi di file
       che volete  sottoporre  ad  editing.  Ogni  nome  di  file  può  essere
       preceduto  da  una impostazione delle opzioni locali (vedere la tabella
       delle opzioni locali in seguito). È possibile fornire  sulla  linea  di
       comando altre opzioni, di natura globale, relative all’editor nella sua
       totalità (vedere la tabella delle opzioni globali in seguito). Se state
       editando  un  nuovo  file,  potete  fornirne  il  nome  quando invocate
       l’editor o all’interno dell’editor stesso quando salvate il nuovo file.
       È  disponibile  una  sintassi  modificata  per  i  nomi  dei  file  per
       permettervi di effettuare l’editing  dell’output  di  programmi,  dello
       standard  input/output o di sezioni di file o device. Vedere la sezione
       Nomi dei file per i dettagli.

       Una volta che ci si trova nell’editor, è possibile  digitare  testo  ed
       utilizzare  speciali  sequenze  di  caratteri di controllo per compiere
       altre operazioni relative  all’editing.  Per  scoprire  quali  sono  le
       sequenze  di caratteri di controllo, si legga il resto di questa pagina
       di man o si digiti ^K H per avere aiuto all’interno dell’editor.

       Ed  ora,  alcuni  fatti  poco  conosciuti  relativi  all’utilizzo   del
       computer:

       Il  simbolo  ^ significa che bisogna premere il tasto Control mentre si
       preme il tasto riportato in seguito (la stessa cosa che si fa con Shift
       per  le  maiuscole).  Alcune combinazioni hanno un equivalente su altri
       tasti, così da non rendere necessaria la pressione del  tasto  control:
       ESC  è  equivalente  a  ^[,  Canc  è  equivalente  a  ^?,  Backspace  è
       equivalente a ^H, Tab è equivalente a ^I, Invio, Enter  o  Return  sono
       equivalenti  a  ^M  e  Linefeed  è  equivalente  a  ^J. Alcune tastiere
       potrebbero dare  problemi  con  alcune  combinazioni  di  caratteri  di
       controllo. Di solito  ^_, ^^ e ^@ possono essere inseriti senza premere
       shift (si provi   a premere ^-, ^6 e ^2).  [N.d.T. Ci si riferisce  qui
       alla disposizione dei tasti sulla tastiera USA, dove @ e ^ si ottengono
       rispettivamente con  Shift+2  e  Shift+6.  Sulla  tastiera  italiana  è
       possibile  ottenere  il  primo  con  (al contrario dello shift,la cui
       omissione è facoltativa, l’AltGr deve essere omesso) ed il secondo  con
       .]   Altre  tastiere  potrebbero  riassegnare  queste combinazioni ad
       altri tasti.  Si provino: ^., ^, e ^/. ^SPAZIO  di  solito  può  essere
       usato  al  posto di ^@. ^\ e ^] vengono interpretati da molti programmi
       di comunicazione, compresi telnet e kermit. Di solito si preme il tasto
       per due volte per farlo passare oltre il programma di comunicazione.

       Dopo aver digitato ^K H, appare la prima finestra di aiuto in cima allo
       schermo. È possibile continuare  ad  inserire  e  modificare  il  testo
       mentre  la  finestra  d’aiuto è attiva. Per cambiare argomento, premere
       ^[, e ^[. (ovvero, ESC , ed ESC . ).  Utilizzare ^K H per rimuovere  la
       finestra di aiuto.

       È  possibile  personalizzare  la  disposizione  dei  tasti, gli schermi
       d’aiuto ed un bel  po’  di  comportamenti  predefiniti  copiando  nella
       propria   home   directory   il   file   di   inizializzazione  di  JOE
       (/etc/joe/joerc sui sistemi Debian) cambiando in .joerc  il  suo  nome.
       Vedere la sezione joerc in seguito.

       Per  fare  in modo che JOE venga utilizzato come editor predefinito per
       la posta elettronica  e  le  news,  bisognerà  impostare  le  variabili
       d’ambiente  EDITOR  e VISUAL nel proprio file di inizializzazione della
       shell  (.cshrc oppure .profile) in modo che facciano riferimento a  JOE
       (joe risiede in /usr/bin/joe sui sistemi Debian).

       Potrebbe  essere  necessario impostare un bel po’ di altri parametri di
       invocazione, in particolare se lo schermo  del  proprio  terminale  non
       viene  aggiornato  come  si  pensa che dovrebbe. Si consulti la sezione
       Variabili dambiente in seguito.

Opzioni della linea di comando.

       È possibile specificare le seguenti  opzioni  globali  sulla  linea  di
       comando:

       -asis  I  caratteri  con  codice  superiore  a  127  saranno mandati al
              terminale così come sono, invece  di  inviare  il  negativo  del
              carattere corrispondente con codice inferiore  a 128. Se ciò non
              dovesse funzionare, controllare il proprio server del terminale.

       -backpath percorso
              Se  questa  opzione  viene  specificata,  le  copie di sicurezza
              (backup) verranno archiviate nella directory specificata  invece
              che nella directory originale di ciascun file.

       -baud nnn
              Imposta  il  baud  rate  che  deve  essere considerato quando si
              tratta  di  fare  delle  ottimizzazioni  per  lo   schermo   del
              terminale.   Joe inserisce dei ritardi per i baud rate inferiori
              a 19200, il che aggira il buffer del terminale. In questo  modo,
              se vengono digitati dei caratteri durante l’output allo schermo,
              quest’ultimo viene interrotto.  I  comandi  di  scorrimento  non
              verranno utilizzati a 38400 baud. Ciò si rivela utile per gli X-
              term ed altri terminali di console che non si trovano davvero su
              una linea seriale.

       -beep  Joe  emetterà un «bip» quando si verificheranno degli errori nei
              comandi e quando il cursore attraverserà gli estremi.

       -columns nnn
              Imposta il numero di colonne nello schermo.

       -csmode
              Modo a ricerca continuata (continued search mode):  una  ricerca
              immediatamente   successiva  ad  un’altra  ricerca  ripeterà  la
              ricerca precedente anziché chiedere una  nuova  stringa.  Ciò  è
              utile per i comandi ^[S e ^[R e per quando joe imita emacs.

       -dopadding
              Di  solito Joe suppone che ci sia un qualche controllo di flusso
              tra sé ed il terminale. Se non c’è, questa opzione farà in  modo
              che  joe  emetta  dei  ^@  aggiuntivi  verso  il  terminale come
              specificato dalla voce  in  termcap.  Questi  ^@  permettono  al
              terminale  di  rimettersi  al  passo  dopo  che  gli sono giunti
              comandi lunghi.

       -exask Questa opzione fa in modo cke ^KX verifichi il nome del file che
              sta per scrivere.

       -force Questa  opzione  garantisce  che ci sia un line-feed nell’ultima
              riga del file che viene salvato.

       -help  Se viene specificata questa opzione, la finestra di  aiuto  sarà
              attiva all’avvio dell’editor.

       -keepup
              Di  solito  l’aggiornamento  dei  campi  delle  righe  di  stato
              contenenti il numero della colonna ed i prefissi  dei  tasti  di
              controllo  viene ritartdato di un secondo per ridurre il consumo
              di CPU; con questa opzione,  invece,  l’aggiornamento  ha  luogo
              ogni volta che viene premuto un tasto.

       -lightoff
              Se   viene  specificata  questa  opzione,  l’evidenziazione  dei
              blocchi scomparirà dopo ogni comando relativo ai blocchi.

       -lines nnn
              Imposta il numero di righe dello schermo.

       -marking
              Il testo tra ^KB ed il cursore viene evidenziato (utilizzare  in
              congiunzione con -lightoff ed un file joerc modificato per avere
              la selezione dei blocchi stile drop-anchor)

       -mid   Se questa opzione è impostata ed  il  cursore  si  sposta  fuori
              dalla  finestra,  la  finestra  verrà  fatta scorrere in modo da
              avere il cursore al centro.  Questa  opzione  viene  forzata  su
              terminali lenti che non hanno comandi di scorrimento.

       -nobackups
              Con questa opzione non vengono creati file di backup.

       -nonotice
              Con  questa  opzione  non  viene  mostrata  la nota di copyright
              all’avvio dell’editor.

       -nosta Questa opzione elimina la riga di stato in cima. È utile  quando
              sullo  schermo si vuole vedere solo il proprio testo o se si sta
              usando un vt52.

       -noxon Tenta di disattivare la gestione di ^S/^Q. Ciò  è  utile  quando
              joe imita WordStar o EMACS.

       -orphan
              Quando questa opzione è attiva, i file aggiuntivi sulla linea di
              comando saranno posti in buffer orfani invece  che  in  finestre
              aggiuntive. Ciò è utile quando joe imita emacs.

       -pg nnn
              Specifica  il  numero  di  righe  da mantenere dopo PagSu/PagGiù
              (^U/^V). Se viene specificato -1, viene tenuta mezza finestra.

       -skiptop nnn
              Evita di utilizzare le prime  nnn  righe  dello  schermo.  Utile
              quando joe viene utilizzato come editor per BBS.

       Ognuna  di  queste opzioni può essere specificata anche nel file joerc.
       Inoltre, le opzioni  NOXON, BAUD, LINES, COLUMNS  e  DOPADDING  possono
       essere specificate come variabili d’ambiente.

       Impostando  la  variabile  d’ambiente  JOETERM  è  possibile  avere  la
       precedenza sulla variabile  convenzionale  TERM  nello  specificare  il
       proprio tipo di terminale.

       Le  seguenti  opzioni  possono essere specificate prima di ogni nome di
       file sulla linea di comando.

       +nnn   Il cursore parte sulla riga specificata.

       -crlf  Joe utilizza CR-LF come sequenza di fine riga  invece  di  LF  e
              basta.  Serve per l’editing di file MS-DOS o VMS.

       -wordwrap
              Joe  manda a capo la parola precedente quando si digita oltre il
              margine destro.

       -autoindent
              Quando viene premuto Invio in una riga indentata, l’indentazione
              viene ripetuta nella nuova riga.

       -overwrite
              I  caratteri  digitati  sovrascrivono  quelli  esistenti anziché
              venire inseriti prima di essi.

       -lmargin nnn
              Imposta il margine sinistro.

       -rmargin nnn
              Imposta il margine destro.

       -tab nnn
              Imposta l’ampiezza della tabulazione.

       -indentc nnn
              Imposta il carattere di indentazione  per  ^K,  e  ^K.  (32  per
              SPAZIO, 9 per TAB).

       -istep nnn
              Imposta il passo di indentazione per ^K, e ^K..

       -linums
              Viene mostrato il numero di riga prima di ogni linea.

       -rdonly
              Il file è a sola lettura.

       -keymap nome
              Utilizza   una   sezione   alternativa   del   file   joerc  per
              l’impostazione delle sequenze di tasti.

       Queste opzioni possono anche venire specificate nel file joerc. Possono
       essere impostate in base all’estensione del file. Di solito i programmi
       (estensione .c, .h oppure .p) fanno attivare l’indentazione automatica.
       Con  altri  file  viene attivato l’«a capo automatico», ma i file rc lo
       fanno disabilitare.

Operazioni relative all´editing

   Editing di base
       Quando si digitano dei caratteri  all’interno  dell’editor,  di  solito
       vengono inseriti nel file che si sta editando (o accodati al file se il
       cursore è alla  fine  del  file).  Questa  è  la  normale  modalità  di
       funzionamento dell’editor. Se si vuole rimpiazzare del testo esistente,
       è necessario cancellare quest’ultimo prima  o  dopo  aver  digitato  il
       nuovo  testo.  Per cancellare del testo è possibile utilizzare il tasto
       Backspace: si sposta il cursore giusto  dopo  il  testo  che  si  vuole
       cancellare e si preme Backspace un po’ di volte.

       Si  preme  il tasto Invio, Enter o Return per inserire una interruzione
       di riga. Per esempio, se il cursore si trova a metà di una  riga  e  si
       preme  Invio,  la  riga viene spezzata in due con il cursore che appare
       all’inizio della seconda riga. Si prema  Backspace  all’inizio  di  una
       riga per eliminare l’interruzione.

       Per  muoversi  all’interno del file si usano i tasti con le frecce.  Se
       la tastiera in uso non ha i tasti con  le  frecce  (o  se  per  qualche
       motivo  non dovessero funzionare), si usino i tasti ^F per spostarsi in
       avanti (destra), ^B per spostarsi indietro (sinistra), ^P per spostarsi
       alla  riga  precedente  (su)  e  ^N  per spostarsi alla riga successiva
       (giù). I tasti con le  frecce  destra  e  sinistra  spostano  avanti  e
       indietro  nel  testo  di  un  solo carattere alla volta: se ci si trova
       all’inizio di una riga  e  si  preme  la  freccia  a  sinistra,  ci  si
       ritroverà  alla  fine  della  riga precedente. Le frecce in su e in giù
       spostano in avanti ed indietro di un numero  di  caratteri  sufficiente
       per  far  apparire  il  cursore  nella stessa colonna in cui si trovava
       nella riga di partenza.

       Se si vuole indentare il testo che si sta inserendo, si  può  usare  il
       tasto  TAB. Esso inserisce un particolare carattere di controllo che fa
       in modo che i  caratteri  successivi  comincino  al  prossimo  stop  di
       tabulazione.  Di  solito c’è uno stop di tabulazione ogni otto colonne,
       tuttavia ciò può essere cambiato con il comando ^T D.  I  programmatori
       PASCAL  e  C  impostano  spesso  uno  stop  di tabulazione ogni quattro
       colonne.

       Se per  qualche  ragione  lo  schermo  del  proprio  terminale  dovesse
       «sporcarsi» (ad esempio, se biff annuncia che è arrivata posta), si può
       fare in modo che l’editor ripristini lo schermo premendo ^R.

       Ci sono molti altri tasti per cancellare testo e spostarsi  all’interno
       del file. Ad esempio, si prema ^D per cancellare il carattere su cui si
       trova il cursore invece di  cancellare  all’indietro  come  si  fa  con
       Backspace.   ^D  può inoltre cancellare una interruzione di linea se il
       cursore si trova a fine riga. Si digiti ^Y per cancellare l’intera riga
       su  cui  si  trova  il  cursore o ^J per cancellare dal punto in cui si
       trova il cursore fino alla fine della riga.

       Si preme ^A per spostare il cursore all’inizio della  riga  su  cui  si
       trova.  Si  preme ^E per spostare il cursore a fine riga. Si preme ^U o
       ^V per far scorrere il cursore di mezza schermata in su o in giù.   Con
       «Scorrere»  si intende che il testo si sposta, mentre il cursore rimane
       nella stessa posizione relativamente allo schermo. Si preme ^K U oppure
       ^K  V  per  spostare  il  cursore  all’inizio o alla fine del file.  Si
       consultino gli schermi di aiuto all’interno dell’editor  per  venire  a
       conoscenza di ulteriori comandi di cancellazione e movimento.

       Se  si  commette  un errore, si può premere ^_ per «annullarlo».  Sulla
       maggior parte delle tastiere basta premere ^- per ottenere  ^_,  ma  in
       alcuni casi potrebbe essere necessario tener premuti sia il tasto Shift
       sia il tasto Control contemporaneamente.  Nel caso si «annulli» troppo,
       è  possibile  «rifare» i cambiamenti premendo ^^ (ciò si ottiene con ^6
       su molte tastiere). [N.d.T.: Come in precedenza,  ^6  è  riferito  alle
       tastiere USA. Sulle tastiere italiane è ].

       Se  mentre  si  sta lavorando in un punto del file si rivela necessario
       controllare temporaneamente un altro punto dello stesso  file,  si  può
       tornare  al  punto originale premendo ^K -. Questo comando non fa altro
       che  riportare  il  cursore  nell’ultima  posizione  in  cui  è   stata
       effettuata  una  modifica.  È possibile scorrere attraverso un archivio
       storico di posizioni con ^K - e  ^K  =  nello  stesso  modo  in  cui  è
       possibile  scorrere attraverso l’archivio storico dei cambiamenti con i
       comandi «annulla» e «rifai».

       Quando si è finito di editare  il  file,  si  preme  ^K  X  per  uscire
       dall’editor.  Verrà  chiesto  un nome per il file se questo non era già
       stato specificato.

       Quando si edita un file, in realtà si modifica solo una copia del file.
       Quindi  se  si  decide  di  scartare i cambiamenti apportati ad un file
       durante una particolare sessione di editing,  si  può  premere  ^C  per
       uscire dall’editor senza salvarli.

       Se  si  edita  un  file  e si salvano i cambiamenti, viene creata nella
       directory corrente una copia di  sicurezza  («backup»)  della  versione
       originale di quel file, con una ~ aggiunta al nome.

   A capo automatico e formattazione
       Se  si supera l’estremità destra dello schermo in un file di sorgenti C
       o PASCAL, lo schermo scorrerà a destra per seguire il  cursore.  Se  si
       supera  il  imite  destro  dello schermo in un file normale (uno il cui
       nome non termina in .c, .h o .p), JOE manderà  automaticamente  a  capo
       l’ultima   parola  senza  che  sia  necessario  premere  Invio.  Questo
       comportamento viene indicato con  la  locuzione  «a  capo  automatico».
       L’«a  capo automatico» può essere attivato o disattivato con il comando
       ^T W. Il file di inizializzazione di JOE è di solito impostato in  modo
       tale  da  attivarlo  automaticamente  per  tutti  i  file che non siano
       programmi. Si consulti la sezione sul  file  joerc  che  si  trova  più
       avanti per cambiare questo ed altri comportamenti predefiniti.

       Ad  eccezione  dell’«a capo automatico», JOE non fa nulla per mantenere
       automaticamente formattati i paragrafi come altri word  processor.  Se,
       al  contrario,  si  vuole  che un paragrafo venga riformattato, bisogna
       premere ^K J. Questo comando «riempie» il paragrafo in cui si trova  il
       cursore,  cercando  di  far  stare  quante più parole possibile in ogni
       riga. Un paragrafo, in questo caso,  è  un  blocco  di  testo  separato
       superiormente ed inferiormente da una riga vuota.

       È  possibile  impostare  i margini che JOE usa per la formattazione dei
       paragrafi e per l’«a capo automatico» con i comandi ^T L e ^T R.  Se il
       margine  sinistro  è  impostato  ad  un  valore diverso da 1, quando si
       comincia  a  digitare  all’inizio  di  una  riga  il  cursore   salterà
       immediatamente al margine sinistro.

       Se  si vuole centrare una riga entro i margini, si usi il comando ^K A.

   Modo sovrascrittura
       Talvolta è seccante dover cancellare ll testo precedente prima di poter
       inserire   quello  nuovo.  Ciò  avviene,  ad  esempio,  quando  si  sta
       modificando una tabella e si vuole mantenere la posizione della colonna
       sul  lato  destro  della tabella stessa. Quando ciò accade, è possibile
       porre l’editor nel modo sovrascrittura con ^T T.   Quando  l’editor  si
       trova  in  questo  modo, i caratteri che vengono digitati rimpiazzano i
       caratteri esistenti così come farebbe una macchina per scrivere ideale.
       Inoltre,  Backspace  si limita ad effettuare uno spostamento a sinistra
       senza  cancellare  il  carattere  quando  non  si  trova  alla  fine  o
       all’inizio  di  una riga. Il modo sovrascrittura non è il modo naturale
       di gestire elettronicamente del testo, perciò si  dovrebbe  tornare  al
       modo inserimento appena possibile ripremendo ^T T.

       Se dovete inserire qualcosa mentre ci si trova nel modo sovrascrittura,
       si prema ^@. Così facendo, si inserirà uno SPAZIO singolo nel testo.

   Caratteri di controllo e caratteri meta.
       Ogni carattere è rappresentato da un numero. Ad esempio, il numero  per
       ’A’  è  65  ed il numero per ’1’ è 49. I caratteri che vedete di solito
       hanno numeri nell’intervallo 32 - 126 (questa particolare  assegnazione
       arbitraria di numeri a caratteri e viceversa si chiama set di caratteri
       ASCII). I numeri da 0 a  255  che  non  cadono  all’interno  di  questo
       intervallo  di  solito  non  sono  mostrati,  ma  talvolta  hanno altri
       significati speciali. Il numero 10, ad esempio,  è  utilizzato  per  le
       interruzioni  di  linea. È possibile inserire questi speciali caratteri
       di controllo che di  solito  non  vengono  mostrati  premendo  prima  ‘
       seguito da un carattere nell’intervallo @ A B C ... X Y Z [ ^ ] \ _ per
       ottenere i numeri 0 - 31 e ? per ottenere 127. Ad esempio, se si  preme
       ‘ J, si inserisce un carattere di interruzione di riga, o se si preme ‘
       I, si inserisce un carattere di tabulazione (la stessa cosa che  fa  il
       tasto TAB). Un carattere di controllo utile da inserire è 12 (‘ L), che
       fa avanzare la maggior parte delle stampanti fino a inizio pagina.  JOE
       mostra questo carattere come una «L» sottolineata. È possibile inserire
       i caratteri sopra a 127, i caratteri meta premendo prima ^\. In  questo
       modo si somma 128 al carattere (eventualmente di controllo) successivo.
       JOE mostra i caratteri sopra a 128 in negativo. Alcune lingue [tra  cui
       l’italiano,  N.d.T.]  che  hanno  più lettere dell’inglese utilizzano i
       caratteri meta per il resto dell’alfabeto. Bisogna porre  l’editor  nel
       modo  ASIS  (descritto in seguito) per far arrivare questi caratteri al
       terminale senza conversioni.

   Prompt
       Se si preme TAB quando viene richiesto il nome di un file, joe cercherà
       di  completare  il  più  possibile  il nome inserito. Se non è stato in
       grado di completare tutto il nome  perché  vi  sono  più  completamenti
       possibili,  joe  emetterà  un  «bip».  Se  si preme nuovamente TAB, joe
       elencherà i completamenti. È possibile utilizzare i tasti con le frecce
       per  spostarsi  in questo menù della directory e premere INVIO o SPAZIO
       per selezionare un elemento. Se si preme l’iniziale di una  delle  voci
       della directory, tale voce verrà selezionata o, se vi sono più voci che
       cominciano con la stessa lettera, il cursore si sposterà tra queste. Se
       si  seleziona  una  sottodirectory  o .., il nome della directory viene
       aggiunto in fondo  al  prompt  e  nel  menù  viene  caricata  la  nuova
       directory.  È  possibile  premere  Backspace per tornare alla directory
       precedente.

       La maggior parte dei prompt tiene traccia delle  risposte  che  vengono
       ricevute.   È  possibile scorrere attraverso questi archivi storici con
       le frecce in su ed in giù.

       I prompt sono in realtà delle finestre con una riga sola e  senza  riga
       di   stato,  quindi  è  possibile  utilizzare  nell’ambito  dei  prompt
       qualunque  comando  di  editing  che  si  usa  normalmente  col  testo.
       L’archivio  storico dei prompt, in realtà, è semplicemente una serie di
       altre righe dello stesso «file del prompt». In questo modo è  possibile
       effettuare delle ricerche all’indietro attraverso l’archivio del prompt
       con il normale comando ^K F.

       Dal momento che i prompt sono finestre, è  anche  possibile  effettuare
       una commutazione ad un’altra finestra con ^K P e ^K N.

   Dove mi trovo?
       Premendo  ^K  SPAZIO  JOE  riporterà  sull’ultima riga dello schermo il
       numero della riga, il numero della colonna ed il numero del byte a  cui
       ci  si  trova. Viene mostrato anche il numero associato al carattere su
       cui si trova il cursore (il suo codice ASCII). È possibile avere sempre
       il  numero  di  riga  e/o  colonna  visualizzati  sulla  riga  di stato
       impostando e posizionando  le  appropriate  sequenze  di  escape  nelle
       stringhe di impostazione della riga di stato.

   Operazioni sui file
       Si  può  premere  ^K D per salvare il file corrente (magari con un nome
       diffrerente da quello originale). Dopo che il file è stato  salvato,  è
       possibile premere ^K E per editare un file differente.

       Se  volete  salvare solo una parte selezionata del file, si consulti la
       sezione sui Blocchi in seguito.

       Se si vuole includere un altro file in quello che si sta  editando,  si
       usi ^K R per inserirlo.

   Sospensione temporanea delleditor
       Se  si  ha la necessità di fermare temporaneamente l’editor per tornare
       alla shell, si prema ^K Z. Ad esempio, si potrebbe  voler  interrompere
       l’editing  e  rispondere ad un messaggio di posta elettronica o leggere
       questa pagina man. Si deve digitare fg o exit (verrà specificato  quale
       dei due quando si premerà ^K Z) per tornare all’editor.

   Ricerche di testo
       Si  prema  ^K  F  per  far  cercare  all’editor  un  frammento di testo
       (stringa) in avanti  ed  all’indietro.  Verrà  richiesto  il  testo  da
       cercare.  Dopo  che  è stato digitato Invio, verrà chiesto di insereire
       delle opzioni. È possibile premere semplicemente Invio  un’altra  volta
       per  far iniziare immediatamente la ricerca in avanti del testo, oppure
       si possono inserire una o più delle seguenti opzioni:

       b      Cerca all’indietro invece che in aventi.

       i      Tratta allo stesso modo le lettere minuscole e maiuscole durante
              la  ricerca.  Di solito le lettere minuscole e maiuscole vengono
              considerate differenti.

       nnn    (dove nnn è un numero) Se si  inserisce  un  numero,  JOE  cerca
              l’ennesima  occorrenza  del testo. Questo è utile per portarsi a
              punti specifici in file strutturati in maniera regolare.

       r      Rimpiazza il testo. Se si inserisce l’opzione r, verrà richiesto
              il  testo  con  cui  deve venire sostituito quello trovato. Ogni
              volta che l’editor trova il testo cercato, chiederà se si  vuole
              sostituire il testo trovato con quello specificato. Si digiti: y
              per sostituire il testo e poi trovare l’occorrenza successiva, n
              per  non  far  sostituire  il  testo  ma  far cercare ugualmente
              l’occorrenza successiva, r per rimpiazzare tutte  le  occorrenze
              rimanenti  del  testo  cercato nel resto del file senza chiedere
              conferma  (compatibilmente  con  l’opzione  nnn  di  cui  si   è
              parlato), oppure ^C per smettere di cercare e sostituire.

       Si può premere ^L per ripetere la ricerca precedente.

   Espressioni Regolari
       È  possibile  inserire  delle speciali sequenze di caratteri come testo
       per la ricerca:

       \*     Vengono trovati zero o più caratteri. Ad esempio, se si fornisce
              A\*B  come testo da cercare, JOE proverà a trovare una A seguita
              da un numero qualunque di caratteri e poi una B.

       \?     Viene trovato  esattamente  un  carattere.  Ad  esempio,  se  si
              fornisce A\?B come testo da cercare, JOE troverà AXB ma non AB o
              AXXB.

       \^ \$  Corrispondono all’inizio ed alla fine di una riga.  Ad  esempio,
              se  si fornisce \^test\$, allora JOE troverà una riga contenente
              solo test.

       \< \>  Corrispondono all’inizio ed alla fine di una parola. Ad esempio,
              se  si fornisce \<\*is\*\>, allora joe troverà parole intere che
              contengono la sottostringa is.

       \[...] Si ha corrispondenza con ogni singolo carattere che  appare  tra
              le parentesi quadre. Ad esempio, se si inserisce \[Qq]uesto come
              stringa da cercare, JOE  troverà  tanto  Questo  che  questo.  È
              possibile  inserire  intervalli  di caratteri entro le parentesi
              quadre. Ad esempio, \[A-Z] trova qualunque lettera maiuscola. Se
              il  primo  carattere  tra le parentesi quadre è ^, JOE proverà a
              trovare ogni carattere non specificato nelle parentesi quadre.

       \c     Simile a \*, ma corrisponde ad una  espressione  bilanciata  del
              linguaggio  C.  Ad  esempio,  se si cerca malloc(\c), allora JOE
              troverà tuttel le chiamate a malloc, anche  se  ci  fosse  un  )
              all’interno delle parentesi.

       \+     Corrisponde  a  zero  o  più  presenze  del  carattere che segue
              immediatamente il \+. Ad esempio, se si specifica  \[  ]\+\[  ],
              dove  i caratteri tra parentesi quadre sono SPAZIO e TAB, allora
              JOE troverà gli spazi vuoti.

       \\     Corrisponde ad un singolo \.

       \n     Trova il carattere speciale di  fine  riga  (end-of-line)  o  di
              interruzione di linea (line-break).

       È possibile specificare delle sequenze di caratteri anche nella stringa
       che deve sostituire quella trovata:

       \&     Viene sostituito dal testo che ha avuto  corrispondenza  con  la
              stringa  di  ricerca.  Ad  esempio, se la stringa di ricerca era
              \<\*\>, che  trova  parole  singole,  e  specificate  "\&",  joe
              metterà le parole tra virgolette.

       \0 - \9
              Vengono  rimpiazzati  col testo che corrispondevano all’ennesimo
              \*, \?, \+, \c, \+, oppure \[...]  nella stringa di ricerca.

       \\     Viene usato se occorre mettere un \ nella nuova stringa.

       \n     Si usa se  occorre  mettere  una  interruzione  di  linea  nella
              stringa sostitutiva.

       Alcuni esempi:

       Si  supponga  di  avere  una  lista  di  indirizzi,  ognuno su una riga
       separata, che compincia con «Indirizzo:» e in  cui  gli  elementi  sono
       separati da virgole, in questo modo:

       Indirizzo: S. Holmes, 221b Baker St., Londra, Inghilterra

       Se si volesse riorganizzare la lista per mettere prima lo stato, poi la
       città, quindi il nome della persona ed infine l’indirizzo, si  potrebbe
       fare così:

       Si digiti ^K F per iniziare la ricerca, e poi:

       Indirizzo:\*,\*,\*,\*\$

       per  avere  una  corrispondenza  con  «Indirizzo:»,  i quattro elementi
       separati da virgole e la fine della riga.  Quando  vengono  chieste  le
       opzioni, si digita r per sostituire la stringa, quindi:

       Indirizzo:\3,\2,\0,\1

       Per  disporre le informazioni nell’ordine desiderato. Dopo aver premuto
       invio la ricerca avrà inizio e la riga dell’esempio diventerà:

       Indirizzo: Inghilterra, Londra, S. Holmes, 221b Baker St.

   Blocchi
       Se si vuole spostare,  copiare,  salvare  o  cancellare  una  specifica
       porzione   di  testo,  si  può  fare  con  i  blocchi  che  sono  stati
       evidenziati. Prima di tutto, si  sposta  il  cursore  all’inizio  della
       porzione di testo su cui si intende operare, e si preme ^K B. Quindi si
       sposta il cursore sul carattere immediatamente  successivo  al  termine
       del  testo  in  questione  e si preme ^K K. Il testo tra il ^K B e ^K K
       dovrebbe venire  evidenziato.  È  ora  possibile  spostare  il  cursore
       altrove  nel  documento  e  premere  ^K  M  per  spostare  lì  il testo
       evidenziato.  È possibile premere ^K C per fare  una  copia  del  testo
       evidenziato  ed  inserirla  dove  si trova il cursore. ^K Y cancella il
       testo evidenziato. ^K W scrive il testo evidenziato su un file.

       Un comando molto utile è ^K /, che filtra un blocco di testo attraverso
       un comando unix. Ad esempio, se si seleziona una lista di parole con ^K
       B e ^K K e si digita ^K / sort, la lista di parole verrà  ordinata.  Un
       altro  comando  unix  che si presta ad essere utilizzato con ^K / è tr.
       Se si scrive ^K / tr a-z A-Z, tutte le lettere nel  blocco  evidenziato
       diventeranno maiuscole.

       Dopo  aver  completato  alcune  operazioni  coi  blocchi,  è  possibile
       lasciare attiva l’evidenziazione se la cosa non dà fastidio (certo,  se
       si  digita  per sbaglio ^K Y senza accorgersene...). Se la cosa dovesse
       proprio  dare  fastidio,  comunque,  basta  premere  ^K  B  ^K  K   per
       disattivare l’evidenziazione.

   Indentazione di blocchi nei programmi
       Il  modo «indentazione automatica» viene commutato con il comando ^T I.
       Il file  joerc  è  normalmente  impostato  in  modo  tale  da  attivare
       automaticamente  l’indentazione  automatica  con  i  file  il  cui nome
       termina con .p, .c o .h . Quando l’indentazione automatica è  attiva  e
       si  preme  Invio,  il cursore verrà posizionato nella stessa colonna in
       cui nella riga originale si trovava il  primo  carattere  che  non  sia
       SPAZIO o TAB.

       È possibile utilizzare i comandi ^K , e ^K . per far scorrere un blocco
       di  testo  a  sinistra  o  a  destra.  Se  non   è   impostata   alcuna
       evidenziazione  nel  momento  in  cui vengono impartiti questi comandi,
       verrà selezionato il blocco di programma in cui si trova il  cursore  e
       verrà  spostato  dai  ^K  ,  e  ^K  . successivi. È possibile impostare
       l’entità degli spostamenti (espressa  in  numero  di  colonne)  tramite
       l’opzione ^T.

   Finestre
       È possibile editare più di un file alla volta o editare due o più punti
       diversi dello stesso file. Per fare questo, si preme ^K O per  dividere
       lo  schermo in due finestre. Si usa ^K P o ^K N per spostare il cursore
       nella finestra superiore o inferiore. Si usa ^K E per editare un  nuovo
       file  in  una  delle finestre. Una finestra scompare quando si salva il
       file con ^K X o si abortisce con ^C.  Se si abortisce l’editing  di  un
       file  che  è  presente  in  due finestre, scompare una finestra, non il
       file.

       È possibile creare ulteriori finestre premendo ^K O all’interno di  una
       finestra.  Se  ci sono troppe finestre sullo schermo ma non si desidera
       eliminarle, si può premere  ^K I. In questo modo verrà mostrata solo la
       finestra  in  cui  si  trova  il cursore o, se prima c’era già una sola
       finestra sullo schermo, JOE proverà  a  far  stare  tutte  le  finestre
       nascoste sullo schermo.  Se ci sono più finestre di quante ce ne stiano
       sullo schermo, si può premere ^K N sulla finestra più in basso o  ^K  P
       sulla finestra più in alto per raggiungere.

       Se  è  stato specificato più di un nome di file sulla linea di comando,
       ogni file verrà messo in una finestra differente.

       È possibile cambiare l’altezza delle finestre con i comandi ^K G e ^K T

   Macro di tastiera
       Le  macro permettono di registrare una sequenza di pressioni di tasti e
       riprodurla premendone solo due. Ciò è utile per  automatizzare  compiti
       ripetitivi.   Per  avviare  la registrazione di una macro si preme ^K ]
       seguito da un numero da 0 a 9. La  riga  di  stato  mostrerà  (Macro  n
       recording...).   Ora bisogna inserire la sequenza di pressioni di tasti
       che si vuole venga ripetuta.  I comandi che vengono  impartiti  avranno
       il  loro  solito  effetto. Si prema ^K ] per terminare la registrazione
       della macro. Si prema ^K seguito dal numero a cui è stata associata  la
       macro per far ripetere per una volta le pressioni dei tasti.

       Ad  esempio,  se  si  volesse  porre «**» davanti ad un certo numero di
       righe, si potrebbe digitare:

       ^K [ ^A ** <freccia giù> ^K ]

       Così facendo si avvia  la  registrazione  della  macro,  si  sposta  il
       cursore  all’inizio della riga, si inserisce «**», si sposta il cursore
       in giù di una riga e si termina la registrazione. Visto che sono  stati
       inseriti  i  comandi  necessari  per  posizionare il cursore sulla riga
       successiva, è possibile utilizzare  ripetutamente  questa  macro  senza
       essere  obbligati a spostare a mano il cursore, cosa di cui si dovrebbe
       sempre tener conto quando si registra una macro.

       Se si scopre che una macro che si sta registrando contiene essa  stessa
       un insieme ripetuto di comandi, è possibile registrare una macro dentro
       alla macro, a patto di  utilizzare  un  numero  differente.  È  inoltre
       possibile  eseguire  macro  registrate  in precedenza all’interno delle
       nuove macro.

   Ripetizione
       È possibile utilizzare il comando di ripetizione, ^K \ per ripetere una
       macro  o  qualunque altro comando di editing, persino un carattere, per
       un numero specificato di volte. Si prema ^K \, si specifichi per quante
       volte  il  comando  deve  essere ripetuto e si prema Invio.  Il comando
       successivo di editing che verrà impartito  sarà  ripetuto  tante  volte
       quanto specificato.

       Ad  esempio,  per  cancellare  le  venti  righe di testo successive, si
       digiti:

       ^K  20<invio>^Y

   Modo a rettangoli
       Premendo ^T X si fa in modo che ^K  B  and  ^K  K  selezionino  blocchi
       rettangolari  invece  di  testo  continuo.  Questo  modo  è  utile  per
       spostare, copiare, cancellare o salvare colonne  di  testo.  È  inoltre
       possibile filtrare colonne di testo con il comando ^K / (ad esempio, si
       potrebbe voler ordinare  una  colonna).  Viene  influenazato  anche  il
       comportamento del comando «inserisci file».

       Quando  il  modo  a  rettangoli è attivo, si rivela utile anche il modo
       sovrascrittura (^T T). Quando il modo sovrascrittura è  selezionato,  i
       rettangoli  sostituiranno  il testo esistente invece di venire inseriti
       prima di esso. Anche il comando per la cancellazione dei blocchi (^K Y)
       riempirà il rettangolo selezionato con spazi e caratteri di tabulazione
       invece di cancellarlo. Il modo sovrascrittura è  particolarmente  utile
       per  il  comando  «filtra  blocco»  (^K  /),  dal  momento che manterrà
       l’ampiezza originale della colonna selezionata.

   Ricerca di tag
       Se si sta editando un programma C di notevoli dimensioni con molti file
       sorgente,  è  possibile  utilizzare  il programma ctags per generare un
       file tags. Questo file contiene una lista di simboli del programma ed i
       file  e  le  posizioni in cui sono definiti. Il comando ^K ; può essere
       utilizzato per cercare un simbolo (funzioni, costanti definite,  ecc.),
       caricare  il  file  in  cui  è stato definito nella finestra corrente e
       posizionare il cursore nel punto in cui  il  simbolo  è  definito.   Il
       comando  ^K  ;  chiede  quale simbolo si sta cercando, ma usa come come
       simbolo predefinito quello su cui si trova il cursore. Dal momento  che
       ^K  ; carica il file in cui c’è la definizione nella finestra corrente,
       conviene provvedere prima a dividere in due la finestra con  ^K  O  per
       avere   contemporaneamente   il  file  originale  ed  il  file  con  la
       definizione.

   Finestre di shell
       Si prema ^K ’ per eseguire una shell a comandi in una delle finestre di
       JOE.  Quando  il cursore si trova in fondo ad una finestra di shell (in
       caso contrario si usi ^K V), qualunque cosa  venga  scritta  è  passata
       alla shell invece che alla finestra. L’output della shell o dei comandi
       eseguiti nella shell è accodato alla  finestra  di  shell  (il  cursore
       seguirà  questo  output  se  si trova in fondo alla finestra di shell).
       Questo comando è utile per registrare il risultato di comandi di shell,
       ad  esempio  l’output di make, il risultato di un grep su un insieme di
       file alla ricerca di una stringa o listati  di  directory  da  sessioni
       FTP.  Oltre ai caratteri digitabili, i tasti ^C, Backspace, Canc, Invio
       e ^D vengono passati alla shell. Digitate il comando exit  della  shell
       per  terminare  la registrazione dell’output della shell. Se premete ^C
       in una finestra di shell in un momento in cui il cursore non  si  trova
       in fondo alla finestra, la shell viene uccisa.

Variabili d´ambiente

       Affinché   JOE   possa   operare  come  si  deve,  bisogna  che  alcune
       impostazioni di ambiente siano corrette. La velocità della trasmissione
       dei  dati  (baud  rate) attraverso la connessione tra il computer ed il
       terminale deve essere impostata in maniera corretta affinché JOE  possa
       aggiornare   lo   schermo   in   maniera   pulita   e   permettere  che
       l’aggiornamento sia ritardato da un’eventuale pressione anticipata  dei
       tasti.  Si  usi il comando stty nnn per questa impostazione. È bene che
       il valore scelto sia il più vicino possibile alla velocità effettiva di
       connessione.  Ad  esempio,  se ci si sta connettendo tramite un modem a
       14.4k ma il server di terminale a cui si  è  connessi  è  collegato  al
       computer  a  9600  baud,  si imposterà la velocità a 9600 baud. Il baud
       rate speciale 38400 o extb viene usato  per  indicare  che  si  ha  una
       connessione molto veloce, come una console memory mapped o un emulatore
       di terminale sotto X-window.  Se non si riesce ad utilizzare  stty  per
       impostare la velocità effettiva della connessione (magari a causa di un
       modem che comunica col computer ad una velocità differente  rispetto  a
       quella  con cui comunica attraverso la linea telefonica), si può sempre
       porre in alternativa un valore numerico nella variabile d’ambiente BAUD
       (si usi setenv BAUD 9600 con csh o BAUD=9600 ; export BAUD con sh).

       La variabile d’ambiente TERM deve essere impostata al tipo di terminale
       che si sta usando. Se  le  dimensioni  (numero  di  righe/colonne)  del
       proprio  terminale  sono  differenti da quanto riportato nella relativa
       voce TERMCAP o TERMINFO, è possibile impostarle  con  il  comando  stty
       rows  nn  cols  nn o impostando le variabili d’ambiente LINES (righe) e
       COLUMNS (colonne).

       JOE di solito si aspetta che il controllo di flusso tra il computer  ed
       il  terminale  usi  l’handshaking  ^S/^Q  (ovvero, se il computer manda
       troppo velocemente i caratteri al terminale, quest’ultimo  provvede  ad
       inviare  ^S per bloccare l’output e ^Q per riavviarlo). Se il controllo
       di  flusso  usa  un  handshaking  hardware  o  esterno  alla  linea  di
       comunicazione,  o  se  il terminale è sufficientemente veloce per stare
       sempre al passo con l’output del  computer  e  si  desidera  utilizzare
       ^S/^Q  per  dei  comandi di editing, è possibile impostare la variabile
       d’ambiente NOXON  affinchè  JOE  tenti  di  disabilitare  l’handshaking
       ^S/^Q.  Se  la connessione tra il computer ed il terminale non utilizza
       alcun handshaking ed il terminale non è abbastanza veloce per tenere il
       passo  con  l’output  del  computer,  si  può  impostare  la  variabile
       d’ambiente DOPADDING  per  fare  in  modo  che  JOE  rallenti  l’output
       inserendo  caratteri PAD tra le sequenze di aggiornamento dello schermo
       del terminale.

Nomi dei file

       Quando JOE si aspetta il nome di un file, sia sulla  linea  di  comando
       che nei prompt all’interno dell’editor, è anche possibile digitare:

       !comando
              Legge  o scrive dati da o su un comando della shell. Ad esempio,
              si usi  joe!ls’ per  ottenere  una  copia  del  listato  della
              directory    da    editare,   oppure   si   dia   ^K   D   !mail
              jhallen@world.std.com per spedirmi il file che si sta  editando.

       >>nomefile
              Si  utilizzi  questo  comando per far sì che JOE accodi il testo
              editato in fondo al file «nomefile».

       nomefile,INIZIO,DIMENSIONI
              Si utilizzi questo per accedere ad una  sezione  fissata  di  un
              file o di un device. INIZIO e DIMENSIONI possono essere inseriti
              in decimale (es.: 123), ottale (es.: 0777) o  esadecimale  (es.:
              0xFF).  Ad esempio, si usi joe /dev/fd0,508,2 per editare i byte
              508 e 509 del primo floppy drive sotto Linux.

       -      Si utilizzi questo per prendere l’input dallo standard  input  o
              per  scrivere l’output sullo standard output. Ad esempio, si può
              porre joe in una pipe di comandi: quota -v | joe - | mail  root,
              se ci si vuole lamentare che la propria quota è troppo bassa.

Il file joerc

       Le  opzioni  di  ^T, le schermate d’aiuto e le associazioni tra tasti e
       comandi dell’editor sono tutte definite nel file di inizializzazione di
       JOE.  Se  si  copia  questo  file  (che risiede in /etc/joe/joerc) come
       $HOME/.joerc, è possibile personalizzare queste impostazioni secondo  i
       propri  gusti. La sintassi del file di inizializzazione dovrebbe essere
       abbastanza ovvia. Sono inoltre presenti  ulteriori  istruzioni  al  suo
       interno.

Ringraziamenti

       JOE  è  stato scritto da Joseph H.Allen. Se avete segnalazioni di bug o
       domande, mandateli via  e-mail  a  jhallen@world.std.com.  Anche  Larry
       Foard  (entropy@world.std.com)  e Gary Gray (ggray@world.std.com) hanno
       contribuito alla creazione di JOE.

Modifiche

       Modificato per  Debian  da  Christian  Linhart  <chris@cosy.sbg.ac.at>.
       Queste  modifiche riguardano solo il cambiamento di posizione di alcuni
       file per Debian.

                                                                        JOE(1)