[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
Il programma più importante che è necessario conoscere quando ci si avvicina a un nuovo sistema operativo è quello che permette di creare e modificare i file di testo normale. Nel caso dei sistemi Unix, è indispensabile conoscere VI, oltre ad altri applicativi simili che possono risultare più comodi da usare.
L'azione con la quale si indica l'intervento su un file del genere, viene espressa usualmente con la parola inglese editing, per cui alle volte questi programmi applicativi vengono identificati come degli editor.
Nei sistemi Unix, l'applicativo più importante per la creazione e la modifica dei file di testo è VI. (1) (2) (3) È più importante perché onnipresente, soprattutto nei dischetti di emergenza, anche se non si tratta di un programma comodo da utilizzare.
VI ha una logica di funzionamento tutta sua che ne impedisce l'utilizzo a chi non abbia letto qualcosa al riguardo. L'intento è quello di chiarire questa logica, almeno in parte, in modo da facilitarne l'utilizzo in caso di necessità.
Per GNU/Linux, non esiste in circolazione una versione originale di VI, ma tante interpretazioni di questo, con potenzialità più o meno ampliate. Per tale motivo, /bin/vi
è solitamente un collegamento (simbolico o meno) al programma che si utilizza effettivamente.
I primi programmi di scrittura per i file di testo permettevano di visualizzare e di intervenire su una sola riga alla volta. Questo è il caso di ed per gli ambienti Unix e di EDLIN per il Dos.
VI è uno dei primi programmi applicativi per la scrittura e la modifica di file di testo a utilizzare tutto lo schermo per visualizzare le righe del testo su cui si opera. Da ciò deriva il nome che fa riferimento al suo comportamento «visuale» (Visual).
A sua volta, VI è la derivazione di un programma precedente, EX, che si limitava a gestire una sola riga alla volta. Ma questa eredità è servita per incorporare i comandi tipici di EX.
vi [opzioni] [file...]
L'eseguibile vi può essere avviato o meno con l'indicazione di un file sul quale intervenire. Se questo file esiste, viene aperto e si ottiene la visualizzazione del suo contenuto per permetterne la modifica. Se non esiste, viene creato.
È anche possibile l'indicazione di alcune opzioni, tra cui, le più importanti sono elencate di seguito:
-R
i file vengono aperti (inizialmente) in sola lettura;
-c comando
subito dopo aver caricato il primo dei file degli argomenti, viene eseguito il comando indicato;
-s file_di_comandi
subito dopo aver caricato il primo dei file degli argomenti, vengono eseguiti i comandi contenuti nel file di comandi indicato.
Quando si avvia VI senza indicare alcun file, appare una schermata simile a quella della figura 84.1 in cui le righe dello schermo contrassegnate dal simbolo tilde (~) rappresentano lo spazio non utilizzato dal file.
|
Normalmente, l'eseguibile vi può essere avviato utilizzando nomi diversi: per rispettare le tradizioni o per definire implicitamente degli attributi.
view [opzioni] [file...]
Di solito, view è un collegamento alla realizzazione di VI che si ha a disposizione. Di norma, quando l'eseguibile di VI viene avviato con questo nome, si comporta come se gli fosse stata data l'opzione -R: sola lettura.
ex [opzioni] [file...]
Come già accennato, EX (precisamente l'eseguibile ex) è il programma da cui è derivato VI. Generalmente, nelle distribuzioni GNU/Linux si trova un collegamento (simbolico o meno) con questo nome che punta a vi. Alcune realizzazioni di VI, quando sono avviati con questo nome, tendono a comportarsi in maniera leggermente differente.
VI distingue diverse modalità di funzionamento, altrimenti definibili come stati o contesti. Quando si avvia VI, questo si trova di solito nella modalità di comando che permette di usare tasti determinati, attribuendogli significati speciali (di comando). Quando si vuole agire per inserire o modificare del testo, occorre utilizzare un comando con il quale VI passa alla modalità di inserimento e modifica.
Per complicare ulteriormente le cose, c'è da aggiungere che esistono in realtà due tipi di comandi: «visuali» (visual) e «due punti» (colon). I comandi visuali sono i più semplici e si compongono di sequenze di uno o più tasti il cui inserimento non appare in alcuna parte dello schermo e si concludono senza la pressione del tasto [Invio]; i comandi «due punti» iniziano tutti con il simbolo : (da cui il nome), terminano con [Invio] e durante la digitazione appaiono sulla riga inferiore dello schermo. In particolare, questi ultimi sono quelli derivati da EX.
La modalità di inserimento si riferisce al momento in cui è possibile modificare il testo. Per passare dalla modalità di comando a quella di inserimento, si preme il tasto corrispondente alla lettera «i» (inserimento prima del cursore) o alla lettera «a» (inserimento dopo il cursore).
Per tornare alla modalità di comando, da quella di inserimento, è sufficiente premere il tasto [Esc]. Quando ci si trova già nella modalità di comando, la pressione del tasto [Esc] non produce alcunché o al massimo interrompe l'introduzione di un comando, di conseguenza, se lo si usa inavvertitamente o troppo, non ne derivano inconvenienti.
Lo svantaggio principale di questo tipo di approccio è quello di dover passare alla modalità di comando per qualunque operazione diversa dal puro inserimento di testo. Anche lo spostamento del cursore avviene attraverso dei comandi, obbligando l'utente a premere il tasto [Esc] prima di poter utilizzare i tasti per il suo spostamento.
Tuttavia, le realizzazioni più diffuse di VI addolciscono un po' il suo funzionamento introducendo l'uso dei tasti freccia nel modo consueto dei programmi di scrittura più recenti.
Per la descrizione del funzionamento di VI è importante definire il concetto di posizione attiva che si riferisce al punto in cui si trova il cursore. Estendendo il significato, si può parlare di riga attiva, colonna attiva e parola attiva, intendendo quelle su cui si trova il cursore.
Prima di affrontare i comandi di VI è importante comprendere che l'effetto di molti di questi può essere moltiplicato utilizzando un numero. Il concetto è molto semplice e si richiama alla matematica: 2a = a+a.
Come già accennato, si può inserire o modificare del testo solo quando si passa alla modalità di inserimento attraverso il comando i (insert) oppure a (append). Durante questa fase, tutti i simboli della tastiera servono per inserire del testo. Con il VI standard si può usare:
[Invio] per terminare una riga e passare alla successiva;
[Backspace] per tornare indietro (nella maggior parte dei casi si ottiene anche la cancellazione del testo);
[Esc] per terminare la modalità di inserimento e passare a quella di comando.
Con le realizzazioni di VI più sofisticate, è concesso normalmente l'uso dei tasti freccia e in alcuni casi anche del tasto [Canc].
Per tutte le altre operazioni di modifica del testo si deve passare alla modalità di comando.
|
I comandi a disposizione per passare alla modalità di inserimento sono molti e non si limitano quindi ai due modi appena descritti. La tabella 84.1 ne elenca alcuni.
Tabella 84.1. Elenco dei comandi utilizzabili per passare alla modalità di inserimento.
Comando | Descrizione |
I | Inserisce all'inizio della riga attiva. |
i | Inserisce prima della posizione attiva. |
A | Aggiunge alla fine della riga attiva. |
a | Aggiunge dopo la posizione attiva. |
O | Inserisce prima della riga attiva (inserendo una riga). |
o | Aggiunge dopo la riga attiva (inserendo una riga). |
Come già accennato, lo spostamento del cursore e di conseguenza della posizione attiva, avviene per mezzo di comandi che generalmente obbligano a terminare la fase di inserimento. Le realizzazioni di VI più recenti permettono l'uso dei tasti freccia durante la modalità di inserimento (oltre che durante la modalità di comando), ma questo è solo un aiuto minimo: in generale è necessario tornare alla modalità di comando.
I comandi normali per lo spostamento del cursore sono le lettere h, j, k e l, che rispettivamente spostano il cursore a sinistra, in basso, in alto e a destra. La ragione della scelta sta nella vicinanza di queste lettere nella maggior parte delle tastiere.
|
Salvo casi particolari e situazioni in cui questo concetto non è ragionevolmente applicabile, i comandi di spostamento, preceduti da un numero, vengono ripetuti tante volte quante ne rappresenta quel numero. Per esempio, il comando 2h sposta il cursore a sinistra di due posizioni.
Per raggiungere una riga determinata è possibile utilizzare il comando nG o :n (in questo ultimo caso, seguito da [Invio])
Per esempio, per raggiungere la decima riga di un documento ipotetico, si può utilizzare indifferentemente uno dei due comandi seguenti:
10G
:10
[Invio]
Per fare scorrere il testo di una schermata alla volta si utilizzano le combinazioni di tasti [Ctrl+B] e [Ctrl+F] che rispettivamente spostano il testo all'indietro e in avanti (back e forward).
I comandi a disposizione per lo spostamento sono ovviamente numerosi, la tabella 84.2 ne elenca alcuni.
Tabella 84.2. Elenco dei comandi utilizzabili per la navigazione all'interno del testo.
Comando | Descrizione |
h | Sposta il cursore a sinistra di un carattere. |
j | Sposta il cursore in basso nella riga successiva. |
k | Sposta il cursore in alto nella riga precedente. |
l | Sposta il cursore a destra di un carattere. |
- | Sposta il cursore all'inizio della riga precedente. |
+ | Sposta il cursore all'inizio della riga successiva. |
w | Sposta il cursore all'inizio della parola successiva. |
e | Sposta il cursore alla fine della parola successiva. |
b | Sposta il cursore all'inizio della parola precedente. |
^ | Sposta il cursore all'inizio della prima parola della riga. |
0 | Sposta il cursore all'inizio della riga. |
$ | Sposta il cursore alla fine della riga. |
H | Sposta il cursore sulla prima riga che appare sullo schermo. |
M | Sposta il cursore sulla riga centrale dello schermo. |
L | Sposta il cursore sull'ultima riga che appare sullo schermo. |
G | Sposta il cursore sull'ultima riga del file. |
nG | Sposta il cursore sulla riga identificata dal numero n. |
| | Sposta il cursore sulla prima colonna (all'inizio della riga). |
n| | Sposta il cursore sulla colonna identificata dal numero n. |
:n | Sposta il cursore sulla riga identificata dal numero n. |
Ctrl+B | Fa scorrere il testo all'indietro di una schermata. |
Ctrl+F | Fa scorrere il testo in avanti di una schermata. |
Ctrl+U | Fa scorrere il testo all'indietro di mezza schermata. |
Ctrl+D | Fa scorrere il testo in avanti di mezza schermata. |
5w
Sposta il cursore all'inizio della quinta parola successiva.
2b
Sposta il cursore all'inizio della seconda parola precedente.
5G
Sposta il cursore all'inizio della quinta riga.
4|
Sposta il cursore sulla quarta colonna.
I comandi di spostamento, esclusi quelli che iniziano con i due punti (:) e quelli che si ottengono per combinazione ([Ctrl+...]), possono essere utilizzati come modificatori di altri comandi.
All'interno di VI manca il concetto di zona di intervento. Per definire l'estensione di un comando lo si può far precedere da un moltiplicatore (un numero) e in più, o in alternativa, lo si può fare seguire da un comando di spostamento. Il comando di spostamento viene utilizzato in questo caso per definire una zona che va dalla posizione attiva a quella di destinazione del comando, in modo che su questa zona intervenga il comando precedente.
Tuttavia, per poter applicare questo concetto, è necessario che i comandi da utilizzare in associazione con i modificatori (di spostamento), siano stati previsti per questo. Deve trattarsi cioè di comandi che richiedono questa ulteriore aggiunta.
Come si vedrà in seguito, il comando x permette di cancellare quello che appare in corrispondenza del cursore. Quando viene premuto il tasto [x] si ottiene subito la cancellazione del carattere, pertanto, a questo genere di comandi non si può far seguire alcun modificatore. Questo tipo di comandi può solo essere preceduto da un moltiplicatore.
Si comporta diversamente il comando d che invece deve essere seguito da un modificatore e con questo definisce una zona da cancellare. Per esempio, dw cancella dalla posizione attiva fino all'inizio della prossima parola e d$ cancella dalla posizione attiva fino alla fine della riga.
Durante la fase di inserimento è possibile cancellare solo il carattere appena scritto utilizzando il tasto [Backspace], sempre che la realizzazione di VI a disposizione lo consenta, altrimenti si ottiene solo l'arretramento del cursore. Per qualunque altro tipo di cancellazione occorre passare alla modalità di comando.
I comandi di cancellazione più importanti sono x, d seguito da un modificatore e dd. Il primo cancella il carattere che si trova in corrispondenza della posizione attiva, cioè del cursore, il secondo cancella dalla posizione attiva fino all'estensione indicata dal modificatore e il terzo cancella tutta la riga attiva. Con VI non è possibile cancellare il carattere che conclude una riga (il codice di interruzione di riga), di conseguenza, per unire due righe insieme si utilizza il comando J oppure j (bisogna provare).
Tabella 84.3. Elenco dei comandi utilizzabili per cancellare.
Comando | Descrizione |
x | Cancella il carattere che si trova sulla posizione attiva. |
J oppure j | Unisce la riga attiva con quella successiva. |
dd | Cancella la riga attiva. |
dmod | Cancella dalla posizione attiva fino all'estensione indicata dal modificatore. |
D | agisce come d$. |
5x
Ripete cinque volte la cancellazione di un carattere. In pratica, cancella cinque caratteri.
2dd
Ripete due volte la cancellazione di una riga. In pratica, cancella la riga attiva e quella seguente.
dw
Cancella a partire dalla posizione attiva, fino al raggiungimento della prossima parola.
2dw
Ripete per due volte il tipo di cancellazione dell'esempio precedente. In pratica cancella fino all'inizio della seconda parola.
d2w
Cancella a partire dalla posizione attiva, fino al raggiungimento della seconda parola successiva. In pratica, esegue la stessa operazione del comando 2dw.
db
Cancella a ritroso, dalla posizione corrente fino all'inizio della prima parola che viene incontrata.
d$
Cancella a partire dalla posizione attiva fino alla fine della riga.
d5G
Cancella dalla posizione attiva fino all'inizio della riga numero cinque.
La modifica del testo inserito può avvenire attraverso i comandi di cancellazione già visti, oppure attraverso comandi di sostituzione. Generalmente si tratta di comandi che prima cancellano parte del testo e subito dopo attivano l'inserimento.
I comandi di sostituzione più importanti sono c seguito da un modificatore e cc. Il primo sostituisce dalla posizione attiva fino all'estensione indicata dal modificatore e il secondo sostituisce tutta la riga attiva.
A fianco di questi se ne aggiungono un paio che possono essere utili proprio per il fatto che non passano alla modalità di inserimento: rx e ~. Il primo sostituisce il carattere in corrispondenza del cursore con quello rappresentato da x e il secondo inverte le lettere minuscole in maiuscole e viceversa.
Tabella 84.4. Elenco dei comandi di sostituzione e rimpiazzo.
Comando | Descrizione |
C | Sostituisce dalla posizione attiva alla fine della riga. |
cc | Sostituisce la riga attiva a partire dall'inizio. |
cmod | Sostituisce dalla posizione attiva fino all'estensione indicata dal modificatore. |
rx | Rimpiazza quanto contenuto nella posizione attiva con x. |
~ | Inverte maiuscole e minuscole. |
cc
Sostituisce la riga attiva.
c$
Sostituisce a partire dalla posizione attiva fino alla fine della riga.
rb
Rimpiazza il carattere che si trova nella posizione attiva con la lettera «b».
10~
Inverte le lettere maiuscole e minuscole a partire dalla posizione attiva, per 10 caratteri.
La gestione della copia e dello spostamento di testo attraverso VI è un po' complicata. Per questa attività si utilizzano delle aree temporanee di memoria alle quali si possono accodare diverse parti di testo.
L'operazione con la quale si copia una porzione di testo in un'area temporanea di memoria viene detta yanking, ovvero estrazione, giustificando così l'uso della lettera «y» nei comandi che compiono questa funzione.
Le aree temporanee di memoria per lo spostamento o la copia di testo possono essere 27: una per ogni lettera dell'alfabeto e una aggiuntiva senza nome.
Il modo più semplice di gestire questo meccanismo è quello di usare l'area temporanea senza nome. Per copiare una porzione di testo si può utilizzare il comando y seguito da un modificatore, oppure il comando yy che invece si riferisce a tutta la riga attiva. Per incollare il testo copiato, dopo aver posizionato il cursore nella posizione di destinazione, si può utilizzare il comando p oppure P, a seconda che si intenda incollare prima o dopo la posizione del cursore.
Il comandi p e P non cancellano il contenuto dell'area temporanea, di conseguenza, se serve si può ripetere l'operazione di inserimento riutilizzando questi comandi.
Se invece di copiare si vuole spostare il testo, al posto dei comandi di estrazione si possono usare quelli di cancellazione, che, anche se non era stato chiarito precedentemente, prima di cancellare il testo fanno una copia nell'area temporanea.
Tabella 84.5. Elenco dei comandi per le operazioni di copia e spostamento di testo che fanno uso dell'area temporanea di memoria senza nome.
Comando | Descrizione |
yy | Copia la riga attiva nell'area temporanea. |
ymod | Copia nell'area temporanea il testo fino all'estensione indicata dal modificatore. |
dd | Trasferisce la riga attiva nell'area temporanea. |
dmod | Trasferisce nell'area temporanea il testo fino all'estensione indicata dal modificatore. |
p | Incolla prima della posizione del cursore. |
P | Incolla dopo la posizione del cursore. |
5yy
Copia nell'area temporanea cinque righe a partire da quella attiva.
yw
Copia nell'area temporanea il testo che parte dalla posizione attiva fino all'inizio della prossima parola.
y$
Copia nell'area temporanea il testo che parte dalla posizione attiva fino alla fine della riga.
3dd
Sposta nell'area temporanea tre righe a partire da quella attiva.
2P
Incolla due copie del testo contenuto nell'area temporanea a partire dalla posizione a sinistra del cursore.
Quando si vogliono utilizzare delle aree temporanee di memoria specifiche, cioè identificate attraverso le lettere dell'alfabeto, si procede nei modi già visti nel caso dell'uso dell'area temporanea senza nome, con la differenza che i comandi sono preceduti da "x, dove x è la lettera che si vuole usare.
Si introduce però una novità importante: è possibile aggiungere del testo a un'area temporanea: basta indicarla attraverso una lettera maiuscola.
Tabella 84.6. Elenco dei comandi per le operazioni di copia e spostamento di testo che fanno uso delle aree temporanee con nome.
Comando | Descrizione |
"xyy | Copia la riga attiva nell'area temporanea x |
"xymod | Copia nell'area temporanea x il testo fino all'indicazione dal modificatore. |
"xdd | Trasferisce la riga attiva nell'area temporanea x. |
"xdmod | Trasferisce nell'area temporanea x il testo fino all'indicazione dal modificatore. |
"xp | Incolla il contenuto dell'area temporanea x prima del cursore. |
"xP | Incolla il contenuto dell'area temporanea x dopo il cursore. |
"adw
Sposta il testo nell'area temporanea a, a partire dalla posizione attiva fino all'inizio della prossima parola.
"a5yy
Copia cinque righe nell'area temporanea a, a partire dalla posizione attiva (inclusa).
"A3yy
Aggiunge tre righe nell'area temporanea a, a partire dalla posizione attiva (inclusa).
"a2P
Incolla due copie del contenuto dell'area temporanea a, a partire dalla posizione precedente a quella su cui si trova il cursore.
Per effettuare delle ricerche all'interno del documento aperto con VI si possono utilizzare le espressioni regolari (capitolo 316) attraverso due comandi un po' strani: / e ?. La sintassi per la ricerca in avanti è:
/modello
mentre per la ricerca a ritroso è la seguente:
?modello
Nel momento in cui si preme il tasto della barra obliqua o del punto interrogativo, VI visualizza il comando nella riga inferiore dello schermo permettendone il controllo e la correzione come avviene per i comandi che iniziano con i due punti. Al termine, l'inserimento di questo tipo di comando deve essere concluso con un [Invio].
Tabella 84.7. I comandi di ricerca attraverso espressioni regolari.
Comando | Descrizione |
/modello | Cerca in avanti una corrispondenza con il modello indicato. |
?modello | Cerca all'indietro una corrispondenza con il modello indicato. |
n | Ripete l'ultimo comando / o ?. |
N | Ripete l'ultimo comando / o ? in modo inverso . |
Il tipo di espressione regolare che può essere utilizzato con VI è solo quello elementare e valgono in particolare le regole indicate nella tabella 84.8.
Tabella 84.8. Le espressioni regolari che dovrebbero essere disponibili con la maggior parte delle realizzazioni di VI.
Simbolo | Descrizione |
. | Corrisponde a un carattere qualsiasi. |
\ | Fa perdere il significato speciale che può avere il carattere seguente. |
^ | Corrisponde all'inizio di una riga. |
$ | Corrisponde alla fine di una riga. |
[abc] | Corrisponde a un carattere qualsiasi tra quelli tra parentesi quadre. |
[^abc] | Corrisponde a un carattere qualsiasi diverso da quelli tra parentesi quadre. |
[a-z] | Un carattere qualsiasi nell'intervallo compreso tra a e z. |
[^a-z] | Un carattere qualsiasi diverso dall'intervallo compreso tra a e z. |
/[Ll]inux
Cerca in avanti tutte le stringhe corrispondenti a «Linux» oppure «linux».
/\.$
Cerca in avanti il punto finale di una riga (si osservi l'uso della barra obliqua inversa per togliere il significato speciale che ha il punto in un'espressione regolare).
La ricerca e sostituzione sistematica avviene attraverso un comando particolare che inizia con i due punti. La sua sintassi è la seguente:
:inizio,fines/modello_da_cercare/sostituzione/[g][c]
L'indicazione inizio e fine fa riferimento alle righe su cui intervenire. Si possono indicare dei numeri, oppure dei simboli con funzioni simili. Il simbolo $ può essere usato per indicare l'ultima riga del file. Un punto singolo (.) rappresenta la riga attiva. Il simbolo % viene invece utilizzato da solo per indicare tutte le righe del file.
Il modello utilizzato per la ricerca viene espresso secondo la forma delle espressioni regolari.
Normalmente, il valore da sostituire al modello cercato è fisso, ma può contenere un riferimento alla stringa trovata, attraverso il simbolo &.
La direttiva g specifica che si deve intervenire su tutte le occorrenze della corrispondenza con il modello, altrimenti la sostituzione riguarda solo la prima di queste.
La direttiva c specifica che ogni sostituzione deve essere confermata espressamente.
:1,$s/pippo/pappa/g
Sostituisce ogni occorrenza della parola «pippo» con la parola «pappa». La ricerca viene effettuata a partire dalla prima riga fino all'ultima.
:%s/pippo/pappa/g
Questo è un modo alternativo per eseguire la stessa operazione dell'esempio precedente: il simbolo % rappresenta da solo tutte le righe del file.
:.,10s/^..//g
Elimina i primi due caratteri (^..) da 10 righe a partire da quella attiva.
:%s/^..//gc
Esegue la stessa operazione dell'esempio precedente, applicando la sostituzione su tutto il file, richiedendo però conferma per ogni sostituzione.
:.,10s/^/xxxx/g
Inserisce la stringa «xxxx» all'inizio di 10 righe a partire da quella attiva.
VI permette di annullare l'ultimo comando inserito attraverso il comando u. A seconda della realizzazione di VI utilizzata, richiamando nuovamente il comando u si riottengono le modifiche annullate precedentemente, oppure si continuano ad annullare gli effetti dei comandi precedenti.
Tabella 84.9. Annullamento di un comando.
Comando | Descrizione |
u | Annulla l'ultimo comando. |
U | Annulla le modifiche sulla riga attiva. |
Il file o i file utilizzati per la modifica (compresi quelli che si creano) vengono aperti normalmente attraverso l'indicazione nella riga di comando, al momento dell'avvio dell'eseguibile vi.
Il salvataggio di un file può essere fatto per mezzo del comando :w (write) seguito eventualmente dal nome del file (quando si vuole salvare con un nome diverso oppure quando si sta creando un file nuovo). La conclusione dell'attività di VI si ottiene con il comando :q (quit). I comandi possono essere combinati tra loro, per esempio quando si vuole salvare e concludere l'attività simultaneamente con il comando :wq. Il punto esclamativo (!) può essere usato alla fine di questi comandi per forzare le situazioni, come quando si vuole concludere l'attività senza salvare con il comando :q!.
Dal momento che VI non mostra normalmente alcuna informazione riferita al file su cui si opera (compreso il nome), il comando :f (oppure la combinazione [Ctrl+g]) mostra sulla riga inferiore dello schermo: il nome del file aperto, le dimensioni e il numero della riga attiva.
Tabella 84.10. I comandi per il caricamento dei file e il loro salvataggio.
Comando | Descrizione |
:e nome_file | Carica il file indicato per poterlo modificare. |
:e! | Ricarica il file annullando le modifiche fatte nel frattempo. |
:r nome_file | Legge il file indicato e ne inserisce il contenuto dopo la riga attiva. |
:f | Mostra il nome e le caratteristiche del file aperto. |
:w | Salva. |
:w nome_file | Salva una copia con il nome indicato. |
:wq | Salva e termina l'esecuzione. |
:q | Fine lavoro. |
:q! | Fine lavoro forzato. |
|
VI ha ereditato da EX delle variabili di configurazione. Non si tratta di variabili di ambiente, ma di variabili interne a VI. Per attivare una variabile si utilizza il comando seguente:
:set [no]nome_della_variabile
Il prefisso no, prima del nome della variabile, serve per disattivarla. La tabella 84.11 mostra l'elenco di alcune di queste variabili.
Tabella 84.11. Variabili utilizzate da VI attraverso il comando :set.
:set nolist
Disabilita la visualizzazione dei caratteri di tabulazione e di fine riga.
:set number
Visualizza i numeri di riga.
Di seguito sono elencati una serie di comandi particolari che non sono stati inclusi nelle categorie precedenti.
mx
Etichetta la posizione corrente con la lettera rappresentata da x. Valgono solo le lettere minuscole. Il testo non viene modificato.
'x
Sposta il cursore all'inizio della riga che contiene l'etichetta rappresentata da x.
[Ctrl+L]
Riscrive la schermata: se sono apparsi messaggi che creano difficoltà alla visualizzazione del testo su cui si sta lavorando, questo comando permette di farli scomparire mostrando il testo effettivo del file.
:!comando
:ab abbreviazione testo_da_sostituire
Permette di stabilire un'abbreviazione che verrà sostituita sistematicamente con tutto quello che segue il comando. Se si usa :ab da solo, si ottiene un elenco delle abbreviazioni disponibili.
Può essere utilizzato il file ~/.exrc
per personalizzare la configurazione di VI attraverso comandi colon (quelli tipici di EX). Le cose più comuni che appariranno all'interno di questo file saranno la definizione di abbreviazioni e la definizione di alcune variabili. Segue un esempio.
:ab lx Linux :ab xwin X Window System :set autoindent :set number
Uno dei vantaggi importanti nell'uso di VI sta nella disponibilità di realizzazioni di questo programma per qualsiasi piattaforma. All'inizio di questo gruppo di sezioni su VI si accennava al fatto che esiste un'ottima versione Dos in grado di funzionare molto bene anche con i vecchi elaboratori dotati di poca memoria.
Quando si trasferiscono testi da un sistema GNU/Linux a Dos e viceversa si pone il problema dell'insieme di caratteri a disposizione: su GNU/Linux si utilizza presumibilmente la codifica Latin 1, mentre con il Dos no.
La soluzione più semplice a questo problema è probabilmente quella di usare Latin 1 in generale e di convertire le lettere accentate Dos in Latin 1 quando possibile. Per questo si può realizzare un semplice file di comandi da eseguire automaticamente utilizzando l'opzione -s.(4)
:1,$s/~E/à/g :1,$s/~J/è/g :1,$s/~B/é/g :1,$s/~M/ì/g :1,$s/~U/ò/g :1,$s/~W/ù/g
In pratica, la sintassi da usare all'avvio di VI dovrebbe essere la seguente:
vi -s file_comandi file_da_elaborare
In generale, i problemi legati alla conversione di un file da un insieme di caratteri all'altro, si risolvono attraverso l'uso di recode, descritto nel capitolo 342. |
AE (5) è un programma per la creazione e la modifica di file di testo che non ha doti particolari, però viene utilizzato alle volte, anche in sostituzione a VI, date le sue dimensioni ridotte e la sua configurabilità. In pratica, è importante conoscere l'uso elementare di AE perché si potrebbe essere costretti a usarlo quando ci si trova in condizioni di emergenza.
AE, pur essendo un programma che utilizza poche risorse, consente una configurazione dettagliata del suo funzionamento. Questo permette di solito di farlo funzionare in modo simile a VI o a Emacs. In generale, non è il caso di intervenire nella configurazione, tuttavia è bene sapere come si articola.
Il file di configurazione generale è /etc/ae.rc
, mentre per una configurazione particolare, AE utilizza il file ./ae.rc
, se esiste, oppure il file ~/ae.rc
(nella directory personale dell'utente).
L'eseguibile ae può essere avviato anche con l'opzione -f per indicare un file di configurazione alternativo. Questo fatto viene sfruttato alle volte per realizzare degli script che permettono di avviarlo al posto di altri programmi del genere, utilizzando la configurazione migliore per emularne il comportamento.
ae [-f file_di_configurazione] [file]
La sintassi per l'utilizzo dell'eseguibile ae è molto semplice e si spiega praticamente da sola: se si usa l'opzione -f si intende indicare esplicitamente un file di configurazione particolare.
|
In condizioni normali, avviando AE senza indicare argomenti si dovrebbe vedere quello che qui viene mostrato nella figura 84.5. Nella parte superiore dello schermo vengono riepilogati i comandi più importanti, annotati con la simbologia tradizionale del tipo ^x, a rappresentare delle combinazioni di tasti del tipo [Ctrl+x].
Se si utilizza AE da una console virtuale di GNU/Linux, non si dovrebbero avere problemi a spostare il cursore con i tasti freccia e gli altri tasti usati solitamente per questi scopi; inoltre, dal quadro che si vede, dovrebbe essere chiaro che si possono usare i comandi [Ctrl+x][i] e [Ctrl+x][Ctrl+s], rispettivamente per caricare e per salvare un file.
AE può essere configurato per funzionare in modo simile a VI. È il caso di sottolineare questo fatto, perché può capitare di dover usare un sistema GNU/Linux minimo di emergenza in cui con il comando vi si ottiene invece l'avvio di AE in una modalità pseudo-VI: è proprio questa compatibilità incompleta che può creare disagio in quelle situazioni.
La configurazione normale di AE per l'uso compatibile con VI, fa sì che AE si presenti normalmente come si vede nella figura 84.6 (dove in particolare AE viene usato per modificare il file /etc/lilo.conf
).
|
Per esempio, volendo salvare le modifiche del file, occorre digitare il comando :w seguito da [Invio], senza vederlo apparire da nessuna parte.
Joe (6) è solo uno tra i tanti programmi adatti per la creazione e la modifica di file di testo. Il vantaggio principale di questo programma è l'assenza di una modalità di comando distinta da quella di inserimento del testo, come invece avviene con VI. Il suo difetto principale è l'assenza di un menù.
Può gestire più file contemporaneamente, collocandoli all'interno di finestre differenti.
A prima vista non sembrerebbe, ma Joe è un programma altamente configurabile. Per questo viene utilizzato un file di configurazione contenente opzioni predefinite, comandi della tastiera e schede di guida (help).
Il file di configurazione viene cercato:
La distribuzione normale di Joe fornisce diversi file di configurazione, che vengono presi in considerazione a seconda del nome utilizzato per avviare il programma (per esempio attraverso un collegamento simbolico).
Le indicazioni sul funzionamento di Joe che appaiono nelle sezioni seguenti, fanno riferimento alla configurazione normale, quella contenuta nel file /etc/joe/joerc
che viene utilizzata in modo predefinito quando l'utente avvia il programma con il suo nome originale e non ha predisposto alcuna configurazione personalizzata.
Se si vuole personalizzare la configurazione, conviene copiare questo file nella propria directory personale e rinominarlo, in modo da ottenere ~/.joerc
.
joe [opzioni_globali] [[opzioni_particolari]file]...
L'eseguibile joe può essere avviato o meno con l'indicazione di uno o più file su cui intervenire. I file indicati, esistenti, vengono aperti e collocati ognuno in una finestra del programma, mentre quelli che non esistono vengono creati.
Le opzioni sono suddivise in due gruppi: quelle globali che intervengono su tutti i file e sono collocate prima di qualunque indicazione di file; quelle particolari che precedono il nome del file a cui si riferiscono.
Joe può essere avviato con altri nomi, attraverso la predisposizione di collegamenti, oppure modificando direttamente il nome dell'eseguibile. A seconda del nome, viene utilizzato un file di configurazione differente che adatta Joe al funzionamento di altri programmi del genere. Per conoscere queste caratteristiche particolari, si può consultare la documentazione originale.
Quando si avvia Joe senza l'indicazione di alcuna opzione, né di alcun file, il programma si presenta come nella figura 84.7. Viene mostrata una finestra centrale destinata a contenere il testo di un file da creare, con sopra una riga di stato e in basso le note sul copyright.
|
Come si può osservare, sulla riga di stato appaiono: le lettere I e W che stanno rispettivamente per insert e wrap; il nome del file, in questo caso Unnamed; la posizione del cursore; l'ora; un promemoria che ricorda come fare per richiamare la guida interna (con la sequenza [Ctrl+k][h]).
La riga di stato viene aggiornata a intervalli regolari di un secondo, questo per non appesantire il sistema con un'attività che in generale non è urgente.
Una funzione importante della riga di stato è quella di visualizzare, nella parte sinistra, l'inserimento di un comando composto da una sequenza di tasti, in modo da poter controllare ciò che si sta facendo o ciò che non è stato terminato.
La riga inferiore dello schermo viene utilizzata normalmente per l'inserimento di informazioni che completano un comando, come il nome di un file da salvare o da caricare. Quando questa parte non viene utilizzata, la finestra contenente il testo del file su cui si lavora si riappropria di quello spazio.
-asis
Uno dei problemi a cui si va incontro con i programmi da utilizzare in un terminale a caratteri è quello della codifica ASCII che può essere visualizzata sullo schermo. Generalmente è consentita la visualizzazione dei codici che utilizzano il primi 7 bit, cosa che esclude le lettere accentate e altri simboli speciali.
Questa opzione fa in modo che si utilizzi una codifica a 8 bit, visualizzando così tutti i simboli. Se il terminale a disposizione non lo consente, è meglio non attivare questa opzione: Joe mostrerà dei simboli alternativi, evidenziandoli in modo da lasciare intendere che in realtà si tratta di qualcosa di diverso.
-exask
La conclusione normale dell'attività con un file coincide con il salvataggio dello stesso (si ottiene con la sequenza [Ctrl+k][x]). Con questa opzione, si vuole fare in modo che venga sempre richiesta una conferma, in modo da avere la possibilità di cambiare nome.
-help
Visualizza il riassunto dei comandi a disposizione nella parte superiore dello schermo, come quando si utilizza la sequenza [Ctrl+k][h].
-marking
Con questa opzione si facilita la visualizzazione del testo che viene marcato quando si vuole iniziare un'operazione di taglia-copia-incolla.
-lightoff
Con questa opzione si fa in modo che al termine di un'operazione di copia, il testo non sia più evidenziato. Potrebbe non essere opportuno attivare questa opzione quando si intendono eseguire varie operazioni di copia successive con lo stesso blocco di partenza.
-crlf
Fa in modo che le righe siano terminate con la sequenza <CR><LF> come si fa nell'ambiente Dos.
-rdonly
Il file viene aperto in sola lettura.
I comandi che si possono impartire a Joe sono generalmente in forma di sequenza di tasti iniziata da una combinazione con il tasto [Ctrl]. Da un punto di vista tecnico, questo è un vantaggio, perché non si usano combinazioni con un tasto [meta] che può essere un problema attraverso un terminale. Con questo programma, non esistono quindi le modalità di funzionamento che distinguono tra la fase di inserimento e modifica e la fase di comando, come avviene invece con VI.
Teoricamente si può fare tutto utilizzando solo combinazioni con il tasto [Ctrl], anche se in pratica, quando il terminale lo consente, conviene utilizzare anche tasti con funzionalità comuni come i tasti freccia, i tasti pagina, [Backspace], [Canc] e [Esc]. In particolare, conviene ricordare che [Esc] corrisponde a [Ctrl+[] («control», «parentesi quadra aperta»).
La documentazione di Joe e la sua guida interna, utilizzano la notazione tradizionale per indicare le combinazioni di tasti e le sequenze di questi. per cui, ^KH rappresenta la sequenza [Ctrl+k][h].
Tutto quello che si fa con Joe può essere interrotto con la combinazione [Ctrl+c]. Se si stava introducendo un comando, questo viene annullato, mentre se ci si trovava semplicemente a inserire o modificare il testo, viene proposta la conclusione (senza salvataggio) dell'attività su quel file particolare. Fortunatamente viene chiesta una conferma e si può annullare nuovamente con un'ulteriore combinazione [Ctrl+c].
La guida interna di Joe è semplicemente un promemoria di comandi che occupano la parte superiore dello schermo, lasciando la parte inferiore per le operazioni di inserimento e modifica del testo. Per visualizzarla e successivamente per farla scomparire, si utilizza la sequenza [Ctrl+k][h], come suggerisce la riga di stato nella parte destra. La figura 84.8 mostra un esempio di questa guida.
|
La guida si compone di diverse schede. La prima di queste è quella che si vede nella figura, mentre le successive si ottengono con la sequenza [Esc][.] (escape punto). Quando si scorre tra le schede, per tornare a una scheda precedente si utilizza la sequenza [Esc][,] (escape virgola).
La scrittura e la modifica di testo avviene nel modo più semplice: la pura digitazione. Come ripetuto più volte, Joe non distingue la modalità di inserimento e modifica da quella di comando, perché i comandi utilizzano combinazioni di tasti a base di [Ctrl]. La tabella 84.12 riassume brevemente le possibilità esistenti.
Tabella 84.12. Riepilogo delle funzionalità di inserimento e modifica di testo con Joe.
È importante ricordare che i caratteri che utilizzano più di 7 bit non vengono visualizzati se non si specifica l'opzione -asis o se non si configura il file ~/.joerc
in tal senso.
Joe consente di utilizzare delle sequenze particolari di simboli per l'inserimento di codici ASCII che non possono essere scritti altrimenti. Per l'inserimento di questi codici, si possono usare due tipi di sequenze denominate: caratteri di controllo e metacaratteri.
La tecnica dei caratteri di controllo utilizza il simbolo apice inverso (`) per iniziare la sequenza relativa. Quello che segue può essere un numero decimale di tre cifre, oppure un numero esadecimale o un numero ottale. Quando si preme ` appare infatti il promemoria seguente che ricorda le tre possibilità.
Ctrl- (or 0-9 for dec. ascii, x for hex, or o for octal)
I codici che non possono essere rappresentati e appartengono alla fascia che va da 0 a 31 in decimale, vengono rappresentati con i simboli @, A, B, C ... X, Y, Z, [, ^, ], \ e _. Tali simboli, se il terminale lo consente, appaiono sottolineati.
I codici che non possono essere rappresentati e appartengono alla fascia che va da 128 in poi, appaiono nella forma dei caratteri corrispondenti che si ottengono togliendo l'ottavo bit (ovvero sottraendo 128), ma invertiti.
La tecnica dei metacaratteri utilizza la sequenza [Ctrl+\][x], dove x corrisponde al carattere che si ottiene togliendo l'ottavo bit al simbolo che invece si vuole ottenere. Quando si preme [Ctrl+\], prima di premere il tasto finale, appare un invito a completare il metacarattere nell'ultima riga dello schermo.
Meta-
Quando si dispone di un terminale configurato correttamente, ci sono poche probabilità di dover utilizzare i caratteri di controllo o i metacaratteri per inserire lettere accentate o altri simboli particolari, dal momento che la tastiera dovrebbe rispondere correttamente. Quando però ci si trova a utilizzare un terminale mal configurato, queste tecniche diventano molto importanti.
Nello stesso modo, se possibile, conviene utilizzare una visualizzazione sullo schermo a 8 bit, in modo da vedere correttamente tutti i simboli che compongono l'insieme di caratteri per cui è configurato il proprio sistema (per l'Italia dovrebbe trattarsi di ISO 8859-1). Se però il terminale non lo consente, la visualizzazione attraverso l'inversione del testo è comunque un'ottima alternativa.
La tabella 84.13 elenca le corrispondenze tra le lettere accentate e i caratteri corrispondenti quando si elimina l'ottavo bit.
Tabella 84.13. Lettere accentate e simboli corrispondenti nei terminali a 7 bit, quando la codifica a 8 bit di partenza è ISO 8859-1.
ISO 8859-1 | Simbolo corrispondente |
à | ` |
è | h |
é | i |
ì | l |
ò | r |
ù | y |
À | @ |
È | H |
É | I |
Ì | L |
Ò | R |
Ù | Y |
La navigazione del cursore all'interno del testo avviene in modo semplice e intuitivo attraverso l'uso dei tasti freccia e pagina, quando possibile, altrimenti con combinazioni di tasti abbastanza facili. Una particolarità importante di questo programma è la possibilità di raggiungere facilmente la zona del testo dove sono state fatte modifiche in precedenza. La tabella 84.14 elenca i tasti e le combinazioni utili per la navigazione del cursore nel testo.
Tabella 84.14. Comandi utili per la navigazione con Joe quando è configurato nel modo predefinito.
Tasto o combinazione | Risultato |
tasti freccia | Spostano il cursore di una posizione nella direzione indicata dal tasto. |
Ctrl+f | Spostamento a destra di un carattere. |
Ctrl+b | Spostamento a sinistra di un carattere. |
Ctrl+p | Spostamento in alto di una riga. |
Ctrl+n | Spostamento in basso di una riga. |
tasti pagina | Spostano il testo in modo verticale di un numero consistente di righe. |
Ctrl+u | Spostamento alla schermata precedente. |
Ctrl+v | Spostamento alla schermata successiva. |
Ctrl+k u | Spostamento all'inizio del file. |
Ctrl+k v | Spostamento alla fine del file. |
Ctrl+k l n | Spostamento alla riga n. |
Ctrl+k - | Spostamento alla posizione della modifica precedente. |
Ctrl+k = | Spostamento alla posizione della modifica successiva. |
Joe permette di gestire diversi file contemporaneamente. Per questo, ogni file viene inserito in una finestra differente. Queste finestre possono essere visibili contemporaneamente, dividendosi lo spazio sullo schermo, oppure possono essere sovrapposte semplicemente.
Le operazioni di caricamento e salvataggio riguardano sempre solo la finestra attiva, cioè quella in cui si trova il cursore e che risulta visibile. La finestra che viene creata eredita tutte le sue caratteristiche da quella attiva nel momento della creazione, compreso il file in essa contenuto.
La tabella 84.15 elenca i comandi utili per la gestione di file e finestre.
Tabella 84.15. Comandi per la gestione di file e finestre.
Comando | Descrizione |
Ctrl+k e file | Carica il file indicato in una nuova finestra. |
Ctrl+k r file | Inserisce il file indicato nella posizione del cursore. |
Ctrl+k d file | Salva eventualmente confermando o cambiando il nome del file. |
Ctrl+k x | Salva ed elimina la finestra attiva. |
Ctrl+c | Termina il lavoro della finestra attiva senza salvare. |
Ctrl+k o | Crea una nuova finestra dividendo in due lo schermo. |
Ctrl+k i | Ingrandisce al massimo la finestra attiva, oppure suddivide lo schermo tra le finestre. |
Ctrl+k n | Passa alla finestra successiva. |
Ctrl+k p | Passa alla finestra precedente. |
La figura 84.9 mostra uno schermo diviso in due finestre.
|
Vale la pena di tenere a mente quanto segue:
quando si salva utilizzando la sequenza [Ctrl+k][d] si può cambiare nome al file che si salva, ma il nome abbinato alla finestra resta ed è quello che sarà proposto ancora;
la sequenza [Ctrl+k][x] salva senza fare domande, oppure richiede una conferma se Joe funziona con l'opzione -exask;
quando si carica un file all'interno di una finestra ottenuta suddividendo quella corrente, il file utilizza la finestra attiva e non viene collocato in una nuova;
quando si chiude l'ultima finestra, il programma conclude la sua attività.
Una della caratteristiche più importanti di Joe è quella di poter intervenire attraverso le operazioni consuete di taglia-copia-incolla anche su porzioni verticali di testo.
La segnalazione del testo da tagliare o copiare avviene attraverso le sequenza [Ctrl+k][b], per l'inizio, e [Ctrl+k][k], per la posizione oltre la fine del blocco. Normalmente, il blocco selezionato risulta evidenziato.
Per tutto il tempo in cui il blocco risulta evidenziato, è possibile incollare attraverso [Ctrl+k][c], nella posizione in cui si trova il cursore, tagliare (nel senso di eliminare) attraverso [Ctrl+k][y], o spostare con la sequenza [Ctrl+k][m]. Il testo evidenziato può anche essere salvato in un file differente, attraverso [Ctrl+k][w]
Normalmente, la selezione del testo avviene nel modo tradizionale, verso destra e poi vero il basso, oppure verso sinistra e poi verso l'alto. È possibile attivare la modalità di selezione rettangolare attraverso [Ctrl+t][x]. Quando questa modalità è attivata, si dovrebbe notare una lettera X sulla barra di stato, nella parte sinistra.
La possibilità di selezionare un blocco di testo rettangolare (o verticale) fa sì che poi si possa incollare e spostare un blocco del genere, trattando il testo come una tabella.
La tabella 84.16 elenca i comandi utili per la gestione dei blocchi di testo.
Tabella 84.16. Comandi per la gestione dei blocchi di testo.
Comando | Descrizione |
Ctrl+k b | Segnala l'inizio di un blocco di testo. |
Ctrl+k k | Segnala la fine di un blocco di testo. |
Ctrl+k c | Incolla un blocco di testo. |
Ctrl+k y | Cancella un blocco di testo. |
Ctrl+k m | Sposta un blocco di testo. |
Ctrl+k w | Salva un blocco di testo in un file. |
Ctrl+t x | Passa alla modalità di selezione rettangolare oppure a quella normale. |
Un programma per la gestione di file di testo può richiedere comportamenti differenti a seconda del tipo di file su cui si opera. In particolare può essere importante che il testo vada a capo da solo, oppure può essere preferibile il contrario. Nello stesso modo, si può desiderare che il testo scritto venga inserito in sovrascrittura, oppure nel modo normale.
La tabella 84.17 elenca alcuni comandi utili per la formattazione del testo.
Tabella 84.17. Comandi per la formattazione del testo.
Comando | Descrizione |
Ctrl+t w | Suddivide automaticamente le righe, o meno. |
Ctrl+k j | Riformatta il paragrafo in base ai margini stabiliti. |
Ctrl+t l n | Definisce il margine sinistro (di n colonne). |
Ctrl+t r n | Definisce il margine destro (di n colonne). |
Ctrl+t t | Scambio delle modalità di sovrascrittura e inserimento. |
La ricerca di una stringa, o di un modello, si inizia con la sequenza [Ctrl+k][f].
Find (^C to abort):
Dopo l'inserimento della stringa, o del modello, viene richiesto il modo in cui effettuare la ricerca.
(I)gnore (R)eplace (B)ackwards Bloc(K) NNN (^C to abort):
Premendo semplicemente [Invio] si inizia una ricerca in avanti, altrimenti occorre indicare una o più istruzioni, attraverso l'uso di lettere o numeri, in relazione al tipo di azione che si intende compiere:
b inizia una ricerca all'indietro;
i non distingue tra lettere maiuscole e minuscole;
n inserendo un numero si intende raggiungere l'n-esima occorrenza della stringa o del modello di ricerca;
r sostituisce le stringhe trovate.
Quando la ricerca viene fatta con l'opzione r allo scopo di sostituire le stringhe, viene richiesta la stringa da utilizzare nella sostituzione.
Replace with (^C to abort):
Una volta inserita e premuto [Invio] inizia la ricerca; quindi, in presenza di una corrispondenza viene richiesto se si intende sostituire o meno il testo.
Replace (Y)es (N)o (R)est (B)ackup (^C to abort)?
y sostituisce il testo;
n salta la sostituzione e cerca la prossima occorrenza;
r sostituisce tutte le occorrenze a partire da quella appena ritrovata (eventualmente limitandosi al numero indicato quando veniva specificato il tipo di ricerca);
[Ctrl+c] interrompe la ricerca.
Joe consente di utilizzare delle espressioni per la ricerca, in modo da definire un modello particolare. In modo simile, è consentito anche l'utilizzo di espressioni per la sostituzione. Queste espressioni ricordano vagamente le espressioni regolari. Per conoscerne l'utilizzo si può consultare la documentazione: joe(1). Vale la pena di rammentare che \\ rappresenta una singola barra obliqua inversa, mentre \n rappresenta il codice di interruzione di riga.
[Ctrl+l] consente di ripetere una ricerca.
Quando il programma propone un invito a inserire qualche tipo di informazione (si pensi a quando si salva o si carica un file), è possibile utilizzare il tasto [Tab] per tentare di ottenere il completamento del nome. Se il nome non può essere completato, la pressione ulteriore di quel tasto fa apparire l'elenco delle possibilità.
Nello stesso modo, si possono usare i tasti [freccia su] o [freccia giù] per recuperare un'informazione inserita in precedenza nella stessa situazione. Si ottiene cioè lo scorrimento dello storico dei dati inseriti.
Joe è un programma per la gestione dei file di testo piuttosto potente. Molte delle sue caratteristiche non sono state analizzate qui, soprattutto non sono descritte le sue possibilità di configurazione.
Come già suggerito, se si intende utilizzare assiduamente questo programma conviene consultare la sua documentazione originale: joe(1).
Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini --daniele @ swlibero.org
1) Elvis < 2.0 software libero
2) Elvis ≥ 2.1 software non libero: licenza Artistic
3) Vim software libero con licenza speciale
4) Le sigle ~E, ~J, ecc. rappresentano le lettere accentate della codifica utilizzata nei sistemi Dos. Per scrivere un file del genere, occorrono due fasi: una in un ambiente che accetti la codifica Latin 1 e l'altra in Dos.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome creazione_e_modifica_di_file_di_testo.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]