1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228 |
- Esercitazione di Emacs. Condizioni d'uso alla fine del file.
- I comandi di Emacs comportano generalmente l'uso del tasto CONTROL (a
- volte indicato con CTRL o CTL) o del tasto META (a volte indicato con
- EDIT o ALT). Piuttosto che indicarli per esteso ogni volta, useremo
- le seguenti abbreviazioni:
- C-<car> significa che bisogna tenere abbassato il tasto CONTROL
- mentre si preme il carattere <car>. Quindi C-f significa:
- tieni premuto CONTROL e batti f.
- M-<car> significa che bisogna tenere abbassato il tasto META o EDIT
- o ALT mentre si preme il carattere <car>. Se non ci sono
- tasti META, EDIT o ALT, al loro posto si può premere e poi
- rilasciare il tasto ESC e quindi premere <car>. Useremo
- <ESC> per indicare il tasto ESC.
- Nota importante: per chiudere una sessione di lavoro di Emacs usa C-x
- C-c (due caratteri). Per annullare un comando inserito parzialmente
- usa C-g. I caratteri “>>” posti al margine sinistro indicano le
- direttive per provare a usare un comando. Per esempio:
- <<Blank lines inserted here by startup of help-with-tutorial>>
- [Spaziatura inserita a scopo didattico. Il testo continua sotto]
- >> Adesso premi C-v (vedi schermata successiva) per spostarti alla
- prossima schermata (vai avanti, tieni premuto il tasto
- CONTROL mentre premi v). D'ora in poi dovrai fare così ogni
- volta che finisci di leggere la schermata.
- Si noti che le ultime due righe di ogni schermata appaiono in cima
- alla schermata successiva, favorendo così la continuità di lettura.
- La prima cosa che bisogna imparare è come raggiungere un certo punto
- del testo. Sai già come andare avanti di una schermata, con C-v. Per
- andare indietro di una schermata, premi M-v (tieni premuto il tasto
- META e poi premi v, oppure usa <ESC>v se non c'è un tasto META, EDIT o
- ALT).
- >> Ora prova: premi M-v e quindi C-v alcune volte.
- * SOMMARIO
- ----------
- I comandi seguenti sono utili per visualizzare le schermate:
- C-v Vai avanti di una schermata
- M-v Vai indietro di una schermata
- C-l Cancella lo schermo e riscrivi tutto il testo,
- muovendo il testo che si trova vicino al cursore al
- centro dello schermo. (Il tasto è CONTROL-L,
- non CONTROL-1.)
- >> Trova il cursore, osserva quale parte di testo gli è vicina. Premi
- C-l. Trova di nuovo il cursore e osserva che si trova sullo stesso
- punto del testo, ma ora è al centro della schermata. Se premi C-l
- di nuovo, il testo verrà posizionato in cima allo schermo.
- Premendo nuovamente C-l verrà posizionato in fondo.
- Puoi anche usare i tasti PagSu (Pag ↑) o PagGiù (Pag ↓) per passare
- alle schermate precedenti o successive, se sono presenti sul tuo
- terminale, ma C-v e M-v consentono una editazione più efficiente.
- * CONTROLLO DI BASE DEL CURSORE
- -------------------------------
- Spostarsi da una schermata all'altra è utile, ma come ci si può
- spostare fino ad un certo preciso punto del testo?
- Ci sono diversi modi per farlo. Puoi usare i tasti con le frecce, ma
- è più efficiente tenere le mani nella posizione standard e utilizzare
- i comandi C-p, C-b, C-f e C-n. Questi caratteri sono equivalenti ai
- quattro tasti con le frecce, in questo modo:
- Riga precedente, C-p
- :
- :
- Indietro, C-b .... Posizione attuale cursore .... Avanti, C-f
- :
- :
- Riga successiva, C-n
- >> Sposta il cursore sulla riga centrale del diagramma qui sopra
- usando C-n o C-p. Poi usa C-l per portare il diagramma al centro
- dello schermo.
- Le quattro lettere dei comandi sono mnemoniche in inglese: P per
- precedente (previous), N per successivo (next), B per indietro
- (backward) e F per avanti (forward). Userai questi comandi elementari
- in continuazione.
- >> Usa alcuni C-n per portare il cursore su questa riga.
- >> Muovi il cursore sulla riga con C-f e poi in alto con C-p. Osserva
- l'effetto di un C-p quando il cursore si trova a metà della riga.
- Ogni riga di testo termina con un carattere Newline (“a capo”), che
- serve a separarla dalla successiva. (Di solito l'ultima riga di un
- file termina con un carattere Newline, ma Emacs non lo richiede.)
- >> Prova a usare C-b all'inizio di una riga. Sposterà il cursore alla
- fine della precedente. Questo avviene perché il cursore ha
- superato all'indietro il carattere Newline.
- C-f sposta il cursore avanti attraverso il carattere Newline proprio
- come C-b.
- >> Premi alcune volte C-b per vedere dove si trova il cursore. Poi
- usa C-f per tornare alla fine della riga. Usa quindi C-f per
- andare alla riga successiva.
- Quando ci si sposta oltre l'inizio o la fine della schermata, il testo
- che si trova oltre si sposta sullo schermo, ottenendo uno
- “scorrimento” (scrolling). Questo consente a Emacs di spostare il
- cursore sulla parte di testo desiderata mantenendolo all'interno della
- schermata.
- >> Prova a muovere il cursore al di là della fine dello schermo con
- C-n e osserva cosa succede.
- Se lo spostamento di un solo carattere alla volta è troppo lento
- allora ci si può muovere di un'intera parola alla volta. M-f (META-f)
- e M-b spostano il cursore rispettivamente in avanti e indietro di una
- parola.
- >> Prova alcune volte M-f e M-b.
- Quando il cursore è a metà di una parola, M-f lo sposta alla fine
- della stessa. Quando è sullo spazio bianco tra due parole, M-f lo
- sposta alla fine della parola successiva. M-b funziona in modo simile
- ma in direzione opposta.
- >> Ora prova M-f e M-b alcune volte, alternandoli con C-f e C-b così
- da poter osservare l'azione di M-f e M-b da vari punti tra le
- parole e sulle stesse.
- Osserva il parallelo tra C-f e C-b da una parte e M-f e M-b
- dall'altra. Molto spesso i caratteri con Meta sono usati per
- operazioni relative alle unità definite dal linguaggio (parole, frasi,
- paragrafi), mentre i caratteri con Control operano su unità base
- indipendenti da ciò che si scrive (caratteri, righe, ecc.).
- Questo parallelo funziona anche tra righe e frasi: C-a e C-e spostano
- all'inizio o alla fine di una riga, mentre M-a e M-e all'inizio o alla
- fine di una frase.
- >> Prova due C-a e poi due C-e. Prova due M-a e poi due M-e.
- Osserva come un C-a ripetuto non abbia effetto, mentre M-a ripetuti
- continuano a spostare il cursore all'inizio di frasi precedenti.
- Sebbene questi due ultimi comandi non siano perfettamente analoghi,
- riteniamo che il loro comportamento sia ragionevole.
- La posizione del cursore nel testo è anche chiamata “punto”. Per
- meglio dire, il cursore mostra sullo schermo dove si trova, al
- momento, il punto nel testo.
- Ecco un sommario delle più semplici operazioni di spostamento del
- cursore, compresi i comandi di spostamento di parola in parola o di
- frase in frase:
- C-f Sposta avanti di un carattere
- C-b Sposta indietro di un carattere
- M-f Sposta avanti di una parola
- M-b Sposta indietro di una parola
- C-n Sposta alla riga successiva
- C-p Sposta alla riga precedente
- C-a Sposta all'inizio della riga
- C-e Sposta alla fine della riga
- M-a Sposta all'inizio della frase
- M-e Sposta alla fine della frase
- >> Prova tutti questi comandi alcune volte per fare pratica.
- Questi sono i comandi più usati.
- Altri due importanti comandi di spostamento del cursore sono M-< (META
- Minore-di), che sposta all'inizio dell'intero testo, e M-> (META
- Maggiore-di), che sposta alla fine dell'intero testo.
- Su molte tastiere il carattere “<” trova sopra la virgola, quindi è
- necessario tenere premuto il tasto shift (⇑) per ottenerlo. Su questi
- terminali dovrai usare il tasto shift per ottenere M-<, perché
- altrimenti digiteresti M-virgola.
- >> Prova M-< adesso per andare all'inizio del tutorial. Poi usa C-v
- ripetutamente per tornare a questo punto.
- >> Prova M-> adesso, per andare alla fine del tutorial. Quindi usa
- M-v ripetutamente per tornare a questo punto.
- Il cursore si può anche spostare con i tasti freccia, se il terminale
- li ha. Noi raccomandiamo di imparare C-b, C-f, C-n e C-p per tre
- motivi: primo, funzionano su tutti i terminali; secondo, una volta
- acquisita pratica nell'uso di Emacs, ci si accorgerà che raggiungere
- questi caratteri di controllo è più rapido che usare i tasti freccia
- (perché non bisogna spostare le mani dalla posizione di scrittura
- sulla tastiera); terzo, una volta acquisita l'abitudine ad usare
- questi comandi con il carattere Control, si può allo stesso modo
- imparare ad usare altri comandi avanzati di spostamento del cursore.
- Molti comandi di Emacs accettano un argomento numerico che spesso
- serve a conteggiare per quante volte vanno ripetuti. Il modo in cui
- si può fornire ad un comando il numero di ripetizioni è il seguente:
- si usa C-u e quindi si indicano le cifre prima di impartire il comando
- stesso. Se esiste un tasto META (o EDIT o ALT) c'è un modo
- alternativo: si battono le cifre tenendo premuto il tasto META. Noi
- consigliamo di imparare il metodo con C-u perché funziona su tutti i
- terminali. L'argomento numerico è anche chiamato “argomento
- prefisso”, perché viene indicato prima del comando a cui si riferisce.
- Per esempio, C-u 8 C-f sposta il cursore in avanti di otto caratteri.
- >> Prova ad usare C-n, o C-p, con un argomento numerico per spostare
- il cursore su una riga vicina a questa con un solo comando.
- La maggior parte dei comandi usa l'argomento numerico come numero
- delle ripetizioni da effettuare, tuttavia alcuni lo usano in modo
- diverso. Altri comandi (ma nessuno di quelli imparati fino ad ora) lo
- usano come indicatore di alternativa: la presenza di un argomento
- prefisso, indipendentemente dal suo valore, modifica il comportamento
- del comando.
- C-v e M-v sono un'altra eccezione. Quando gli si fornisce un
- argomento spostano l'area di testo visualizzato in alto o in basso del
- numero di righe indicato invece che del numero di schermate. Per
- esempio, C-u 8 C-v fa scorrere lo schermo di 8 righe.
- >> Ora prova con C-u 8 C-v.
- La schermata si sposta di 8 righe verso l'alto. Se vuoi tornare di
- nuovo in basso puoi usare un argomento numerico con M-v.
- Quando si usa un sistema a finestre, come X o MS-Windows, ci dovrebbe
- essere un'area rettangolare allungata chiamata barra di scorrimento a
- un lato della finestra di Emacs. Si può far scorrere il testo con un
- click del mouse nella barra di scorrimento.
- Se il tuo mouse dispone di una rotellina, puoi usare anche quella per
- far scorrere il testo.
- * QUANDO EMACS SI BLOCCA
- ------------------------
- Se Emacs smette di rispondere ai comandi può essere fermato in modo
- sicuro premendo C-g. Si può usare C-g per fermare un comando che sta
- impiegando troppo tempo per l'esecuzione.
- Si può anche usare C-g per annullare un argomento numerico o
- l'esecuzione di un comando che non si vuole più portare a termine.
- >> Batti C-u 100 per indicare un argomento numerico di 100, quindi
- premi C-g. Ora premi C-f. Il cursore si sposta in avanti di un
- solo carattere perché hai annullato l'argomento numerico con C-g.
- Se hai premuto <ESC> per errore puoi annullare con C-g.
- * COMANDI DISATTIVATI
- ---------------------
- Alcuni comandi di Emacs sono “disattivati”, così da evitare che utenti
- principianti possano usarli per errore.
- Se si inserisce uno dei comandi disattivati Emacs mostra un messaggio
- in cui dice quale sia il comando e chiede se davvero si vuole
- procedere con l'esecuzione.
- Se effettivamente si vuole provare il comando bisogna premere la barra
- spaziatrice come risposta a questa domanda. Normalmente, se non si
- vuole eseguire il comando disattivato, bisogna rispondere alla domanda
- con "n".
- >> Prova C-x C-l (che è un comando disattivato), poi rispondi con “n”
- alla domanda.
- * FINESTRE
- ----------
- Emacs può avere diverse “finestre”, ognuna contenente il suo testo.
- Spiegheremo dopo come usare finestre multiple. Adesso ci occupiamo di
- come eliminare le finestre in più e tornare alla scrittura con una
- sola finestra. È semplice:
- C-x 1 Una finestra (cioè, elimina tutte le altre finestre).
- È un CONTROL-x seguito dalla cifra 1. C-x 1 espande la finestra che
- contiene il cursore su tutto lo schermo ed elimina tutte le altre
- finestre.
- >> Sposta il cursore su questa riga e poi batti C-u 0 C-l.
- >> Batti C-h k C-f. Osserva come questa finestra viene rimpicciolita
- mentre ne appare un'altra che contiene la spiegazione del comando
- CONTROL-f.
- >> Batti C-x 1 e guarda come la finestra contenente la spiegazione
- scompare.
- C'è un'ampia serie di comandi che iniziano con CONTROL-x; molti di
- essi riguardano finestre, file, buffer e cose simili. Questi comandi
- possono essere lunghi due, tre o quattro caratteri.
- * INSERIMENTO E CANCELLAZIONE
- -----------------------------
- Per inserire del testo basta premere i tasti corrispondenti alle varie
- lettere che lo compongono. I caratteri visibili, come A, 7, *, ecc.,
- sono considerati testo e inseriti immediatamente. Per inserire un
- Newline usa il tasto <Invio> (a volte contrassegnato col simbolo ↲).
- Per cancellare il carattere immediatamente prima del cursore, digita
- <DEL>: solitamente è un tasto più largo del normale etichettato con
- “Backspace” o con una freccia che punta a sinistra, sopra il tasto
- <Invio>; generalmente elimina l'ultimo carattere inserito
- Può esserci un altro tasto etichettato “Canc”, ma non è quello a cui
- ci riferiamo con <DEL>.
- >> Prova questo adesso: batti alcuni caratteri e poi cancellali con
- <DEL> ripetuto alcune volte. Non preoccuparti delle modifiche
- fatte a questo file: l'esercitazione principale rimarrà intatta,
- quella che stai usando ne è una tua copia personale.
- Quando una riga di testo diventa troppo lunga per essere visualizzata
- su una riga di schermo viene spezzata e “continua” su una seconda riga
- dello schermo. Se stai usando un sistema a finestre grafico,
- compaiono delle piccole frecce ricurve ai lati del testo (nelle
- “frange” sinistra e destra), indicando che la riga continua. Su un
- terminale testuale, la continuazione viene indicata da una barra
- rovescia (“\”) nell'ultima colonna a destra.
- >> Inserisci del testo fino a raggiungere il margine destro e poi
- continua. Vedrai apparire la prosecuzione della riga.
- >> Usa <DEL> per cancellare il testo fino a quando la riga di testo è
- di nuovo tutta contenuta in una sola riga dello schermo. La
- prosecuzione alla riga successiva scompare.
- Si può cancellare un carattere Newline proprio come ogni altro.
- Quando si cancella il carattere Newline che separa due righe queste
- vengono unite in una riga sola. Se la riga risultante è troppo lunga
- per essere contenuta dallo schermo allora sarà continuata nella riga
- successiva.
- >> Muovi il cursore all'inizio di una riga e poi premi <DEL>. Questo
- unisce la riga alla precedente.
- >> Premi <Invio> per inserire di nuovo il carattere Newline che hai
- cancellato.
- Il tasto <Invio> è speciale in quanto può implicare più del semplice
- inserimento di un carattere Newline. A seconda del testo circostante,
- può inserire degli spazi dopo l'“a capo” in modo tale che inserendo
- ulteriori caratteri nella nuova riga, il testo rimanga allineato con
- quello nelle righe precedenti. Questo comportamento (cioè quando
- premendo un tasto vengono eseguite ulteriori azioni rispetto al
- semplice inserimento del carattere stesso) viene chiamato “elettrico”.
- >> Questo è un esempio del comportamento “elettrico” di <Invio>
- Inserisci un <Invio> alla fine di questa riga.
- Dovresti vedere che dopo essere andato a capo, Emacs ha inserito degli
- spazi per allineare il cursore sotto la “I” di “Inserisci”.
- Ricorda che la maggior parte dei comandi di Emacs può ricevere un
- argomento numerico, compresi i caratteri per inserire il testo.
- Quando si ripete un carattere di testo questo viene inserito un certo
- numero di volte.
- >> Prova adesso: inserisci C-u 8 * per ottenere ********.
- Fino ad ora si è visto il modo più semplice di inserire testo in Emacs
- e di correggere gli errori. In modo analogo è possibile cancellare
- parole o righe di testo. Ecco un sommario delle operazioni di
- cancellazione:
- <DEL> cancella il carattere posto subito prima del cursore
- C-d cancella il carattere posto subito dopo il cursore
- M-<DEL> elimina la parola posta prima del cursore
- M-d elimina la parola posta subito dopo il cursore
- C-k cancella dalla posizione del cursore fino a fine riga
- M-k cancella fino alla fine della frase corrente.
- Si osservi che <DEL> e C-d da una parte e M-<DEL> e M-d dall'altra
- estendono il parallelo tra C-f e M-f (a dire il vero, <DEL> non è un
- vero e proprio carattere di controllo, ma non preoccupiamoci di
- questo). C-k è simile a C-e e M-k è simile a M-e, nel senso che i
- primi operano su righe e i secondi su frasi.
- Si può anche cancellare una qualsiasi parte del buffer in modo
- uniforme: si sposta il cursore alla fine di quella parte e poi si usa
- C-<SPC> (<SPC> è la barra spaziatrice), poi si muove il cursore
- all'altro estremo della zona. Una volta fatto, Emacs evidenzia il
- testo compreso tra il cursore e la posizione dove hai digitato
- C-<SPC>. A questo punto premendo C-w il testo evidenziato viene
- eliminato.
- >> Sposta il cursore sulla “S” all'inizio del paragrafo precedente.
- >> Premi C-<SPC>. Emacs dovrebbe mostrarti il messaggio "Mark set"
- nella parte bassa dello schermo.
- >> Muovi il cursore sulla “o” di “sposta”, nella seconda riga del
- paragrafo.
- >> Premi C-w. Questo eliminerà il testo a partire dalla "S" e fino
- alla lettera che precede “o”.
- La differenza tra “eliminazione” (“killing”) e “cancellazione”
- (“deleting”) è che il testo “eliminato” può essere inserito di nuovo
- (in qualsiasi posizione), mentre quello che viene cancellato non può
- essere reinserito nello stesso modo (si può comunque annullare una
- cancellazione, vedi sotto). L'operazione di reinserimento del testo
- cancellato si chiama “yanking”. In genere i comandi che possono
- rimuovere molto testo lo eliminano (così da poterlo eventualmente
- reinserire), mentre i comandi che rimuovono un solo carattere o solo
- righe vuote e spazi effettuano una cancellazione (quindi non è
- possibile recuperare quel testo). <DEL> e C-d eseguono una
- cancellazione nel caso più semplice, senza un argomento. Con un
- argomento invece eliminano il testo.
- >> Muovi il cursore all'inizio di una riga non vuota, poi usa C-k per
- eliminare il testo di quella riga.
- >> Premi C-k una seconda volta. Ti accorgerai di come viene
- eliminato il carattere Newline posto dopo la riga stessa.
- Si noti che un singolo C-k elimina il contenuto di una sola riga, un
- secondo C-k elimina la riga stessa, facendo spostare in alto tutte le
- righe successive. C-k usa un eventuale argomento numerico in modo
- speciale: elimina quel numero di righe ED il loro contenuto. Non è
- una semplice ripetizione del comando. C-u 2 C-k elimina due righe e i
- rispettivi caratteri Newline; battere due volte C-k sarebbe diverso.
- Puoi reinserire il testo eliminato sia nella stessa posizione dove è
- stato rimosso, in un altro punto del testo che stai modificando,
- oppure in un file diverso. Puoi reinserire lo stesso testo diverse
- volte, facendone copie multiple. Altri editor usano termini diversi
- per queste operazioni, tipicamente “taglia” e “incolla” (consulta il
- Glossario nel manuale di Emacs).
- Il comando per fare "yanking" è C-y. Inserisce il testo eliminato per
- ultimo nel punto in cui si trova attualmente il cursore.
- >> Prova: premi C-y per recuperare il testo di prima.
- Se si eseguono operazioni di eliminazione consecutive il testo
- eliminato è considerato un tutt'uno e quindi un solo C-y inserirà
- quelle righe tutte assieme.
- >> Prova adesso, premi C-k alcune volte.
- Adesso, per recuperare il testo eliminato:
- >> Premi C-y. Sposta il cursore alcune righe più in basso e premi di
- nuovo C-y. Hai appena visto come duplicare una parte di testo.
- Cosa succede se c'è del testo da recuperare tra quello eliminato ma è
- stato eliminato altro testo dopo di esso? C-y restituirebbe il testo
- dell'ultima eliminazione, tuttavia il testo eliminato in precedenza
- non è perso. Si recupera con il comando M-y. Dopo aver usato C-y per
- recuperare il testo più recentemente eliminato, un M-y sostituisce
- quel testo con quello dell'eliminazione precedente. Premendo M-y in
- successione si recupera il testo delle eliminazioni via via
- precedenti. Quando è stato trovato il testo cercato non si deve fare
- altro per tenerlo. Si può andare avanti con la scrittura lasciando il
- testo recuperato dove si trova.
- Quando si usa M-y un certo numero di volte si arriva di nuovo al testo
- di partenza (quello eliminato per ultimo).
- >> Elimina una riga, sposta il cursore, elimina un'altra riga.
- Premi C-y per recuperare la seconda riga eliminata.
- Premi M-y e verrà sostituita dalla riga eliminata prima.
- Usa di nuovo M-y e osserva cosa succede. Continua fino a quando
- non ritrovi la riga che avevi eliminato per seconda. Se vuoi puoi
- usare un argomento numerico sia positivo che negativo per M-y.
- * ANNULLAMENTO
- --------------
- Se si modifica il testo e subito dopo ci si accorge di aver fatto un
- errore si può annullare la modifica con il comando di annullamento,
- C-/.
- Normalmente C-/ annulla le modifiche fatte da un solo comando; se si
- usa C-/ di seguito ogni ripetizione annulla un ulteriore comando.
- Ci sono due eccezioni: i comandi che non modificano il testo non
- contano, tra questi i comandi di spostamento del cursore e quelli di
- scorrimento del testo; i caratteri inseriti nel testo sono gestiti in
- gruppi, fino a 20 elementi (al fine di ridurre il numero di C-/ da
- usare per annullare l'inserimento del testo).
- >> Elimina questa riga con C-k poi usa C-/ e dovrebbe ricomparire.
- C-_ è un comando di annullamento alternativo, funziona esattamente
- come C-/. Su alcuni terminali, la sequenza C-/ invia effettivamente
- C-_ a Emacs. Alternativamente, anche C-x u ha la stessa funzione di
- C-/, ma è leggermente più scomoda da inserire.
- Un argomento numerico per C-/, C-_ o C-x u agisce come numero delle
- ripetizioni da effettuare.
- Si può annullare la cancellazione del testo proprio come se ne annulla
- l'eliminazione. La distinzione tra l'eliminazione e la cancellazione
- riguarda solo la possibilità di recuperare il testo con C-y; non c'è
- differenza rispetto all'operazione di annullamento.
- * FILE
- ------
- Per conservare in modo permanente il testo inserito bisogna
- conservarlo in un file, altrimenti sarà perso al termine
- dell'esecuzione di Emacs. Per inserire il testo in un file bisogna
- aprire quel file prima di comporre il testo. (Questa operazione si
- chiama anche “visita” del file.)
- Aprire un file implica vederne il contenuto all'interno di Emacs. Per
- molti versi è come se si operasse sul file stesso, tuttavia le
- modifiche apportate al contenuto non sono definitive fino a quando non
- si “salva” il file. Tutto questo avviene in modo tale da evitare di
- lasciare un file su disco quando è modificato solo in parte. Persino
- quando si salva il file Emacs conserva il contenuto originale dello
- stesso in un file con un altro nome, nel caso in cui si capisca più
- tardi che le modifiche sono state un errore.
- Osservando la parte bassa dello schermo puoi notare una riga che
- inizia qualcosa del tipo “--:-- TUTORIAL.it”. Questa parte dello
- schermo normalmente mostra il nome del file che si sta “visitando”.
- In questo momento stai osservando la tua copia personale
- dell'esercitazione di Emacs, chiamata “TUTORIAL.it”. Quando si apre
- un file con Emacs il suo nome apparirà sempre in quel punto preciso.
- Una caratteristica particolare del comando per aprire i file è che
- bisogna fornirgli il nome del file. Diciamo in questo caso che il
- comando “legge un argomento dal terminale” (l'argomento è proprio il
- nome del file). Dopo aver scritto il comando
- C-x C-f Trova un file
- Emacs chiede il nome del file. Il nome che si inserisce compare nella
- riga più in basso sullo schermo. La riga di fondo è chiamata
- “minibuffer” quando viene usato per questo genere di operazioni di
- inserimento. Si possono usare i consueti comandi di Emacs per operare
- sul nome del file.
- Mentre si inserisce il nome del file (oppure ogni altro testo nel
- minibuffer), è possibile annullare l'operazione usando C-g.
- >> Premi C-x C-f, poi premi C-g. Questo annulla il minibuffer e
- interrompe l'esecuzione del comando C-x C-f che stava usando il
- minibuffer. Quindi non sarà aperto alcun file.
- Quando hai finito di indicare il nome del file, premi <Invio> per
- portare a termine il comando. Il minibuffer scompare e il comando C-x
- C-f inizia il suo lavoro e trova il file che è stato scelto.
- Subito dopo, il contenuto del file compare sullo schermo e si può
- modificare a piacere. Quando si desidera rendere permanenti le
- modifiche si usa il comando
- C-x C-s Salva il file
- Questo copia il testo contenuto in Emacs nel file su disco. La prima
- volta che si effettua questa operazione Emacs rinomina il file
- originale in modo da conservarlo. Il nuovo nome è ottenuto
- aggiungendo un carattere "~" alla fine del nome originale. Quando il
- salvataggio termina, Emacs mostra il nome del file scritto.
- >> Premi C-x C-s TUTORIAL<Invio>.
- Questo dovrebbe salvare questa esercitazione in un file chiamato
- “TUTORIAL” e mostrare “Wrote ...TUTORIAL nella parte bassa dello
- schermo.
- Si può aprire un file già esistente per leggerlo o modificarlo. Si
- può anche “visitare” un file che ancora non esiste. Questo è un modo
- per creare un nuovo file con Emacs: si apre il file che sarà
- inizialmente vuoto e quindi si inizia ad inserire il testo. Quando si
- chiederà di salvare il file Emacs lo creerà ed esso conterrà tutto il
- testo che è stato inserito. Da quel punto in poi si potrà pensare di
- operare su un file già esistente.
- * BUFFER
- --------
- Se si apre un secondo file con C-x C-f il primo rimane aperto
- all'interno di Emacs. Si può tornare a visualizzarlo “visitandolo” di
- nuovo con il comando C-x C-f. In questo modo si possono aprire quanti
- file si vogliono all'interno di Emacs.
- Emacs conserva il testo di ogni file all'interno di un oggetto
- chiamato “buffer”. L'apertura di un file crea un nuovo buffer
- all'interno di Emacs. Per guardare una lista dei buffer che esistono
- attualmente nella tua sessione di Emacs si usa
- C-x C-b Elenca buffer
- >> Prova C-x C-b adesso.
- Osserva come ogni buffer abbia un nome e come possa avere anche il
- nome di un file del quale conserva il contenuto. QUALSIASI testo
- mostrato in una finestra di Emacs appartiene a qualche buffer.
- >> Usa C-x 1 per eliminare la lista dei buffer.
- Quando ci sono svariati buffer, solo uno di essi è quello “corrente”
- in un certo istante. Questo buffer è quello che è soggetto alle tue
- modifiche. Se vuoi modificare un altro buffer, devi prima
- “selezionarlo”. Se vuoi passare a un buffer che corrisponde a un
- file, puoi farlo visitando di nuovo quel file usando C-x C-f. Ma c'è
- un modo più semplice: usa il comando C-x b. Questo comando richiede
- il nome del buffer.
- >> Crea un file chiamato “pippo” con C-x C-f pippo<Invio>.
- Torna poi a questa esercitazione con C-x b TUTORIAL<Invio>.
- La maggior parte delle volte, il nome del buffer corrisponde al nome
- del file (senza la parte relativa alla directory). Questo non è
- sempre vero. La lista dei buffer che ottieni con C-x C-b mostra sia
- il nome del buffer che il nome del file associato.
- Alcuni buffer non corrispondono ad alcun file. Per esempio il buffer
- che ha nome “*Buffer List*” non è associato a nessun file. Questo
- buffer TUTORIAL inizialmente non era associato a un file, mentre
- adesso lo è, dal momento che nella sezione precedente hai usato C-x
- C-s per salvarlo in un file.
- Anche il buffer chiamato “*Messages* non è associato ad alcun file.
- Quel buffer contiene tutti i messaggi che sono apparsi nella parte
- bassa dello schermo durante la sessione di Emacs.
- >> Passa al buffer con i messaggi con C-x b *Messages*<Invio>.
- Torna poi a questa esercitazione con C-x b TUTORIAL<Invio>.
- Se si modifica in qualche modo il testo di un file e poi si visita un
- altro file questo non comporta il salvataggio del primo. Le modifiche
- rimangono solo all'interno di Emacs, nel buffer relativo a quel file.
- La creazione o la modifica del buffer del secondo file non ha alcun
- effetto sul buffer del primo. Questo è comodo, ma è conveniente avere
- la possibilità di salvare il buffer del primo file: sarebbe fastidioso
- dover prima passare a quel buffer per salvarlo con C-x C-s. Così c'è
- il comando
- C-x s Salva alcuni buffer
- C-x s chiede conferma del salvataggio per ogni buffer che contiene
- testo modificato e non ancora salvato. Chiede, per ognuno di quei
- buffer, se si voglia salvarne il contenuto nel file corrispondente.
- >> Inserisci una riga di testo e poi premi C-x s.
- Dovrebbe chiederti se vuoi salvare il file chiamato “...TUTORIAL”.
- Rispondi di sì battendo “y”.
- * ESTENDERE L'INSIEME DEI COMANDI
- ---------------------------------
- Emacs ha molti comandi in più rispetto a quelli che potrebbero trovare
- posto su tutti i caratteri CONTROL e META. Emacs risolve questo
- problema usando il comando X (eXtend). Ci sono due varianti:
- C-x Comando esteso carattere. Seguito da un carattere.
- M-x Comando esteso con nome. Seguito da un nome di comando.
- Si tratta di comandi utili ma meno utilizzati di quelli che già
- osservati. Se ne sono visti alcuni: il comando C-x C-f per visitare
- un file e C-x C-s per salvarlo, ad esempio. Un altro esempio è quello
- che serve per chiudere la sessione Emacs, cioè il comando C-x C-c.
- (Non preoccuparti di perdere le modifiche che hai apportato: C-x C-c
- propone infatti di salvare ogni file modificato prima di chiudere
- Emacs.)
- Se stai usando un terminale grafico, non devi fare niente di speciale
- per passare da Emacs a un'altra applicazione. Puoi farlo con il mouse
- oppure utilizzare i comandi del “window manager”. Al contrario, se
- stai usando un terminale a caratteri che può mostrare una sola
- applicazione alla volta, hai bisogno di un modo per “sospendere” Emacs
- e poter quindi usare un'altra applicazione.
- C-z è il comando che serve per uscire da Emacs *temporaneamente*, in
- modo tale da poter tornare alla stessa sessione di Emacs in un momento
- successivo. Quando si è su un terminale a caratteri, C-z sospende
- Emacs, cioè si ritorna alla shell senza distruggere la sessione
- corrente. Nelle shell più comuni, puoi ritornare in Emacs con il
- comando “fg” oppure con “%emacs”.
- Il momento di usare C-x C-c è quando si sta per effettuare il log-out
- dal sistema. È anche il comando giusto quando si deve chiudere Emacs
- che è stato invocato da un altro programma, ad esempio da quello che
- gestisce la posta.
- Ci sono molti comandi C-x. Ecco una lista di quelli già conosciuti:
- C-x C-f Apri un file.
- C-x C-s Salva un file.
- C-x s Salva alcuni buffer.
- C-x C-b Elenca buffer.
- C-x b Passa a un altro buffer.
- C-x C-c Chiudi Emacs.
- C-x 1 Elimina tutte le finestre tranne una.
- C-x u Annulla.
- I comandi estesi con nome sono usati ancora meno spesso, oppure sono
- usati solo in certe modalità. Un esempio è il comando replace-string
- per sostituire in tutto il testo una stringa di caratteri con
- un'altra. Quando si usa M-x Emacs visualizza "M-x" nella parte bassa
- dello schermo, quindi si deve inserire per esteso il nome del comando;
- in questo caso “replace-string”. Inserisci solo “repl s<TAB>” ed
- Emacs completerà da solo il nome. (<TAB> è il tasto di tabulazione,
- che si trova di solito sul lato sinistro della tastiera sopra al tasto
- Blocca Maiuscole.) Concludi l'inserimento del comando con il tasto
- <Invio>.
- Il comando replace-string richiede due argomenti: la stringa da
- sostituire e quella con cui sostituirla. Bisogna indicare la fine di
- ogni argomento con <Invio>.
- >> Muovi il cursore sulla riga vuota due righe sotto questa.
- Inserisci quindi M-x repl s<Invio>cambiata<Invio>modificata<Invio>.
- Osserva come questa riga sia cambiata: hai sostituito la parola
- “cambiata” con “modificata” tutte le volte che quella compariva nel
- testo, a partire dalla posizione iniziale del cursore.
- * SALVATAGGIO AUTOMATICO
- ------------------------
- Quando si apportano delle modifiche ad un file ma non sono ancora
- state salvate potrebbero essere perse se per caso il sistema si
- bloccasse. Per proteggerti da questa eventualità Emacs scrive
- periodicamente un file di “salvataggio automatico” per ogni file che
- si sta modificando. Il nome del file di salvataggio automatico ha un
- carattere # all'inizio e alla fine; per esempio se il file si chiama
- “ciao.c” il nome del file di salvataggio automatico sarà “#ciao.c#”.
- Quando si salva il file nel modo consueto Emacs cancella il file di
- salvataggio automatico.
- Se il computer si blocca si può recuperare il file salvato
- automaticamente aprendo il file in modo normale (il file che si stava
- scrivendo, non quello di salvataggio automatico) e usando poi M-x
- recover-file<Invio>. Quando viene chiesta la conferma si risponda
- con yes<Invio> per procedere con il recupero dei dati salvati
- automaticamente.
- * AREA DI ECO
- -------------
- Se Emacs si accorge che si inseriscono comandi multicarattere in modo
- troppo lento allora mostra la sequenza nella parte bassa dello schermo
- in un'area chiamata "area di eco". L'area in questione contiene
- l'ultima riga dello schermo.
- * MODE LINE
- -----------
- La riga immediatamente sopra all'area di eco è chiamata "mode line"
- (riga di modo). La "mode line" si presenta più o meno così:
- -:**- TUTORIAL 62% L759 (Fundamental)
- Questa riga fornisce informazioni utili sullo stato di Emacs e sul
- testo che si inserisce.
- Abbiamo già visto cosa significa il nome del file: è il file che si
- sta visitando. NN% indica la posizione attuale nel testo: significa
- che NN percento del testo si trova sopra al margine superiore dello
- schermo. Se si visualizza l'inizio del file ci sarà scritto “Top”
- (inizio) invece che “ 0%”. Se invece ci si trova alla fine del file
- ci sarà scritto “Bot” (fine). Se si osserva un file talmente piccolo
- da essere visualizzato per intero sullo schermo allora la mode line
- indicherà “All” (tutto).
- La lettera L e le cifre indicano il numero di riga (Line) del punto
- indicato dal cursore in quel momento.
- I due asterischi vicino all'inizio indicano che sono state fatte delle
- modifiche al testo. Se il file è stato appena aperto o appena salvato
- quella parte della mode line non mostra alcun asterisco, solo
- trattini.
- La parte di mode line racchiusa tra parentesi serve ad indicare in
- quale modo di scrittura ci si trovi. Il modo standard è “Fundamental”
- ed è quello che probabilmente è attivo adesso. È un esempio di
- “modalità primaria” (major mode).
- Emacs ha tanti diversi tipi di modalità primarie. Alcuni di questi
- servono per la scrittura di diversi linguaggi di programmazione e/o
- tipi di testo, come la modalità Lisp, la modalità Testo, ecc. In
- qualsiasi momento c'è una e una sola modalità primaria attiva, e il
- suo nome è visualizzato sulla mode line, dove adesso c'è
- “Fundamental”.
- Ogni modalità primaria condiziona il comportamento di alcuni comandi.
- Per esempio ci sono comandi per creare commenti in un programma e, dal
- momento che ogni linguaggio di programmazione ha un diverso tipo di
- commento, ogni modalità primaria deve inserire i commenti in modo
- diverso. Ogni modalità primaria corrisponde al nome di un comando
- esteso, con cui puoi passare a quella modalità. Per esempio M-x
- fundamental-mode è il comando per attivare la modalità primaria
- “Fundamental”.
- Se si vuole inserire del testo in italiano, come questo file,
- probabilmente è più adeguata la modalità testo.
- >> Inserisci M-x text-mode<Invio>.
- Non preoccuparti, nessuno dei comandi che hai imparato verrà
- modificato in modo sostanziale. Tuttavia adesso puoi osservare come
- M-f e M-b considerino gli apostrofi come parti di parole. In
- precedenza, nella modalità “Fundamental”, M-f e M-b consideravano gli
- apostrofi dei separatori di parole.
- Le modalità primarie di solito producono nei comandi piccoli
- cambiamenti come quello: la maggior parte di essi “fa lo stesso
- lavoro” ma in maniera un po' diversa.
- Per leggere la documentazione sulla modalità primaria attuale, usa
- C-h m.
- >> Sposta il cursore sulla riga successiva a questa.
- >> Premi C-l C-l per portare questa riga in cima allo schermo.
- >> Usa C-h m per leggere come la modalità Testo differisca dalla
- Fundamental.
- >> Premi C-x 1 per eliminare la finestra contenente la documentazione.
- Le modalità primarie sono chiamate così perché ci sono anche delle
- “modalità secondarie” (minor modes). Tali modalità non sono
- alternative a quelle primarie, introducono solo piccole varianti.
- Ogni modalità secondaria può essere attivata o disattivata,
- indipendentemente da tutte le altre modalità secondarie e
- indipendentemente dalla modalità primaria attiva in quel momento. Si
- può quindi usare nessuna modalità secondaria, una soltanto oppure
- qualsiasi combinazione di modalità secondarie.
- Una modalità secondaria molto utile, specialmente per scrivere del
- testo, è la modalità “Auto Fill” (riempimento automatico). Quando
- questa modalità è attiva, Emacs interrompe la riga tra due parole ogni
- volta che, nel corso dell'inserimento, essa diventa troppo lunga.
- Si può attivare il modo “Auto Fill” con M-x auto-fill-mode<Invio>.
- Quando la modalità suddetta è attiva può essere disattivata eseguendo
- di nuovo M-x auto-fill-mode<Invio>. Se la modalità è disattivata
- questo comando la attiva, viceversa se è già attiva. Un comando che
- funziona così si comporta come un interruttore, attiva o disattiva
- qualcosa ogni volta che viene premuto.
- >> Usa M-x auto fill mode<Invio> adesso. Inserisci una riga di “asdf ”
- ripetuti fino a quando non la vedi dividersi in due righe. Devi
- interporre degli spazi perché la modalità Auto Fill spezza le righe
- solo in corrispondenza di uno spazio.
- Il margine di solito è predisposto a 70 caratteri ma può essere
- spostato con il comando C-x f. Bisogna fornire al comando l'argomento
- numerico del margine che si desidera.
- >> Usa C-x f con un argomento di 20 (C-u 2 0 C-x f), poi inserisci del
- testo e osserva come Emacs interrompe le righe a 20 caratteri.
- Infine torna di nuovo a un margine di 70 caratteri con C-x f.
- Se si modifica il testo all'interno di un paragrafo la modalità "Auto
- Fill" non lo risistema. Per risistemare i margini di un paragrafo si
- usa M-q (META-q) quando il cursore si trova in quel paragrafo.
- >> Muovi il cursore sul paragrafo precedente e premi M-q.
- * CERCARE DEL TESTO
- -------------------
- Emacs può effettuare la ricerca di stringhe (una “stringa” è un gruppo
- di caratteri contigui) in posizione sia successiva che precedente nel
- testo. Cercare una stringa è un comando che provoca lo spostamento
- del cursore: lo porta lì dove la stringa compare.
- Il comando di ricerca di Emacs è diverso da quello di molti altri
- editor perché è “incrementale”. Ciò significa che la ricerca avviene
- proprio mentre si inserisce la stringa da cercare.
- I comandi per iniziare la ricerca sono C-s per quella in avanti e C-r
- per quella all'indietro nel testo. ASPETTA! Non provarli ora.
- Quando si preme C-s si vede comparire il messaggio “I-search”
- nell'area di eco: ciò significa che Emacs aspetta che si indichi ciò
- che deve cercare. <Invio> serve a concludere la ricerca.
- >> Adesso usa C-s per iniziare la ricerca. LENTAMENTE, una lettera
- alla volta, inserisci la parola “cursore”, facendo una pausa dopo
- ogni carattere scritto per vedere cosa succede al cursore. Hai
- cercato “cursore”, una volta sola.
- >> Usa C-s un'altra volta per trovare la successiva occorrenza della
- parola “cursore”.
- >> Adesso premi <DEL> quattro volte e osserva come si muove il cursore.
- >> Premi <Invio> per concludere la ricerca.
- Hai visto cos'è successo? Durante una ricerca incrementale Emacs
- prova ad andare al punto successivo in cui compare la stringa indicata
- fino a quel momento. Per raggiungere il punto successivo in cui
- compare di nuovo “cursore” basta solo premere C-s ancora una volta.
- Se la stringa cercata non compare in alcun punto successivo Emacs
- emette un “beep” e informa che la ricerca non è andata a buon fine
- (“failing”). C-g è un modo alternativo per concludere la ricerca.
- Se durante una ricerca incrementale si preme il tasto <DEL> ci si
- accorgerà che l'ultimo carattere della stringa da cercare scompare e
- la ricerca torna all'ultimo risultato trovato prima che fosse stato
- scritto. Per esempio, supponiamo di aver battuto una “c” e di aver
- trovato la prima “c” che compare nel testo. Se poi aggiungiamo una
- “u” il cursore si sposta alla prima stringa “cu” che trova. Ora se si
- preme <DEL> la “u” viene rimossa dalla stringa da cercare e il cursore
- torna sulla “c” trovata in precedenza.
- Se ci si trova nel mezzo di una operazione di ricerca e si usa un
- carattere control o meta (con poche eccezioni, caratteri che hanno
- significato particolare durante la ricerca come C-s e C-r) allora la
- ricerca viene conclusa.
- Il comando C-s inizia la ricerca di ogni occorrenza della stringa in
- posizione SUCCESSIVA a quella attuale del cursore. Se si vuole
- cercare qualcosa che nel testo precede il cursore allora bisogna usare
- il comando C-r. Tutto quello che abbiamo detto su C-s si applica allo
- stesso modo per C-r, invertendo ovviamente la direzione di ricerca.
- * FINESTRE MULTIPLE
- -------------------
- Una delle caratteristiche interessanti di Emacs è che si possono
- visualizzare più finestre sullo schermo nello stesso momento. (Nota
- che Emacs utilizza il termine “frame”, descritto nella sezione
- successiva, per indicare quello che altre applicazioni chiamano
- “window”. Il manuale di Emacs contiene un Glossario dei termini usati
- da Emacs.)
- >> Muovi il cursore su questa riga e inserisci C-l C-l.
- >> Adesso usa C-x 2 che divide lo schermo in due parti. Entrambe le
- finestre visualizzano questo tutorial. Il cursore si trova nella
- finestra superiore.
- >> Premi C-M-v per far scorrere la finestra inferiore. (Se non hai un
- tasto META usa <ESC> C-v.)
- >> Usa C-x o per muovere il cursore nella finestra inferiore.
- >> Usa C-v e M-v nella finestra inferiore per farvi scorrere il testo.
- Continua a leggere queste indicazioni nella finestra superiore.
- >> Premi C-x o di nuovo per muovere il cursore nella finestra
- superiore. Il cursore si trova sul punto che occupava in
- precedenza.
- Puoi continuare a usare C-x o per andare da una finestra all'altra.
- La “finestra selezionata”, dove avvengono le modifiche, è quella con
- un cursore che lampeggia quando non stai scrivendo. Le altre finestre
- conservano la loro posizione del cursore; se stai usando un terminale
- grafico, quei cursori appaiono come dei rettangoli vuoi e non
- lampeggianti.
- Il comando C-M-v è molto utile quando si inserisce del testo in una
- finestra mentre si usa l'altra solo come riferimento. Si può tenere
- il cursore sempre nella finestra in cui si lavora e far scorrere il
- testo contenuto nell'altra con C-M-v.
- C-M-v è un esempio di carattere CONTROL-META. Se c'è un vero e
- proprio tasto META si può ottenere C-M-v tenendo premuti
- contemporaneamente CONTROL e META mentre si batte v. Non importa
- quale tra CONTROL e META viene premuto per primo perché essi agiscono
- assieme modificando i caratteri inseriti dopo.
- Se non c'è un tasto META e si usa il tasto ESC l'ordine diventa
- importante: bisogna premere prima <ESC> e poi farlo seguire da
- CONTROL-v perché CONTROL-ESC-v non funziona. Questo perché <ESC> è un
- carattere a sé stante e non uno che ne modifica altri.
- >> Usa C-x 1 (nella finestra superiore) per eliminare la finestra
- inferiore.
- (Se usi C-x 1 nella finestra inferiore allora viene eliminata quella
- superiore. Pensa a questo comando come “conserva una sola finestra,
- quella attualmente selezionata.”)
- Non devi necessariamente visualizzare il medesimo buffer in entrambe
- le finestre. Se usi C-x C-f per visitare un file in una finestra, il
- contenuto dell'altra non cambia. Si può visitare in modo indipendente
- un file diverso in ogni finestra.
- Ecco un altro modo per usare due finestre per visualizzare cose
- diverse:
- >> Inserisci C-x 4 C-f seguito dal nome di uno dei tuoi file e termina
- con <Invio>. Osserva come il file viene aperto nella finestra
- inferiore e il cursore venga posizionato là.
- >> Usa C-x o per tornare alla finestra superiore e C-x 1 per eliminare
- quella inferiore.
- * FRAME MULTIPLI
- ----------------
- Emacs può anche creare dei “frame” multipli. Un frame il nome che
- diamo a una collezione di finestre, insieme con il suo menu, le barre
- di scorrimento, l'area di eco, ecc. Su un terminale grafico, Emacs
- chiama “frame” quello che la maggior parte delle altre applicazioni
- chiamano “finestra”, ed è possibile mostrarne più di uno
- contemporaneamente. Su un terminale testuale, è possibile mostrare un
- solo frame alla volta.
- >> Usa M-x make-frame<Invio>.
- Un nuovo frame dovrebbe apparire sullo schermo.
- In questo nuovo frame puoi svolgere qualsiasi cosa come nel frame
- originale. Non c'è nulla di speciale nel primo frame.
- >> Usa M-x delete-frame<Invio>.
- Questo rimuove il frame selezionato.
- Puoi anche eliminare un frame usando i metodi offerti dal sistema
- grafico (normalmente cliccando sul pulsante “X” in uno degli angoli
- superiori del frame). Se rimuovi in questo modo l'ultimo frame, la
- sessione Emacs viene terminata.
- * LIVELLI DI EDITING RICORSIVO
- ------------------------------
- A volte ci si può trovare in quello che si chiama un “livello di
- editing ricorsivo”: ciò è indicato dalla presenza di parentesi quadre
- nella mode line, attorno alle parentesi che delimitano il nome della
- modalità primaria. Per esempio si potrebbe leggere [(Fundamental)]
- invece che (Fundamental).
- Per uscire dal livello di editing ricorsivo si usa <ESC> <ESC> <ESC>.
- È un comando di uscita di uso piuttosto generale, si può anche usare
- per eliminare finestre in più e per uscire dal minibuffer.
- >> Usa M-x per entrare nel "minibuffer": poi usa <ESC> <ESC> <ESC> per
- uscirne.
- Non è possibile usare C-g per uscire da un livello di editing
- ricorsivo, perché C-g è usato per annullare i comandi all'INTERNO del
- livello di editing ricorsivo.
- * COME IMPARARE ALTRO
- ---------------------
- In questo tutorial abbiamo provato a fornire le informazioni
- sufficienti per iniziare ad usare Emacs. Ci sono così tante opzioni
- in Emacs che sarebbe impossibile spiegarle tutte qui. Tuttavia
- potresti voler saperne di più su Emacs, che offre molte altre utili
- funzionalità. Ci sono comandi per leggere la documentazione dei
- comandi disponibili in Emacs. Questi comandi di “aiuto” iniziano
- tutti con il carattere C-h, che infatti è chiamato “carattere di aiuto
- (help)”.
- Per raggiungere le voci di Aiuto si usa il carattere C-h e poi un
- altro carattere che specifica la richiesta. Quando davvero non si sa
- cosa fare si può provare con C-h ? ed Emacs indicherà tutti i tipi di
- aiuto che può fornire. Se si è attivato l'aiuto con C-h e si decide
- che non serve più si può annullare la richiesta con C-g.
- (Se C-h non mostra un messaggio relativo all'aiuto nella parte bassa
- dello schermo, prova ad usare il tasto F1 oppure con M-x help<Invio>.)
- La forma base di aiuto è data da C-h c. Si inserisce C-h, il
- carattere c e poi un carattere o una sequenza di caratteri; Emacs
- mostrerà una breve descrizione del comando stesso.
- >> Prova C-h c C-p.
- Dovresti leggere un messaggio del tipo (purtroppo in inglese!):
- C-p runs the command previous-line
- Questo messaggio indica il “nome della funzione”. Dal momento che i
- nomi di funzione sono scelti per indicare cosa fa il comando, servono
- quindi anche come breve descrizione, sufficiente per ricordarsi di
- comandi già imparati.
- I comandi con più caratteri come ad esempio C-x C-s e (se non c'è il
- tasto META o EDIT o ALT) <ESC>v sono permessi allo stesso modo dopo
- una richiesta di aiuto fatta con C-h c.
- Per avere ulteriori informazioni su un comando si usa C-h k invece che
- C-h c.
- >> Prova C-h k C-p.
- Questo mostrerà la documentazione della funzione, così come il suo
- nome, all'interno di una finestra di Emacs. Quando hai finito di
- leggere usa C-x 1 per eliminare la finestra con il testo di aiuto.
- Non sei obbligato a farlo subito. Puoi anche lavorare sul tuo testo
- mentre fai riferimento al testo di aiuto e poi usare un C-x 1.
- Ecco altre utili opzioni di C-h:
- C-h f Descrive una funzione. Inserisci il nome della funzione.
- >> Prova con C-h f previous-line<Invio>.
- Questo mostrerà tutte le informazioni che Emacs possiede sulla
- funzione che implementa il comando C-p.
- Un comando simile è C-h v che mostra la documentazione delle
- variabili, comprese quelle di cui puoi modificare il valore per
- personalizzare il comportamento di Emacs. Devi inserire il nome della
- variabile quando Emacs lo richiede.
- C-h a "Apropos" comando. Inserisci una parola ed Emacs ti
- elencherà tutti i comandi il cui nome contiene quella
- parola. Questi comandi possono tutti essere eseguiti
- con META-x. Per alcuni comandi ti sarà mostrata anche
- una sequenza di uno o due caratteri che serve a far
- partire il comando senza doverlo inserire per esteso.
- >> Prova C-h a file<Invio>
- Questo mostrerà in un'altra finestra una lista di tutti i comandi che
- contengono la parola “file” nel nome. Nella lista si vedranno
- comandi-carattere, come C-x C-f, assieme ai corrispondenti nomi per
- esteso come find-file.
- >> Usa C-M-v per far scorrere il testo nella finestra di aiuto.
- Ripeti per alcune volte.
- >> Usa C-x 1 per eliminare la finestra di aiuto.
- C-h i Leggi la documentazione. Questo comando apre un
- buffer speciale chiamato “*info*” in cui puoi leggere
- i manuali on-line dei pacchetti installati sul tuo
- sistema. Batti m emacs<Invio> per leggere il manuale
- di Emacs. Se non hai mai usato il sistema Info prima
- d'ora premi ? ed Emacs ti guiderà nell'uso delle
- opzioni del modo Info. Una volta terminata questa
- esercitazione il manuale di Emacs contenuto nel
- sistema Info dovrebbe diventare la tua principale
- fonte di documentazione.
- * ALTRE FUNZIONALITÀ
- --------------------
- Puoi imparare di più su Emacs leggendo il suo manuale, sia nella forma
- stampata piuttosto che da dentro Emacs stesso (usa il menu Help oppure
- C-h r). Due funzionalità che possono farti comodo sono il
- completamento automatico, che consente di ridurre il numero di
- caratteri da digitare, e dired, che semplifica la gestione dei file.
- Il completamento è un modo per evitare la pressione di tasti quando
- non sia necessario. Ad esempio, quando vuoi passare al buffer
- *Messages*, puoi inserire C-x b *M<Tab> e Emacs cercherà di completare
- il nome del buffer usando la parte che hai già inserito. Questa
- funzione può essere usata anche sui nomi dei comandi oppure su quelli
- dei file, ed è descritta nel manuale Emacs nel nodo chiamato
- “Completion”.
- Dired ti consente di elencare i file in una directory (e opzionalmente
- nelle directory sottostanti), muoverti tra quei file, visitarli,
- rinominarli, cancellarli e in generale eseguire qualche operazione su
- quei file. Dired è descritta nel manuale Emacs nel nodo chiamato
- “Dired”.
- Il manuale descrive molte altre funzionalità di Emacs.
- * CONCLUSIONI
- -------------
- Per chiudere una sessione di Emacs si usa C-x C-c.
- Questo documento è stato creato per essere utile a tutti i nuovi
- utenti, se qualcosa per te è stato poco chiaro non dare la colpa a te
- stesso: lamentati!
- * COPIA
- -------
- La versione inglese di questo testo (disponibile nel file "TUTORIAL")
- deriva da una lunga serie di tutorial di Emacs che iniziò con quello
- scritto da Stuart Cracraft per il primo Emacs. La versione italiana è
- a cura di Alfredo Finelli (alfredofnl@tiscali.it).
- Questo documento, come GNU Emacs, è coperto da copyright e viene
- distribuito con il permesso di farne copie a determinate condizioni:
- NOTA BENE: la licenza che definisce a tutti gli effetti i termini
- secondo i quali è possibile la copia e la distribuzione di questo
- documento è quella originale in lingua inglese contenuta nel file
- "TUTORIAL". Qui di seguito se ne riporta una traduzione a scopo
- indicativo, restando comunque inteso il fatto che è quella
- originale a fare fede.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
- È permesso a chiunque copiare e distribuire attraverso ogni mezzo
- copie fedeli di questo documento così come viene ricevuto, a
- condizione che le informazioni sul copyright e sui permessi
- garantiti siano conservate intatte e che il distributore riconosca
- a colui che riceve la copia il diritto ad un'ulteriore
- distribuzione, che deve avvenire così come definito in questa
- clausola.
- È permesso distribuire versioni modificate di questo documento, o
- di ogni sua parte, alle condizioni indicate precedentemente, purché
- esse portino chiaramente indicato il nome di colui che le ha
- modificate per ultimo.
- Le condizioni per copiare Emacs sono più complesse ma definite con lo
- stesso spirito. Per favore, leggete il file COPYING e poi distribuite
- copie di GNU Emacs ai vostri amici. Aiutateci a combattere
- l'ostruzionismo al software ("la proprietà") usando, scrivendo e
- condividendo software libero!
- ;;; Local Variables:
- ;;; coding: utf-8
- ;;; End:
|