Come nuovi utenti, vorrete probabilmente lanciare Emacs giusto per fare un giro al suo interno e provarlo. Una volta dentro Emacs se voleste uscire, tuttavia, potreste non essere in grado di capire che cosa fare. Quindi se non avete mai usato Emacs prima, dategli un'occhiata ora. Al prompt della vostra shell, digitate emacs
e premete invio. Emacs dovrebbe avviarsi. Se non lo fa, potrebbe non essere installato o non essere nel vostro path.
Una volta che avete visto Emacs, avete bisogno di sapere come uscire. I tasti chiave per lasciare Emacs sono C-x C-c
. La notazione C-x
significa: tenere premuto il tasto Ctrl
e premere il tasto x
. In questo caso, dovrete poi ancora tenere premuto il tasto Ctrl
e premere il tasto c
per raggiungere lo scopo.
I tasti chiave usati in Emacs vi possono sembrare insoliti, strani
e forse perfino scomodi all'inizio, specialmente se siete un utente di vi
. Al contrario di vi
, Emacs non ha modalità separate per editare il testo e inviare comandi.
Per riassumere: emacs
avvierà Emacs. C-x C-c
farà uscire da Emacs.
Quando Emacs si sarà avviato riempirà interamente una finestra di X (o lo schermo se lo state lanciando da una console invece che nel sistema X-Window). Vedrete dei menù in alto, del testo nella parte principale dello schermo e un paio di linee in fondo.
Sarà simile a questo disegno in ASCII:
+----------------------------------------------------------------------+ |Buffers Files Tools Edit Search Mule Help | | | |Welcome to GNU Emacs, one component of a Linux-based GNU system. | | | | | | | | ... | | | |---1:---F1 *scratch* (Lisp Interaction)--L1--All-------------| |For information about the GNU Project and its goals, type C-h C-p. | +----------------------------------------------------------------------+
NOTA: Emacs normalmente riempie l'intera finestra/schermo. Ho ristretto l'esempio sopra per salvare spazio qui. Vedrete anche un messaggio di benvenuto in Emacs, quando lo avviate per la prima volta. L'ho omesso in questo esempio e sostituito con ``...
''. Il messaggio di benvenuto semplicemente identifica l'esatta versione di Emacs che state usando e vi indirizza all'aiuto in linea e cose del genere.
La linea più in alto nell'interfaccia Emacs è un menù. Se state usando X, lo riconoscerete come un normale menù a discesa a cui potete accedere usando il mouse. Altrimenti per accedere ai menù avrete bisogno di usare le scorciatoie da tastiera (non trattate qui).
Delle ultime due linee in basso nell'interfaccia Emacs, quella superiore è essenzialmente una barra di stato. Contiene informazioni sul buffer in cui state lavorando, in quale modalità (mode) si trova Emacs e varie altre cose. Per ora, prendete solo atto che la barra è là.
La linea inferiore è chiamata mini-buffer. È separato dal buffer principale dalla barra di stato di cui abbiamo appena parlato. Potete pensare al mini-buffer come la ``riga di comando'' (command-line) di Emacs. È dove appaiono i comandi che date a Emacs ed è dove vengono visualizzati i messaggi di stato in risposta a quello che fate.
Troverete che a quella che ho chiamato barra di stato, nella documentazione allegata a Emacs, si fa normalmente riferimento come linea di modalità (mode line). È dove Emacs mostra informazioni relative alla/alle modalità corrente/i che potreste star usando e altre cose tipo la data e l'ora corrente, il numero di riga, la dimensione del file e quasi tutto quello che potreste voler vedere là.
Questa sezione riguarda gli elementi più basilari della terminologia Emacs che incontrerete quando userete e leggerete di Emacs.
A differenza di alcuni editor, quando aprite un file in Emacs questo non sta ``aperto'' tutto il tempo in cui lavorate con esso. Al contrario, Emacs legge il file in un buffer in memoria. Mentre state editando il buffer e lavorando con i dati, niente è cambiato sul disco. Solo quando di fatto salvate il buffer, allora il file sul disco viene aggiornato. Ci sono vantaggi e svantaggi con questo approccio ma è importante solo che capiate che lavora in questo modo.
Di conseguenza, vedrete il termine ``buffer'' usato nella documentazione Emacs, nelle modalità, nei package e così via. Considerate che buffer significa ``una copia del file che si trova attualmente in memoria''. Oh, è importante notare che un buffer non deve sempre essere riferito ad uno specifico file sul disco. Spesso Emacs creerà dei buffer come risultato dei comandi che lancerete. Questi buffer potranno contenere il risultato dei comandi, una lista di selezioni da cui scegliere e così via.
Nel gergo di Emacs, sentirete o vedrete spesso riferimenti al point. In termini generali il point è il cursore. La reale distinzione fra il point e il cursore probabilmente non è importante quando comincerete a usare Emacs. Ma se siete curiosi, pensate al riguardo in questa maniera. Il cursore è la rappresentazione visiva del point. Il cursore è sempre ``su'' una particolare posizione del carattere nel buffer corrente. Il point, invece, vive nello spazio fra i caratteri che si trovano nel buffer. Quindi potreste dire che se il cursore si trova sulla lettera `h' nella parola ``the'' allora il point è tra la `t' e la `h'.
Come molti editor moderni, Emacs permette di effettuare operazioni (indentazione, controllo ortografico, riformattazione, taglia, copia, incolla ...) su una porzione del buffer corrente. Potete evidenziare (o ``marcare'') un blocco di testo usando la tastiera o il mouse e poi eseguire operazioni solo sul blocco selezionato di testo. In Emacs, quel blocco di testo è chiamato una region (regione).
Okay, questo sarà un po' confuso per chi non abbia usato prima una interfaccia grafica (GUI). Ricordate che Emacs fu sviluppato molto prima che le interfacce GUI e i gestori di finestre (window manager) diventassero popolari.
Una finestra in Emacs è un area dello schermo nel quale è visualizzato un buffer. Quando Emacs viene avviato per la prima volta, avete una finestra sul vostro schermo. Alcune funzioni di Emacs (tipo l'help e la documentazione) spesso aprono (temporaneamente) una finestra aggiuntiva nella vostra schermata di Emacs.
Le finestre di Emacs non hanno niente a che fare con le finestre X nel senso delle GUI. Potete aprire finestre X addizionali per mostrare i buffer di Emacs, magari per confrontare due file fianco a fianco. Queste nuove finestre X sono chiamate frame (riquadri) in gergo Emacs. Continuate a leggere.
In Emacs, un frame è una finestra X separata nel quale viene mostrato un buffer di Emacs. Ma entrambe fanno parte della stessa sessione di Emacs. Il comportamento è qualcosa di simile (ma non troppo) a quello che succede se premete Alt+N in Netscape Navigator.
Questa sezione copre l'uso basilare della tastiera per Emacs. Come con ogni editor potente, tutto quello che potete fare con Emacs è giusto qualche tasto chiave più avanti.
Se siete un utente vi
, le nozioni sull'uso dei tasti k, j, l, h
per spostarsi su alla riga superiore, giù di una riga, avanti di un carattere e indietro di un carattere, probabilmente ora tornano utili. In realtà, vi ci potrebbero esser volute poche ore oppure settimane di pratica, prima di poter navigare confortevolmente in un file usando le varie combinazioni di tasti disponibili in vi
.
Emacs non è diverso. Ci sono tasti e comandi diversi da imparare. Come con vi
, avete solo bisogno di padroneggiare le cose basilari per ritrovarvi con molto lavoro fatto. Dopo, con il passare del tempo, potrete lentamente espandere la vostra conoscenza e trovare strade più veloci per fare le cose.
Come imparerete presto, Emacs fa un uso intensivo di combinazioni
di più tasti. Dato che non è un editor modale come
vi
, non dovete preoccuparvi di essere in ``modalità
comandi'' o ``modalità inserimento'' prima di provare a muovere
il cursore o eseguire un comando. Invece dovete solo premere la
giusta combinazione di tasti e (normalmente) Emacs farà quello
che gli è stato detto.
I tasti di cui Emacs fa maggiore uso sono normalmente abbreviati nella documentazione come C
(per Control o Ctrl) e M
per (Meta). Mentre le più moderne tastiere di PC hanno uno o più tasti etichettati come Ctrl
, poche ne hanno uno etichettato come Meta
. Potrete mentalmente sostituire sia Esc
che Alt
al tasto Meta. Nella maggior parte delle configurazioni standard, entrambi, Esc e Alt, faranno essenzialmente le stesse cose.
Quindi quando vedete un riferimento, in qualsiasi documentazione relativa a Emacs, a C-x f
, significa ``premere control-x e poi f''. E se vedrete un riferimento a qualcosa del tipo M-x shell
significa ``premere alt-x e digitare la parola shell''.
Un comando veramente utile per chi inizia è M-x apropos
o C-h a
. apropos cercherà, nella documentazione in linea di Emacs, tutte le funzioni e cercherà l'espressione regolare che digiterete. Questo, ad esempio, è un ottimo modo per scoprire tutti i comandi relativi a un frame. Semplicemente digitate
C-h a
e poi frame
.
Ora che sapete che cosa significano tutte quelle simpatiche abbreviazioni, ecco qui una lista delle combinazioni di tasti più comuni per muoversi in un buffer:
Tasti Azione ----------------------------------- C-p Su di una riga C-n Giù di una riga C-f Avanti di un carattere C-b Indietro di un carattere C-a Inizio di una riga C-e Fine di una riga C-v Giù di una pagina M-v Su di una pagina M-f Avanti di una parola M-b Indietro di una parola M-< Inizio del buffer M-> Fine del buffer C-g Chiude l'operazione corrente -----------------------------------
E, come potevate aspettarvi, i tasti cursore (o tasti freccia) funzionano normalmente come vi aspettavate. Il vostro tasto Backspace
potrebbe non funzionare invece. Ma questa è un'altra storia. :-(
Okay, ora che sapete come spostarvi in un buffer, che cosa ne pensate di aprire e salvare file? Ricercare? Ecco alcuni comandi base.
Prima di saltare dritto su questi comandi, ho bisogno di puntualizzare brevemente come questi lavorano.
Tutti i ``tasti di comando'' in Emacs (quelli che sono M-x
qualcosa
o C-qualcosa
) sono di fatto proprio delle scorciatoie a delle funzioni che fanno parte di Emacs. Potete chiamare una qualsiasi di queste funzioni digitando M-x funzione-nome
e premendo Enter
. Potete anche usare le scorciatoia da tastiera per questa funzione (se ne ha una).
Per esempio, la funzione di Emacs che salva un buffer su disco è chiamata save-buffer
. Per default è anche vincolata a C-x C-s
. Quindi, potete usare sia la scorciatoia da tastiera per salvare il buffer corrente, sia digitare M-x save-buffer
per raggiungere esattamente lo stesso risultato.
Tutte le funzioni più comuni hanno delle scorciatoie da tastiera per default. Alcune di esse sono elencate qui sotto.
Tasti Funzione Descrizione ------------------------------------------------------------------- C-x C-s save-buffer Salva il buffer corrente su disco C-x u undo Annulla l'ultima operazione C-c C-f find-file Apre un file dal disco C-s isearch-forward Cerca avanti una stringa C-r isearch-backward Cerca indietro una stringa replace-string Cerca e rimpiazza una stringa replace-regexp Cerca e rimpiazza usando regexp C-h t help-with-tutorial Usa la guida interattiva C-h f describe-function Mostra aiuto per una funzione C-h v describe-variable Mostra aiuto per una variabile C-h x describe-key Mostra che cosa fa una sequenza di tasti C-h a apropos Cerca aiuto per una stringa/regexp C-h F view-emacs-FAQ Mostra le FAQ di Emacs C-h i info Legge la documentazione di Emacs C-x r m bookmark-set Imposta un segnalibro. Utile nelle ricerche C-x r b bookmark-jump Salta ad un segnalibro. -------------------------------------------------------------------
Quando proverete molte di queste funzioni, noterete che molte vi chiedono di inserire qualcosa al prompt. Lo faranno sempre nel mini-buffer. Questo è simile all'uso dei comandi :
in vi
o la maggior parte dei comandi che usereste nella vostra shell Unix favorita.
Emacs ha letteralmente centinaia di funzioni incorporate disponibili. La lista riportata sopra è un campione minimo che rappresenta quelle che io uso regolarmente. Vedere l'aiuto in linea per un più completo elenco delle funzioni disponibili ed una documentazione più completa su quelle che ho menzionato sopra.
Come molte shell Unix popolari (bash, csh, tcsh, ...) Emacs offre il completamento del comando tramite il tasto Tab
. Infatti il completamento del comando in bash venne preso a modello proprio da Emacs, quindi se usate questa caratteristica in bash vi troverete subito bene.
Come esempio, provate M-x search
e poi premete Tab
. Emacs aggiungerà un trattino per indicare che ci sono molti possibili completamenti ma questi hanno tutti un trattino come carattere successivo. Premete Tab
una volta ancora e Emacs mostrerà una lista delle possibili combinazioni da cui voi potrete scegliere. Notate che farà questo in una nuova finestra. Temporaneamente dividerà il vostro schermo in due finestre: una contenente il buffer che state editando e l'altra che contiene la lista dei possibili completamenti per ``search-''. Potete premere C-g
per uscire fuori dal processo di selezione e chiudere la nuova finestra.
Emacs ha un tutorial in linea che vi accompagna attraverso le caratteristiche di base dell'editing e delle funzioni che ognuno dovrebbe conoscere. Spiega anche come usare le altre funzionalità di aiuto in Emacs.
Io vi raccomando caldamente di spendere un po' di tempo nel
consultare a fondo il tutorial se pensate di sforzarvi seriamente per imparare Emacs. Come mostrato nella tabella sopra riportata, potete entrare nel tutorial tramite C-h
t
. Il tutorial è una auto-guida e aiuta le persone che hanno appena iniziato con Emacs.
Se state facendo girare Emacs in X, vedrete che il menù più a destra nella barra dei menù è etichettato con Help. Come esplorerete il menù di Help noterete che certe voci hanno delle scorciatoie da tastiera e che queste sono elencate a destra nel menù.
Infine, per vedere l'intero volume della documentazione disponibile per Emacs, dovreste provare M-x info
o C-h i
che lancia Info, il browser per la documentazione di Emacs.