Menu Chiudi

GNU Emacs

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!

  1. EMai Accaduto Che Scoppi?

    Generalmente Non Usa!

  2. 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°
Martedì -2°
Mercoledì
Giovedì

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:

https://www.emacswiki.org/emacs?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 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

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
WordPress Appliance - Powered by TurnKey Linux