Provided by:
manpages-it_0.3.4-5_all 
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 dâ€â€™ambiente 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 dellâ€â€™editor
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)