In questo capitolo descriveremo sinteticamente tre programmi per comporre file di testo. Ulteriori e più approfondite informazioni su questi editor possono essere reperite, come al solito, sulle relative man pages. I primi due editor sono tra i più diffusi in ambiente Unix: vi ed emacs; il terzo è pico, l'editor del programma di posta elettronica pine, che può essere usato anche indipendentemente da quest'ultimo; pico, pur essendo meno diffuso dei primi due e soprattutto molto meno potente, è stato inserito in questa brevissima rassegna perché è uno degli editor più semplici da usare tra i tanti reperibili in ambiente Unix.
La variabile di ambiente EDITOR contiene il nome del programma editor di default, che viene invocato automaticamente in determinate circostanze. Se la variabile non esiste (non è stata definita) allora l'editor di default è vi. Per cambiare l'editor di default si deve modificare il valore di questa variabile.
vi (si pronuncia "vuai") è sicuramente l'editor più diffuso sotto Unix ed anche uno degli editor più potenti in assoluto. Con vi si può fare praticamente tutto, l'unico difetto è che è un po' ostico da utilizzare per chi è alle prime armi ed è completamente fuori standard rispetto ad altri editor (o meglio, vista la sua importanza, vi costituisce uno standard a sé).
Il programma è caratterizzato da due modalità operative differenti: la modalità "comando" e la modalità "inserimento". Nella prima è possibile impostare i comandi generali per la gestione dell'intero file (in ambiente vi il file caricato si chiama buffer), mentre nella seconda è possibile scrivere e modificare il testo.
Appena caricato vi ci troviamo in modalità comando, in cui possiamo muoverci all'interno del buffer utilizzando i tasti di spostamento del cursore (quelli con le "frecce") o i tasti h per spostare il cursore verso sinistra, j per spostarlo in basso, k per muoverlo verso l'alto e l per muoverlo a destra.
Dalla modalità comando il tasto i ci permette di passare alla modalità inserimento. Per tornare in modalità comando si deve battere il tasto Esc (che su alcuni sistemi è sostituito dalla sequenza Ctrl-[ ). Il programma non visualizza nessuna indicazione sulla modalità attiva, quindi si deve porre una certa attenzione quando si commuta da una modalità all'altra.
Entrati in modalità inserimento possiamo digitare il testo da inserire, proprio come su qualsiasi altro programma di videoscrittura. Ogni modifica, cancellazione o spostamento, avviene però sul singolo carattere: per operare su interi blocchi di testo ci si deve portare in modalità comando, dove si può, ad esempio, cancellare una intera linea del buffer battendo due volte il tasto d , oppure il singolo carattere sotto al cursore, battendo x . Per tornare in modalità inserimento, invece del tasto i che ci permette di inserire il testo a partire dalla posizione attuale del cursore (insert), possiamo battere a (add) che ci permette di aggiungere il testo alla fine della linea su cui si trova il cursore.
La modalità comando mette a disposizione una vasta gamma di istruzioni, costituite da una o due lettere, con cui è possibile operare anche sull'intero buffer. Per utilizzarle si deve battere : (due punti) e poi digitare il comando. Vediamone alcuni:
Per spostarsi direttamente su una certa linea all'interno del testo si può digitare ":n", dove n è il numero di riga; per andare alla fine del file si può battere più semplicemente G .
Come in ogni editor che si rispetti, anche in vi è possibile cercare una certa stringa di caratteri all'interno del buffer: dalla modalità comando basta battere / (slash) seguito dalla stringa da cercare (o da una espressione regolare che descrive la stringa che stiamo cercando); una volta trovata la prima occorrenza della stringa, per cercarne un'altra occorrenza basterà battere nuovamente / , senza specificare nessuna stringa; si può anche battere il tasto n (next) per trovare la successiva occorrenza, oppure N per trovare l'occorrenza precedente.
Per utilizzare i comandi di vi è estremamente utile poter identificare i numeri di linea del testo inserito; per questo è opportuno, appena avviato il programma, dare il comando ":set number" che attiva la numerazione automatica delle linee. Per far sì che vi abiliti automaticamente questa funzione, si deve inserire il comando "set number" nel file ".exrc" che contiene i comandi che devono essere eseguiti da vi all'inizio della sessione di lavoro; come tutti i file di configurazione, anche questo comincia con un punto e deve essere inserito nella nostra home directory. A titolo di esempio riporto il contenuto del mio file ".exrc":
set autoindent
set tabstop=2 shiftwidth=2
set number
set wm=10
Per aprire un file in modalità di sola lettura, senza correre il rischio di modificarlo inavvertitamente, si può utilizzare l'opzione "-r" o il comando view.
vi ha un gran numero di comandi, alcuni dei quali (pochissimi, a dire il vero) sono stati descritti in queste pagine; per avere un riferimento più dettagliato sulle varie possibilità offerte dal programma è opportuno riferirsi alla documentazione del proprio sistema.
L'editor emacs è forse più sofisticato, ma altrettanto complesso e potente di vi. Supporta un linguaggio per la compilazione di macro molto simile al Lisp, un linguaggio funzionale che opera su liste. Questo linguaggio di macro è potente al punto che qualcuno si è anche divertito a sviluppare dei veri programmi (ed anche dei videogiochi) che girano all'interno dell'editor emacs!
Come struttura il programma si avvicina maggiormente agli editor tradizionali, in questo caso non c'è la doppia modalità inserimento/comandi, ma tutto può essere fatto in un unico ambiente e le sequenze di tasti che non devono essere inserite nel testo, perché servono a dare dei comandi al programma, sono tutte composte premendo Ctrl insieme ad altri tasti.
Una caratteristica importante di emacs è il fatto di poter operare contemporaneamente su più file (che anche in questo caso vengono chiamati buffer).
Esiste anche una versione grafica di emacs, denominata xemacs, che permette di lavorare in tutta comodità su un terminale grafico X11, utilizzando per i comandi, invece delle combinazioni di tasti, i consueti menù a tendina selezionabili con il mouse.
Spesso emacs è utilizzato proprio in questa modalità grafica guidata dai menù, che quindi non richiede ulteriori spiegazioni; ci limiteremo allora a descrivere i principali comandi che devono essere impartiti da tastiera nel caso si utilizzi il programma su un terminale alfanumerico. Generalmente si utilizzano i caratteri di spostamento del cursore per muoversi all'interno del buffer ed il tasto backspace per effettuare le cancellazioni, tuttavia non tutti i terminali prevedono l'uso di questi tasti; in tal caso è bene riferirsi al seguente elenco:
Per la gestione dei file si deve fare riferimento ai seguenti comandi:
Ogni volta che si usa il comando Ctrl-x Ctrl-f per aprire un nuovo file, lo si carica nel buffer, ma non si eliminano i buffer precedentemente caricati: semplicemente avremo più buffer aperti e distinti, ognuno contenente il testo di un file. Si può passare da un buffer all'altro utilizzando le seguenti combinazioni di tasti che gestiscono le "finestre" di emacs:
Per effettuare delle ricerche sul testo di un buffer si deve battere Ctrl-s (search) e poi digitare la stringa di testo da cercare; per ripetere la ricerca della stessa stringa sarà sufficiente battere di nuovo Ctrl-s .
Emacs è dotato di un potente sistema di help on-line e di un tutorial, una sorta di breve corso guidato sulle funzioni principali del programma. Per accedere all'help, ed avere istruzioni sull'uso di un certo comando, basta battere Ctrl-h c e poi la sequenza di caratteri su cui si vuole un aiuto. Ad esempio:
>> Ctrl-h c Ctrl-p
C-p runs the command previous-line
Per avere informazioni più complete su una certa sequenza di tasti si può usare il comando Ctrl-h k seguito dal comando di cui si vogliono le informazioni. emacs visualizza il testo di help in una finestra separata, quindi per ripristinare la finestra su cui stavamo lavorando, eliminando l'help, dovremo battere Ctrl-x 1 .
Per eseguire il tutorial si deve battere Ctrl-h Ctrl-h t . Il tutorial viene visualizzato in una finestra separata e permette anche di sperimentare praticamente numerosi comandi.
Spenderemo soltanto poche parole per descrivere questo semplice editor che, come abbiamo già detto, viene anche utilizzato dal programma pine come editor per la compilazione dei messaggi di posta elettronica.
Ciò che distingue pico dagli altri due programmi visti in questo capitolo, è sicuramente il fatto che tutti i comandi che è possibile impostare vengono riportati sinteticamente in una specie di menù visualizzato sulle ultime due righe del terminale. Ogni comando viene impostato premendo Ctrl insieme ad un altro tasto. A differenza di emacs, pico dispone di un unico buffer e quindi può operare su un unico file alla volta. In ogni caso qualsiasi paragone tra questo programma ed uno degli altri due editor visti in precedenza è del tutto fuori luogo: si tratta di prodotti di classe completamente diversa, potenti e versatili vi ed emacs, estremamente limitato, ma assai intuitivo nell'uso, pico.
Riportiamo una breve spiegazione dei comandi principali:
Per cancellare o spostare un intero blocco di testo è possibile utilizzare il comando di "selezione estesa": ci si posiziona all'inizio del testo da selezionare e si batte Ctrl-^ ; muovendosi poi con il cursore, si estende la selezione: il testo marcato viene visualizzato in reverse. A questo punto è possibile tagliare l'intera selezione con il comando Ctrl-k e poi eventualmente incollarlo (con Ctrl-u ) nella nuova posizione del cursore.
Pico non offre altre funzionalità avanzate: quindi solo lo stretto indispensabile per scrivere un breve file di testo (come un messaggio di posta elettronica, ad esempio) e poco altro. Se dovessimo avere la necessità di eseguire operazioni più complesse sul nostro file, dovremo rivolgeci alla maggiore potenza (e complessità) di emacs e vi.
L'interfaccia grafica X Window
Alcuni strumenti per l'uso della rete Internet