#format wiki #LANGUAGE it <
> <> <> = Introduzione = '''GNU Emacs''' è uno dei più potenti editor di testo liberi. Molto utilizzato nell'ambito dello sviluppo del software, unisce alla semplicità d'uso altre importanti caratteristiche, come la sua estendibilità e la sua versatilità. Con '''Emacs''' è possibile non solo scrivere del testo, ma anche eseguire debug di applicazioni, inviare mail, gestire un calendario con eventi e utilizzare il terminale. = Installazione = [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://emacs|emacs]]. Al termine dell'installazione sarà possibile [[AmbienteGrafico/AvviareProgrammi|avviare]] il programma. = Struttura = == Buffer == '''Emacs''' lavora a stretto contatto con delle entità chiamate '''buffer'''. Esse sono delle sequenze di testo che puntano generalmente a un file su disco. Quando si modifica un buffer nell'editor, non si altera un file su disco. Solo quando il buffer viene salvato le modifiche diventano effettive, siccome '''Emacs''' scrive tutti i dati del buffer nel file a cui esso punta. Ogni buffer ha un nome, che corrisponde al nome del file su disco corrispondente. Per esempio, se si apre un file chiamato `foo.txt`, il nome che l'editor da al buffer è ''foo.txt''. Esistono tuttavia dei buffer speciali, che non possono essere salvati, siccome non puntano a nessun file. L'editor ne mette a disposizione molti, come il buffer '''*scratch*''' o il buffer '''*Messages*'''. Generalmente un buffer speciale ha un nome che inizia e finisce con il carattere '''*''', quindi è spesso riconoscibile. == File == === Modalità di salvataggio automatica === '''Emacs''' salva con regolare frequenza i dati di un buffer che punta a un file, in modo che sia possibile recuperare i cambiamenti fatti in caso di uscita non volontaria. I file salvati automaticamente hanno lo stesso nome del file originale, ma iniziano e finiscono con il carattere '''#'''. E' possibile, ovviamente, disattivare il salvataggio automatico dei file: è sufficiente eseguire l'espressione '''Lisp''' ''(setq auto-save-default nil)'' o aggiungerla al file di avvio (#sezione#). === File di backup === Ogni volta che viene aperto un file in un nuovo buffer, '''Emacs''' crea una copia di backup, che contiene una copia del file prima dell'apertura del buffer. I file di backup vengono ignorati nei successivi salvataggi del buffer, a meno che non specificatamente richiesto dall'utente. == Manuali == '''Emacs''' fornisce un certo quantitativo di manuali ricchi di informazioni, che possono essere letti in qualsiasi momento dall'utente. Tra di essi: * il '''manuale completo di Emacs''', che fornisce tutte le informazioni necessarie per utilizzare l'editor al meglio; * la referenza completa di '''Emacs Lisp''', il linguaggio in cui è scritto l'editor e le sue configurazioni. I manuali sono raggiungibili in vari modi. Per aprire il manuale di '''Emacs''' nel buffer *info*, è possibile digitare la scorciatoia da tastiera '''C-h r''', oppure selezionare il menù '''''Help → Read the Emacs Manual'''''. Quanto a tutti gli altri manuali, è possibile visualizzarli nel menù a tendina '''''Help → More Manuals'''''. Ogni manuale di '''Emacs''' è inoltre consultabile online. Per una lista completa, visitare la [[https://www.gnu.org/software/emacs/manual/ |pagina dedicata sul sito ufficiale]]. = Configurazione = '''Emacs''' è un editor completamente personalizzabile. Ogni aspetto del suo comportamento è regolato da una serie di opzioni liberamente modificabili. Le impostazioni dell'editor sono organizzate in gruppi, in ciascuno dei quali si ritrovano opzioni che riguardano specifici aspetti di '''Emacs''', come la modifica del testo o la visualizzazione di menù e finestre. Un gruppo di configurazione può contenere anche dei sottogruppi.<
> '''Emacs''' presenta una gerarchia di gruppi ben definita: in cima ad essa è presente il gruppo ''Emacs'', che contiene tutti i principali gruppi di configurazione dell'editor. Questi contengono, a loro volta, altri sottogruppi e opzioni che riguardano particolari aspetti del comportamento dell'editor. Per esempio, il gruppo '''Text''' contiene tutte le opzioni e i gruppi di opzioni che controllano aspetti relativi alla modifica di testi semplici. Personalizzare '''Emacs''' è un'operazione che può essere eseguita in vari modi. Si può utilizzare l'interfaccia grafica che l'editor mette a disposizione, o modificare il file di avvio, che viene caricato ogni volta che si avvia il programma. == Configurazione tramite interfaccia grafica == '''Emacs''' fornisce un tipo di buffer chiamato '''customization buffer''', ossia "buffer di personalizzazione". Esso può navigare attraverso i vari gruppi di configurazione dell'editor e permette di modificare le opzioni che essi contengono. Inoltre, è possibile cercare elementi nel gruppo attualmente selezionato. Ad esempio, cercando "indent" mentre si sta navigando nel gruppo '''Editing''', verranno mostrate tutte le opzioni relative alla parola cercata e, possibilmente, i sottogruppi con nome o impostazioni simili. '''Customization buffer''' consente anche di visualizzare i cambiamenti fatti, confrontarli con quelli predefiniti e, all'occorrenza, di ripristinarli. Le modifiche vengono normalmente salvate solo per la sessione corrente, quindi alla chiusura dell'editor verranno perse. Per rendere le modifiche durature, è sufficiente premere il bottone '''Apply and Save''', situato nella parte superiore del buffer. Per aprire il buffer di personalizzazione, selezionare il menù '''''Options → Customize Emacs → Top-level Customization Group'''''. In alternativa digitare la scorciatoia da tastiera '''M-x''' e poi '''customize''', quindi premere il tasto '''Invio'''. == Configurazione tramite file di avvio == Ogni volta che viene avviato, '''Emacs''' carica uno o più '''file di avvio'''. Per impostazione predefinita, l'editor dispone di un solo file di avvio, localizzato nella propria '''Home''' con il nome `.emacs`. E' possibile specificare in esso, o negli eventuali altri file di avvio, delle opzioni personalizzate durature. Un tipico file di avvio di Emacs appare così:{{{ (custom-set-variables '(ansi-color-names-vector ["#2e3436" "#a40000" "#4e9a06" "#c4a000" "#204a87" "#5c3566" "#729fcf" "#eeeeec"]) '(custom-enabled-themes nil) '(initial-buffer-choice t) '(send-mail-function (quote mailclient-send-it))) (custom-set-faces) }}} Ogni file di avvio è scritto in '''Emacs Lisp''', il linguaggio di programmazione con cui è scritta gran parte dell'editor. Per una referenza completa del linguaggio, è possibile consultare il [[https://www.gnu.org/software/emacs/manual/elisp.html | manuale apposito]]. = Tasti di scelta rapida = I comandi di '''Emacs''' posso essere eseguiti tramite tasti di scelta rapida, i quali possono essere modificati all'interno dell'editor stesso. Quella che segue è una lista delle combinazioni predefinite messe a disposizione dell'utente: {{{#!wiki note ''Mentre con la dicitura'' '''Ctrl+''' ''si intende la pressione del tasto '''Ctrl''' contemporaneamente ad un altro, con la dicitura'' '''M''' ''si indica una singola pressione del tasto '''Meta''' ('''Alt'''). Nel caso non fosse presente, si può usare il tasto '''Esc'''.'' }}} == Comandi base == ||<:> '''Combinazione''' ||<:> '''Descrizione''' || || '''Ctrl+h''' || Apre la guida || || '''Ctrl+x''', '''u''' || Undo (annulla l'operazione precedente) || || '''Ctrl+x''', '''Ctrl+g''' || Annulla l'operazione o il comando corrente || || '''Ctrl+x''', '''Ctrl+s''' || Salva il file || || '''Ctrl+x''', '''Ctrl+c''' || Chiude Emacs || == Cursore == ||<:> '''Combinazione''' ||<:> '''Descrizione''' || || '''Ctrl+f''' || Avanti di un carattere || || '''Ctrl+b''' || Indietro di un carattere || || '''Ctrl+p'''|| Linea precedente || || '''Ctrl+n''' || Linea successiva || || '''Ctrl+a''' || Inizio linea || || '''Ctrl+e''' || Fine linea || || '''Ctrl+l''' || Al centro della corrente linea sullo schermo || || '''Ctrl+v''' || Sfoglia avanti || || '''M''', '''v''' || Sfoglia indietro || || '''M''', '''f''' || Avanti di una parola || || '''M''', '''b''' || indietro di una parola || || '''M''', '''a''' || Inizio periodo || || '''M''', '''e''' || Fine periodo || || '''M''', '''{''' || Inizio paragrafo || || '''M''', '''}''' || Fine paragrafo || || '''M''', '''<''' || Inizio buffer || || '''M''', '''>''' || Fine buffer || == Varie == ||<:> '''Combinazione''' ||<:> '''Descrizione''' || || '''M''', ''(n)'' || Ripete il prossimo comando (n) volte || || '''Ctrl+d''' || Cancella un carattere || || '''M''', '''d''' || Cancella una parola || || '''Ctrl+k''' || Elimina linea || || '''M''', '''k''' || Elimina periodo || || '''Ctrl+s''' || Ricerca in avanti || || '''Ctrl+r''' || Ricerca a ritroso || || '''M''', '''%''' || Sostituzione di query || || '''M''', '''c''' || Capitalizza parola || || '''M''', '''u''' || Parola in lettere maiuscole || || '''M''', '''l''' || Parola in lettere minuscole || || '''Ctrl+t''' || Commuta caratteri || || '''M''', '''t''' || Commuta parole || || '''Ctrl+@''' || Marca l'inizio di una regione || || '''Ctrl+w''' || Taglia/cancella tutto dalla marcatura al punto || || '''Ctrl+y''' || Incolla il testo eliminato all'interno della locazione corrente || || '''M''', '''q''' || Riformatta il paragrafo || || '''M''', '''g''' || Riformatta ogni paragrafo nella regione || || '''M''', '''x''' auto-fill-mode || Mette on word wrap || || '''M''', '''x''' set-variable '''Invio''' fill-column '''Invio''' 45 || Imposta la lunghezza di linea a 45 caratteri || || '''M''', '''x''' goto-line '''Invio''' 16 || Muove il cursore alla linea 16 || || '''M''', '''w''' || Copia la regione marcata || || '''Ctrl+x''', '''Ctrl+f''' || Cerca un file e lo legge || || '''Ctrl+x''', '''Ctrl+v''' || Cerca e legge un file alternativo || || '''Ctrl+x''', '''i''' || Inserisce un file alla posizione corrente || || '''Ctrl+x''', '''Ctrl+s''' || Salva il file || || '''Ctrl+x''', '''Ctrl+w''' || Scrive il buffer in un file differente || || '''Ctrl+x''', '''Ctrl+c''' || Esce da emacs e chiede di salvare || = Ulteriori risorse = * [[https://help.ubuntu.com/community/EmacsHowto|Documento originale]] * [[http://it.wikipedia.org/wiki/Emacs|Voce enciclopedica]] (in italiano) * [[http://en.wikipedia.org/wiki/Emacs|Voce enciclopedica]] (in inglese) * [[http://www.emacswiki.org/|Emacs Wiki]] * [[http://www.pluto.it/files/ildp/HOWTO/Emacs-Beginner-HOWTO/Emacs-Beginner-HOWTO.html|Guida per principianti]] * [[http://en.wikipedia.org/wiki/Emacs_Lisp|Voce enciclopedica di Emacs Lisp]] (in inglese) * [[http://www.gnu.org/software/emacs/manual/html_node/elisp/index.html|Manuale di riferimento di Emacs Lisp]] ---- CategoryProgrammazione CategoryProduttivita