Come scritto nell'introduzione, l'elaborazione di testi[1] è una caratteristica fondamentale per l'uso di un sistema Unix. I due editor dei quali stiamo per spiegare brevemente le modalità d'uso risultano inizialmente un po' ostici, ma una volta imparate le nozioni di base si rivelano entrambi strumenti molto potenti.
Emacs è probabilmente il più potente programma di elaborazione testi esistente; può veramente fare qualsiasi cosa ed è espandibile all'infinito grazie al suo linguaggio di programmazione incorporato basato sul Lisp. Con Emacs potete andare in giro per il web, leggere la vostra posta, prendere parte a gruppi di discussione, fare il caffè, etc... ma quello che sarete in grado di fare dopo aver letto questa sezione sarà semplicemente: avviare Emacs, modificare uno o più file, salvarli e uscire da Emacs. Il che non è un cattivo inizio.
Avviare Emacs è relativamente semplice:
emacs [file] [file...] |
È il momento di passare alla pratica. Per fare un esempio, apriamo due file: file1 e file2. Se questi due file non esistono, saranno creati non appena scriverete qualcosa al loro interno. Digitate:
$ emacs file1 file2 |
Come potete vedere, sono stati creati due buffer: uno per ciascun file. Ne è visibile anche un terzo, in fondo allo schermo (dove è scritto (New file)): questo è il mini-buffer; non potete andare di vostra iniziativa in questo buffer, dovete essere invitati a farlo da Emacs stesso durante le operazioni interattive. Per cambiare buffer digitate Ctrl+x o. Potete scrivere del testo come in un editor "normale", e cancellarlo con i tasti Canc o Backspace.
Per spostarvi all'interno del documento potete usare i tasti cursore, o anche altre combinazioni di tasti: Ctrl+a per andare all'inizio della riga, Ctrl+e per andare alla fine della riga, Alt+< per andare all'inizio del buffer e Alt+> per andare alla fine del buffer. Esistono molte altre combinazioni, anche per simulare tutti i tasti cursore[2].
Quando volete salvare i cambiamenti effettuati in un file digitate Ctrl+x Ctrl+s, se invece volete salvare il contenuto del buffer in un altro file digitate Ctrl+x Ctrl+w, e Emacs vi chiederà il nome del file in cui salvarlo. Per inserirlo potete aiutarvi con il completamento automatico.
Se lo desiderate, potete visualizzare sullo schermo un solo buffer. Ci sono due modi per farlo:
vi trovate nel buffer che volete nascondere: digitate Ctrl+x 0;
vi trovate nel buffer che volete mantenere sullo schermo: digitate Ctrl+x 1.
Esistono poi due modi per richiamare sullo schermo il buffer che volete:
digitate Ctrl+x b e scrivete il nome del buffer che desiderate,
digitate Ctrl+x Ctrl+b e sarà aperto un nuovo buffer, denominato *Buffer List*; potete muovervi all'interno di esso tramite la combinazione Ctrl+x o, quindi selezionate il buffer desiderato e premete il tasto Invio, oppure digitatene il nome all'interno del mini-buffer. Quando avrete fatto la vostra scelta, il buffer *Buffer List* tornerà sullo sfondo.
Se avete finito di modificare un file e volete togliere di mezzo il relativo buffer, digitate Ctrl+x k; Emacs vi chiederà quale buffer deve essere chiuso. Come opzione predefinita verrà indicato il nome del buffer in cui vi trovate attualmente; se volete eliminare un buffer diverso da quello indicato scrivetene direttamente il nome, oppure premete TAB: in questo caso Emacs aprirà (ancora) un altro buffer denominato *Completions*, contenente la lista delle scelte possibili. Confermate la vostra scelta con il tasto Invio.
Potete anche ripristinare in qualsiasi momento la visualizzazione di due buffer contemporaneamente; per farlo, digitate Ctrl+x 2. Il nuovo buffer aperto sarà inizialmente una copia del buffer attuale (il che vi permette, ad esempio, di modificare un file lungo in più punti contemporaneamente), e potrete poi procedere come già descritto per spostarvi in un altro buffer.
Potete aprire altri file in qualsiasi momento, tramite Ctrl+x Ctrl+f; Emacs vi chiederà il nome del file, e potrete utilizzare nuovamente il completamento automatico.
Supponiamo di essere nella situazione di Figura 4-2.
Innanzitutto dovete selezionare il testo che volete copiare. In X potete farlo usando il mouse, e l'area selezionata sarà anche evidenziata; ma ora siamo in modo testo :-). In questo caso vogliamo copiare l'intera frase. Prima di tutto dovete posizionare un marcatore per marcare l'inizio dell'area; supponendo che il cursore sia nella posizione mostrata nell'immagine qui sopra, digitate innanzitutto Ctrl+spazio (Control + barra spaziatrice): Emacs mostrerà il messaggio Mark set nel mini-buffer. Quindi spostatevi a inizio riga con Ctrl+a: l'area da copiare o tagliare è rappresentata da tutto il testo compreso tra il marcatore e la posizione attuale del cursore, quindi in questo caso è tutta la riga. Digitate poi Alt-w (per copiare) o Ctrl+w (per tagliare). Nel caso della copia, Emacs vi riporterà temporaneamente alla posizione del marcatore, in modo che possiate vedere l'area selezionata.
Posizionatevi poi sul buffer nel quale volete copiare il testo, e premete Ctrl+y per ottenere quello che potete vedere in Figura 4-3.
In effetti, ciò che avete appena fatto è stato copiare il testo nel "kill ring" di Emacs: questo "kill ring" contiene tutti i blocchi di testo copiati o tagliati da quando Emacs è stato avviato. Qualsiasi blocco, appena copiato o tagliato, viene inserito in cima al kill ring. La combinazione Ctrl+y incolla solo il blocco che si trova in cima: se volete accedere agli altri blocchi premete Ctrl+y e poi Alt-y finché non raggiungete il testo desiderato.
Per cercare del testo, andate nel buffer in cui volete effettuare la ricerca e premete Ctrl+s: Emacs vi chiederà quale stringa deve cercare. Per avviare una ulteriore ricerca per la stessa stringa, sempre nello stesso buffer, premete nuovamente Ctrl+s. Quando Emacs arriva alla fine del buffer e non trova più occorrenze della stringa, potete premere ancora Ctrl+s per far ripartire la ricerca dall'inizio del buffer. Premendo il tasto Invio la ricerca sarà conclusa.
Per effettuare una ricerca con sostituzione, premete Alt-%: Emacs vi chiederà quale stringa deve cercare, con cosa deve sostituirla, e vi chiederà conferma per ogni occorrenza che troverà.
Per finire, una cosa molto utile: Ctrl+x u annulla l'ultima operazione effettuata. Potete annullare un numero di operazioni a vostro piacimento.
La scorciatoia per farlo è Ctrl+x Ctrl+c. Se non avete salvato le modifiche apportate ai buffer, Emacs vi chiederà se volete farlo ora.
[1] | "Elaborare un testo" significa modificare il contenuto di un file costituito principalmente da lettere, cifre e segni di punteggiatura; questi file possono essere messaggi di posta elettronica, codice sorgente di programmi, documenti, o file di configurazione. |
[2] | Emacs è stato progettato per funzionare su tutti i sistemi possibili, e ancora oggi esistono terminali sprovvisti dei tasti cursore. Questo è ancor più vero per VI. |