Non è facile introdurre GNU Emacs: per molti è l’unico motivo per cui vale la pena continuare a programmare, per altri una bestia che occupa milionate di byte per niente.
Non è facile introdurre GNU Emacs: per molti è l’unico motivo per cui vale la pena continuare a programmare, per altri una bestia che occupa milionate di byte per niente.
Scherzi a parte, GNU Emacs è uno strumento che, basandosi su una ricca libreria di base scritta parte in C e parte in Emacs Lisp, estende il concetto di “editor” ben al di là della semplice modifica di file di testo. In effetti, dentro GNU Emacs può girare quasi tutto, dal tetris per svagarsi al gdb per fare debug, da vm per leggere la posta a oo-browser per esplorare in maniera nuova i sorgenti del software Object Oriented…
Po-Mode
Pro memoria per il po-mode (traduzione dei programmi)
Dubbi? Domande?
Nella lista del LinuxTrent ci sono svariate persone con un’ottima conoscenza di Emacs, che probabilmente possono darti una mano per qualsiasi problema o dubbio ti attanagli relativo a questo strumento. Non farti scrupolo a trascriverli qui sotto!
-
E‘ Mai Accaduto Che Scoppi?
Generalmente Non Usa!
-
Ho sentito dire che qualcuno del LinuxTrent ha tradotto qualche manuale di GnuEmacs. Corrisponde al vero? Se si, è disponibile da qualche parte?
Si, è vero. Matteo Ianeselli ha tradotto gran parte del manuale di GnuEmacs 20.4, disponibile sul sito del LinuxTrent.
È ora accessibile sul repository docit. Si sta pensando di traslarlo in reST, così da renderne più semplice la manutenzione e l’aggiornamento alla versione 21.3, e poterne ricavare sia Info e HTML ma anche PDF.
Tips e tricks
Invertire i colori
Nero su bianco vi annoia?:
emacs -r
VM “lento” nel comporre messaggi?
(nota di MatteoIaneselli: a tutt’oggi uso GNU Emacs + VM su una workstation decisamente obsoleta, più o meno equivalente a un Pentium 133… per cui i problemi di lentezza li sento eccome!)
Tutto ciò accade perché, in fin della fiera, VM aggiunge un hook al buffer di composizione dei messaggi che ad ogni modifica effettuata va ad esaminare il valore di Subject: e cambia il titolo del buffer di conseguenza. Con macchine molto lente, ciò è fastidioso.
Nell’attesa che sia configurabile, basta modificare vm-reply.el: nella funzione elisp vm-mail-internal c’è il seguente pezzetto di codice:
...
(if (boundp 'post-command-idle-hook)
(add-hook 'post-command-idle-hook
'vm-update-composition-buffer-name t)
(add-hook 'post-command-hook 'vm-update-composition-buffer-name t))
...
Basta commentarlo (inserendo dei ;), ricompilare vm-reply.el, ed il gioco è fatto.
Tabelle in Emacs
Lele Gaifax segnala in lista questo praticissimo modulo elisp per la gestione di tabelle in Emacs. Permette di creare e modificare delle tabelle con la sintassi richiesta dal Restructured Text.
Giorno | Minima | Massima |
Lunedì | -5° | 1° |
Martedì | -2° | 1° |
Mercoledì | 1° | 4° |
Giovedì | 2° | 4° |
Offre la possibilità di importarle da testo ASCII e di generarne versioni HTML, LaTeX e altro ancora.
reST in Emacs
Particolarmente comodo per lavorare sui documenti del portale LinuxTrent in abbinamento con l’External editor, un pacchetto che aggiunge a Emacs il supporto per le convenzioni del reStructuredText: rst.el.
http://docit.bice.dyndns.org/ReST/user/emacs.html
Ciclare il livello di un titolo? Semplice C-c p a, C-c p = o C-=. Elenco puntato o numerato? C-c p e o C-c p b, ecc..
Font da galantom sotto X11
Per chi come me utilizza Emacs costantemente, per fare quasi tutto, è importante riuscire a configurare in modo appropriato i font di carattere utilizzato. Se su SO commerciali vi è sempre una notevole abbondanza di font di buona qualità, non è così purtroppo sotto X11, dove i font di base lasciano alquanto a desiderare.
Ho speso quindi un po’ di tempo per sistemare la mia macchina sotto questo punto di vista. Ho trovato un font di tutto rispetto nel pacchetto xfonts-terminus, proveniente nientepopo’ di meno che della Micro$oft, disponibile liberamente [1]
Description: Fixed-width fonts for fast reading
These are fixed-width fonts suitable for for terminals, editors, etc.
If you have to work for extended time in front of monitor (i.e. over
eight hours), you may find that using of these fonts reduces your
eyes-fatigue.
The packages contain fonts in following sizes: 8x14, 8x14bold, 8x16,
8x16bold, 10x20, 10x20bold, 12x24 and 12x24bold and supports the
following encodings: ISO10646-1, ISO8859-1, ISO8859-2, ISO8859-5,
ISO8859-9, ISO8859-15, ISO8859-16, KOI8-R, KOI8-U, CP1251 and PT154.
Poi ho inserito questo nel mio ~/.Xresources:
Emacs.default.attributeFont: -xos4-terminus-medium-*-*-*-*-200-*-*-*-*-iso8859-15
ottenendo un ottimo risultato, decisamente leggibile e poco affaticante. A questo font manca però l’italico… Ulteriore ricerca che mi ha fatto scegliere un courier new…
- Addenda di ianezz
- Esiste anche il buon set di font a spaziatura fissa di Jim Knoble, in particolare il font neep (18 punti e 24 punti, ma ce ne sono anche di più piccoli), decisamente un “must-to-have” per chi passa molto tempo con editor e shell. Con DebIan basta andare ad installare il pacchetto xfonts-jmk, che è parte della distribuzione stable.
Un indirizzo utilissimo per la gestione dei font:
[1] |
Errata-corrige: xfonts-terminus Marco Bisetto fa notare che, al contrario: $ head /usr/share/doc/xfonts-terminus/copyright Niente a che vedere con M$, che odia la licenza GPL. |
Cambiare i font al volo
-
emacs -fn 7×14
-
shift-mouse-1
-
M-x customize-face RET default RET
-
in ~/.Xdefaults:
Emacs*font: -b&h-lucidatypewriter-medium-r-normal-*-*-100-*-*-m-*-iso8859-1
-
(set-default-font “6×13”)
-
menu font resource is: Emacs.pane.menubar*font:
-
modeline font resource is: Emacs.modeline*attributeFont:
Aggiungere una directory nel load-path
;; add custom path [C-h v load-path]
;;
(add-to-list 'load-path "~/.elisp")
Passare da un buffer all’altro
C’è un comodissimo swbuff.el da scaricare, modificando opportunamente il .emacs si può passare da un buffer all’altro usando l’alt e le frecce (per aggiungere una directory nel path leggere sopra):
;; swbuff -- sf.net/projects/emhacks
;;
(defun swbuff-set-keys ()
"Define keyboard shortcut \[M-right] for `swbuff-switch-to-next-buffer' and
[M-left] for `swbuff-switch-to-previous-buffe r'."
(global-set-key [M-right] 'swbuff-switch-to-next-buffer)
(global-set-key [M-left] 'swbuff-switch-to-previous-buffer))
(setq swbuff-load-hook '(swbuff-set-keys))
(require 'swbuff)
Colorare il codice
Basta aggiungere nel .emacs:
;; enable syntax highlights
;;
(global-font-lock-mode)
Selezione alla windows
;; enable pc like selection
;;
(pc-selection-mode)
Debug python in emacs
apt-get install pydb ddd
M-x pdb pydb
file nomescript
run [args]
continue / next / up / down
mentre nel file:
import pdb
pdb.set_trace()
Editare file remoti
installare tramp (altrimenti utilizza l’ftp)
C-x C-f /ssh:nomeutente@host:/path
Controllare gli errori di ortografia
Utilizzare ad esempio il flyspell-check
Evidenziare la selezione (region)
Visto che molte funzioni di Emacs (es: replace-string, o cut-n-paste) lavorano, per difetto, sulla region (se definita) è molto meglio se “la si vede”.
;; Evidenzia la regione tra il point e il mark.
(transient-mark-mode t)
Fare il diff tra due file
Molto comodo perché visuale e con help correlato:
M-x ediff
Risorse esterne
- http://www.anc.ed.ac.uk/~stephen/emacs/ell.html Emacs Lisp List
- http://www.dmoz.org/Computers/Open_Source/Software/Editors/Emacs/ Open Source Directory: Emacs
- http://groups.google.com/d/search/gnu.emacs.sources Il gruppo Usenet gnu.emacs.sources
- Emacs Wiki