[precedente] Colori in bash - Copertina - CGI-SQL [successivo]

Articoli


OPEN

Joe: piccolo grande editor

Durante la mia prima installazione di Linux ho buttato l'occhio sui messaggi descrittivi dei vari pacchetti installati, e tra i tanti ho notato un editor molto simile a Wordstar, e la cosa, proveniendo dall'ambiente msdos e Turbo Pascal, significava diventare operativo da subito anche in ambiente Linux.

joe poi è diventato il mio editor preferito. Semplice, comodo per molti usi, e sotto sotto anche molto potente (anche se non potrà competere con emacs come funzionalità). Cosa importante è che joe è software open source.

Per un neo utente Linux è un editor sicuramente consigliabile, visto che è semplice da usare anche per la prima volta (mi sono capitati editor in cui l'unico modo che avevo per uscire era aprire una nuova sessione e mandare all'editor il segnale di kill, il tasto per uscire l'ho scoperto dopo). vi rimane però sempre obbligatorio, almeno i comandi base per poter intervenire con un disco di recupero, o per poter muoversi anche in altri sistemi *nix.

Non so come si compili, perché non ne ho mai sentito la necessità, e fin'ora l'ho trovato disponibile in formato binario praticamente in tutte le distribuzioni (anche se non sempre installato di default). Forse non si trova su quelle più piccole (quelle che hanno la pretesa di starci in un unico floppy).

Da cosa deriva il nome joe? L'autore si chiama Joseph H. Allen, e la prima cosa che appare appena avviato l'editor è la scritta: ``Joe's Own Editor'', cioè l'editor di Joe, un gioco di parole tipico che fanno i programmatori... :-)

Entriamo in joe

Per entrare in joe è sufficiente chiamarlo per nome:
tizio@host:~$ joe

Eventualmente si può dare il nome di un file come parametro (anche più di un file, questo però lo vediamo dopo).

