Perché amo Emacs
Emacs non è un semplice editor di testo; ti dà il controllo e ti consente di risolvere quasi tutti i problemi che incontri.
Sono un utente abituale di Emacs. Non ho scelto Emacs tanto quanto lui ha scelto me. Quando cominciai a conoscere Unix, mi imbattei in una funzionalità poco conosciuta in una strana applicazione chiamata Emacs, che apparentemente era nascosta sul mio computer. La leggenda narra (e si è rivelata vera) che se si digitava emacs
in un terminale, si premeva Alt+X e si digitava tetris
, potresti giocare a un gioco in cui cadono blocchi.
Questa è stata la mia introduzione a GNU Emacs. Sebbene fosse frivolo, era anche un'indicazione accurata di ciò che è Emacs: l'idea che gli utenti possono riprogrammare i loro mondi (virtuali) e fare qualunque cosa vogliano con un'applicazione. Giocare a Tetris nel tuo editor di testo probabilmente non è il tuo obiettivo principale nella vita di tutti i giorni, ma dimostra che Emacs è, orgogliosamente, una piattaforma di programmazione. In effetti, potresti pensarlo come una sorta di precursore di Jupyter, che combina un potente linguaggio di programmazione (chiamato elisp
, per l'esattezza) con il proprio ambiente live. Di conseguenza, Emacs è un editor di testo flessibile, personalizzabile e potente.
Elisp (e Common Lisp, per estensione) non sono necessariamente i linguaggi più facili con cui iniziare, se sei abituato a Bash o Python o linguaggi simili. Ma i dialetti LISP sono potenti e poiché Emacs è un interprete LISP, puoi creare applicazioni, siano essi plug-in Emacs o prototipi di qualcosa che desideri sviluppare in un progetto autonomo. Il popolarissimo progetto org-mode è solo un esempio: è un plugin Emacs e una sintassi markdown con app mobili per interpretare ed estendere le sue capacità. Ci sono molti esempi di applicazioni altrettanto utili all'interno di Emacs, tra cui un client di posta elettronica, un visualizzatore PDF, un browser web, una shell e un file manager.
Due interfacce
GNU Emacs ha almeno due interfacce utente: un'interfaccia utente grafica (GUI) e un'interfaccia utente terminale (TUI). Questo a volte sorprende le persone perché Emacs è spesso contrapposto a Vi, che viene eseguito in un terminale (sebbene gVim fornisca una GUI per una moderna implementazione di Vi). Se vuoi eseguire GNU Emacs come applicazione terminale, puoi avviarlo con l'opzione -nw
:
$ emacs -nw
Con una GUI, puoi semplicemente avviare Emacs dal menu dell'applicazione o da un terminale.
Potresti pensare che una GUI renda Emacs meno efficace, come se "i veri editor di testo girassero in un terminale", ma una GUI può rendere Emacs più facile da imparare perché la sua GUI segue alcune convenzioni tipiche (una barra dei menu, widget regolabili, interazione con il mouse, e così via).
Infatti, se eseguite Emacs come applicazione GUI, probabilmente potrete passare la giornata senza accorgervi affatto di essere in Emacs. Si applicano la maggior parte delle solite convenzioni, purché si utilizzi la GUI. Ad esempio, puoi selezionare il testo con il mouse, accedere al menu Modifica, selezionare Copia, quindi posizionare il cursore altrove e selezionare Incolla . Per salvare un documento, puoi andare su File e Salva o Salva con nome. Puoi premere Ctrl e scorrere verso l'alto per ingrandire il carattere dello schermo, puoi utilizzare la barra di scorrimento per navigare nel documento e così via.
Conoscere Emacs nella sua forma GUI è un ottimo modo per appiattire la curva di apprendimento.
Scorciatoie da tastiera di Emacs
GNU Emacs è famoso per le complesse combinazioni di tastiere. Non solo non hanno familiarità (Alt+W per copiare? Ctrl+Y per incollare?), ma sono anche indicati con terminologia arcana ("Alt" si chiama "Meta"), e talvolta si presentano in coppia (Ctrl+X seguito da Ctrl+S per salvare) e altre volte da solo (Ctrl+S per cercare). Perché qualcuno dovrebbe scegliere volontariamente di usarlo?
Beh, alcuni no. Ma quelli che lo fanno sono fan di come queste combinazioni si inseriscono facilmente nel ritmo della digitazione quotidiana (e spesso il tasto Bloc Maiusc funge da tasto Ctrl). Chi preferisce qualcosa di diverso, invece, ha diverse opzioni.
- La modalità
evil
ti permette di usare le combinazioni di tasti Vim in Emacs. È così semplice: puoi mantenere le combinazioni di tasti che hai dedicato alla memoria muscolare ed erediti l'editor di testo più potente disponibile. - I tasti CUA (Common User Access) mantengono tutte le consuete combinazioni di tasti di Emacs, ma quelle più stridenti (copia, taglia, incolla e annulla) sono tutte mappate sui loro collegamenti moderni (Ctrl+ C, Ctrl+X, Ctrl+V e Ctrl +Z, rispettivamente).
- La funzione
global-set-key
, parte della parte di programmazione di Emacs, ti permette di definire le tue scorciatoie da tastiera. Tradizionalmente, le scorciatoie definite dall'utente iniziano con Ctrl+C, ma nulla ti impedisce di inventare il tuo schema. Emacs non è prezioso della propria identità. Puoi piegarlo alla tua volontà.
Impara Emacs
Ci vuole tempo per diventare molto bravi con Emacs. Per me, ciò significava stampare un foglietto illustrativo e tenerlo vicino alla tastiera tutto il giorno, tutti i giorni. Quando ho dimenticato una combinazione di tasti, l'ho cercata sul mio foglietto illustrativo. Se non era nel mio cheat sheet, ho imparato la combinazione di tastiera, eseguendo la funzione e notando come Emacs mi diceva che avrei potuto accedervi più velocemente o usando describe-function
:
M-x describe-function: save-buffer
save-buffer is an interactive compiled Lisp function in ‘files.el’.
It is bound to C-x C-s, <menu-bar> <file> <save-buffer>.
[...]
Man mano che lo usi, lo impari. E più impari a riguardo, più acquisisci il potere di migliorarlo e renderlo tuo.
Prova Emacs
È uno scherzo comune dire che Emacs è un sistema operativo con un editor di testo incluso. Forse questo è inteso a insinuare che Emacs sia gonfio ed eccessivamente complesso, e c'è certamente un argomento secondo cui un editor di testo non dovrebbe richiedere libpoppler
in base alla sua configurazione predefinita (puoi compilare Emacs senza di esso).
Ma dietro questa battuta si nasconde una verità più grande, che rivela molto su ciò che rende Emacs così divertente. Non ha senso paragonare Emacs ad altri editor di testo, come Vim, Nano o anche VSCodium, perché la parte veramente importante di Emacs non è l'idea di poter scrivere qualcosa in una finestra e salvarla. Questa è la funzionalità di base fornita anche da Bash. Il vero significato di Emacs è il modo in cui ti dà il controllo e il modo in cui, attraverso Emacs Lisp (Elisp), quasi tutti i problemi possono essere risolti.