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...
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:
http://www.emacswiki.org/cgi-bin/wiki?SetFonts
| [1] |
Errata-corrige: xfonts-terminus
Marco Bisetto fa notare che, al contrario:
$ head /usr/share/doc/xfonts-terminus/copyright This package was debianized by Anton Zinoviev <zinoviev@debian.ort>.
It was downloaded from http://www.is-vn.bg/hamster/
The Terminus Font was created by and is a property of Dimitar Toshkov Jekov (jimmy@ncp.infonet.bg).
You can use and distribute this archive freely and without charge under the terms of the GNU General Public License version 2.0 or (at your choice) any later version."
http://www.is-vn.bg/hamster/jimmy-en.html
The upstream author of Terminus font is Dimitar Zhekov http://www.is-vn.bg/hamster
Niente a che vedere con M$, che odia la licenza GPL.
|
Cambiare i font al volo
-
emacs -fn 7x14
-
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 "6x13")
-
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
print
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