joe occupa subito il terminale con il contenuto del file (se il file esiste già su disco), e riserva per sé solo la prima riga (e l'ultima per temporanei messaggi, come il copyright quando è appena avviato, che però spariscono alla prima pressione di un tasto). Da notare in alto a destra il tasto per ottenere aiuto: Ctrl-K H. Questa scrittura significa abbassare e tenere premuto il tasto Ctrl, premere (non a lungo!) K, rilasciare Ctrl e premere H. Questa sequenza di tasti mostra e rimuove una videata di aiuto sugli altri tasti disponibili.

Se aprite la guida potete vedere che normalmente sono sufficienti i tasti freccia per muoversi (e altre combinazioni di tasti utili se avete terminali particolari in cui non rispondono bene i normali tasti freccia), Ctrl-C per abbandonare joe (joe chiederà conferma dell'operazione se c'è testo modificato non ancora registrato su disco), Ctrl-K X per salvare il file ed uscire. Una comoda funzione è Ctrl-R, utilissima per ridisegnare l'intera videata se lavorate in console e/o vi capitano messaggi di sistema o comunicazioni da altri utenti.

Dovete fare attenzione a Ctrl-S: a volte capita di premerlo per sbaglio, e blocca l'output sul terminale. Questo potrebbe essere comodo se lavorate su una linea lenta e volete aggiornare il terminale solo dopo aver completato l'inserimento di un po' di testo. Per sbloccare il terminale è sufficiente premere Ctrl-Q o il tasto Scroll Lock.

Funzioni speciali

joe è un editor con molte cosine al posto giusto e semplici da trovare. Con il tasto Ctrl-T entrate in un menù dove si possono impostare molti parametri, i margini del testo, i rientri automatici per semplificare la programmazione, il ritorno a capo... molte cose ve le lascio provare, perché è più lungo elencarle che vederle all'opera.

Ci sono alcuni tasti particolari, che ampliano le funzioni di joe se seguiti da altri tasti:

Descrivere tutte le funzioni sarebbe lungo, io mi sono spaventato quando dopo un anno e mezzo di uso di joe mi sono accorto che ci sono più pagine di guida (oltre la principale), visibili premendo la sequenza ``Esc .'' oppure ``Esc ,''.

Esiste un tasto particolare, ` (l'accento inverso, si ottiene con AltGr-' nelle tastiere italiane) permette di inserire direttamente nel testo caratteri speciali, come le combinazioni ottenibili con il tasto control. Per inserire l'accento inverso bisogna digitare due volte il tasto accento inverso, mentre per inserire ad esempio un ritorno a capo in stile msdos bisogna digitare ` M Invio.

Funzioni più usate

La ricerca di testo si può fare in modo diretto usando Ctrl-K F: si digita la parola voluta e si danno eventuali opzioni (ad esempio ``i'' per ignorare maiuscolo/minuscolo, oppure ``r'' per sostituire in automatico un'altra parola). Le ricerce successive si fanno con Ctrl-L.

Esiste anche la ricerca interattiva: Esc S, si inizia a scrivere la parola e man mano che si completa la parola il cursore si autoposiziona sulla prima corrispondenza che trova. Si può cercare la corrispondenza successiva con la stessa chiave ripentendo Esc S, cancellare un carattere nella chiave inserito male, e al primo spostamento con i tasti freccia si esce dalla ricerca interattiva.

Si possono marcare le posizioni del testo, e ritornarci automaticamente in seguito. Si possono memorizzare fino a 10 posizioni, identificate da un numero da 0 a 9. Per marcare la posizione corrente basta digitare Esc Esc numero, mentre per tornare ad una posizione memorizzata basta Esc numero.

La copia, lo spostamento e l'eliminazione di blocchi di testo si fanno marcando inizio e fine del blocco interessato, posizionando il cursore nella nuova posizione e dando il comando voluto di copia o spostamento. Inizio e fine di un blocco (ovvero una parte) di testo si fanno rispettivamente con Ctrl-K B e Ctrl-K K, il comando per copiare il blocco di testo nella nuova posizione è Ctrl-K C e per spostarlo Ctrl-K M. Eliminazione di un blocco, scrittura e lettura su disco e altri comandi li trovate nella guida.

In joe non esiste una funzione integrata di ordinamento, ma esiste lo stesso una funzione comoda: è possibile mandare una parte di file (un blocco) o l'intero file attraverso un filtro esterno e sostituirlo con l'output di quel filtro. Per ordinare un file con un elenco di nomi basta quindi fare Ctrl-K / e digitare il comando voluto (ad esempio sort). Si può usare anche grep per eliminare le righe non volute, e tutti i filtri che si vogliono.

Le finestre

joe può modificare più di un file alla volta, e questo rendendoli visibili tutti (o gran parte) nella stessa videata di terminale. Ovviamente più file sono aperti, meno spazio sarà disponibile per ognuno. Generalmente basta specificare più nomi di file sulla stessa riga di comando, ma è possibile aprirne altri tramite i comandi che si possono trovare facilmente tra le pagine di guida. Per passare da un file all'altro bastano le sequenze Ctrl-K N e Ctrl-K P.

File di configurazione

joe usa alcuni file di configurazione, che ricerca automaticamente (usando il primo che incontra). Nell'ordine sono il .joerc nella directory corrente, .joerc nella propria home directory e uno globale di sistema, in Debian è /etc/joe/joerc, mentre in una vecchia Slackware era in /usr/lib/joe/joerc (mi sembra). Debian usa il criterio che /usr si dovrebbe poter montare liberamente in sola lettura, e le modifiche alla configurazione globale del sistema si fa tutta in file che risiedono in /etc.

Il file di configurazione è un normale file di testo, dove joe ignora le righe vuote e quelle inizianti con uno spazio. Quindi per disabilitare un'opzione è sufficiente inserire uno spazio nella prima colonna davanti all'opzione da disabilitare. Dovrebbe essere ben documentato internamente, quindi basta guardarlo e le difficoltà dovrebbero essere minime (inglese a parte).

In genere quello che si fa è abilitare l'uso dei caratteri estesi (-asis) per poter vedere i testi italiani comprensivi di vocali accentate, oltre a quello che si pensa possa essere utile (ad esempio io elimino i backup, e forzo il ritorno a capo dell'ultima riga). Alcune cose val la pena farle globalmente (quindi in /etc o quel che è nel vostro caso).

Una cosa che permette di fare il file di configurazione è abilitare opzioni differenti a seconda del tipo di file editato (in genere basandosi sull'estensione del file). È possibile quindi avere opzioni differenti attive quando si edita un programma, una pagina HTML o del testo comune.

joe ovviamente non è l'unico editor di testi, ce ne sono tanti per tutti i gusti. Di sicuro quello che non potete dire è che sotto Linux è difficile scrivere testi... :-)

di Michele Dalla Silvestra


[precedente] Colori in bash - Copertina - CGI-SQL [successivo]