Linuxtrent: Novita` in GNU Emacs 21

  • From: Matteo Ianeselli <m.ianeselli@xxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sun, 28 Oct 2001 14:53:01 +0100


Ecco alcune delle novita` che ci sono in GNU Emacs 21. Molte e`
possibile trovarle elencate nel solito Antinews, ma altre non ci sono.

In linea generale, GNU Emacs ora si porta in pari con XEmacs dal punto
di vista delle feature. Rimangono tra i due le differenze nell'elisp,
non tragiche per fortuna.

Manca ancora il port per Windows (in corso d'opera... ma non ancora
stabile).

1) Supporto di font proporzionali:

   GNU Emacs ora gestisce anche più font nello stesso documento, ed
   anche font proporzionali e di diverse dimensioni. In pratica, una
   `face' ora ha, tra gli altri attributi, anche la famiglia di
   caratteri e le dimensioni (assolute in decimi di punti tipografici,
   o relative rispetto alla grandezza del font di default).

   Una `face' ora puo` ereditare attributi da un'altra `face'.

   La spaziatura per i font proporzionali viene gestita in maniera
   furba, ovvero le dimensioni degli spazi e delle tabulazioni vengono
   calcolate in base alla larghezza di uno spazio del font di default:
   questo significa che se il font di default e` a larghezza fissa,
   gli allineamenti vengono rispettati.

   Non ho ancora trovato un modo per salvare un documento insieme alle
   face (si, so che esiste l'enriched text mode, ma non e` quello che
   avevo in mente), o un documento insieme alle sue
   immagini. Nondimeno, non dovrebbe essere impossibile farlo.

2) Supporto di immagini

   Ora GNU Emacs e` in grado di gestire immagini all'interno di
   documenti, ed anche all'interno di toolbar. Esse sono bene o male
   trattate come una specie di `grande carattere' in un font
   proporzionale. I formati supportati sono quelli piu` comuni (GIF,
   PNG, JPEG, TIFF, ed anche PostScript tramite GhostScript).

   Notare che per default le immagini vengono viste come semplici file
   binari. Per far si` che C-x C-f e soci le visualizzino come
   immagini, basta attivare l'auto-image-file-mode (si puo` rendere
   persistente tramite customize, al solito). Attivandolo, dired puo`
   diventare un pratico visualizzatore d'immagini (anche se c'e` di
   meglio in giro).

3) Righe di continuazione e righe fisse

   Mentre con GNU Emacs 20 e precedenti, le linee di testo piu` larghe
   di una riga dello schermo venivano rappresentate su piu` righe
   terminanti con un backslash `\', in GNU Emacs 21 vi sono due
   sottili barre in cui compare un'iconcina per indicare la cosa (in
   maniera molto simile se non identica al widget testuale di GTK).

   Ora e` anche possibile avere una riga di testo che non scorre
   insieme al resto del buffer. Viene usata ad esempio nel modo info
   per presentare una barra di navigazione.

4) Audio

   Ora GNU Emacs supporta direttamente l'audio, senza ricorrere a
   programmi esterni. Non ho ben chiaro quali formati (e codec)
   riconosca. Mi pare che Gnus continui ad usare un player esterno,
   cmq. (ma non uso ancora Gnus, per cui...)

5) Toolbar e tooltip

   Ora GNU Emacs dispone di toolbar con iconcine per effettuare col
   mouse le principali operazioni. Altresi`, e` possibile avere dei
   tooltip sui bottoni.

6) Backup tutti insieme

   E` finalmente (!) possibile conservare tutti i file di backup in
   directory specificate dall'utente, senza quindi spargerli in giro
   per il mondo. Vi possono essere piu` directory di backup in base
   all'estensione del nome del file. Ovviamente, e` anche possibile il
   vecchio comportamento. Vedi M-x customize-group backup (ed in
   particolare, backup-directory-alist).

7) Eshell

   Si tratta di una shell implementata completamente in elisp, con
   tanto di comandi UNIX (i.e. ls, cd, etc.). Questo dovrebbe
   semplificare la vita a chi lavora su Windows e non ha il Cygwin a
   portata di zampa (o anche a chi lavora su VMS). Notare che alcuni
   comandi vengono usati anche da altri pezzi di codice elisp
   (i.e. dired usa l'ls di eshell).

   C'era anche per GNU Emacs 20, ma e` di serie con Emacs 21.

8) Archivi

   Ora e` possibile editare direttamente file che sono all'interno di
   archivi zip (e jar), lzh, arc e zoo, con un modo simil-dired,
   ripreso da quello usato per i .tar.gz (anzi, IMHO meglio di quello
   per i .tar.gz).

9) Varie

   Ora il default e` quello di non aggiungere nuove righe se si scorre
   oltre la fine del file (ok, prima bastava impostare un'opzione).

   Il cursore puo` essere lampeggiante (questo era comunque possibile
   anche con versioni precedenti e un po' di codice elisp addizionale)

   C'e` un modo secondario per evidenziare la riga di schermo
   corrente (anche questo possibile in versioni precedenti con un po'
   di codice elisp). M-x hl-line-mode

   E` possibile avere del testo colorato anche se GNU Emacs e` in
   funzione in un terminale testuale (chiaramente con colori
   limitati).

   E` possibile evidenziare le modifiche che si stanno apportando al
   testo. M-x highlight-changes-mode

   E` anche possibile evidenziare (per default in giallo) delle
   parole/frasi/etc. all'interno del testo, e vedersele evidenziate
   non appena si digitano. M-x highlight-regexp e soci.

   La ricerca incrementale ora puo` anche evidenziare i match
   attualmente visibili nella schermata corrente (un po' come less).
   E` il comportamento di default, se non erro.

   Esiste un modo secondario molto carino che fa si` che un tasto
   inserisca un carattere se premuto una sola volta, e un altro
   carattere se premuto due volte di seguito. Utile per le graffe
   sulle tastiere italiane (o per le accentate su quelle
   statunitensi). Vedi `M-x customize-group double'. Mi pare che abbia
   qualche problemino se il carattere da digitare due volte non e` un
   carattere ASCII... ma non sono ben sicuro.

   Lo scrolling tramite mouse rotellati ora e` supportato di serie, ma
   bisogna attivarlo (possibile del restro anche con versioni
   precedenti, tramite le solite due righe di elisp).

   Ora tutte le finestre (intese come suddivisione di un frame) di uno
   stesso frame mostrano un cursore. Quello della finestra attiva e`
   pieno, mentre quello delle altre finestre e` un rettangolo vuoto.

   C'e` un modo secondario molto pratica per evidenziare tutti gli
   spazi (solitamente inutili) che si trovano al termine di una riga
   (M-x customize show-trailing-space).

   E` possibile impostare alcune opzioni direttamente da menu` ed e`
   possibile anche salvarle (quindi senza passare per
   customize). Stile XEmacs.

   Il modo secondario Glasses fa si` che nei sorgenti, i nomi di
   simboli del tipo `pincoPalloPluto' vengano visualizzati come
   `pinco_Pallo_Pluto', ovvero con degli underscore in mezzo. De
   gustibus :-)

   Dato che dired ora usa la versione di `ls' emulata in elisp, e dato
   che esiste per essa un'opzione che permette di avere le
   sottodirectory elencate prima di tutti i file, e` finalmente
   possibile far si` che dired elenchi prima tutte le directory, e poi
   tutti i file.

   Grazie al modulo `zebra', ora ps-print-buffer puo` produrre delle
   stampe con delle righe a sfondo grigio chiaro alternate a righe a
   sfondo bianco, come i moduli continui di una volta (che fa tanto
   anni '70, ma che facilita la lettura a chi preferisce gli alberi
   morti :-)

   E` possibile avere configurazioni di default diverse per il c-mode,
   il c++-mode e il java-mode (i.e. rientri di dimensioni diverse).
   Il c-mode (e i modi derivati da esso quali quelli per c++, java,
   etc.) e` molto piu` sofisticato, ed inoltre possibile
   customizzarselo a sangue tramite `M-x customize-group c' (notare in
   particolare `M-x customize-variable c-offsets-alist').

   C'e` un `artist-mode' che piacera` agli amanti dell'ASCII art,
   visto che permette di disegnare righe, ellissi, rettangoli,
   etc. con il mouse, riempiti o meno. Tra gli strumenti c'e` anche la
   bomboletta spray (a quando un frame con i tool stile the Gimp?).
   Qui c'e` un esempietto:
                                    -------                 /---
             -----------         --/       \--       /------
          --/           \-------/             \/-----
        -/    . - . . --/       \--            \
       /      ++%#%.-/             \           |
      /      ..###*m/               \          /-------+
     / -. .. m%#####|               |         /        |
     |  .. m.+*####*\               /      /+---+      |
     \ . -.#--+#*##**\             /-+-----00000|      |
      \. --- .m-m#%++.--\       /--  |0000000000|      |
       \..  +  %+#%.   .*-------     |0000000000+------+
        +.       .-.     +.-m        |0000000000|
          --\           /-%----------|0000000000|
             -----------             |0000000000+-------
                                     |0000000000|       \---------
                                     +----------+

   C'e` lo screensaver!!! `M-x zone' fa giochini divertenti con lo
   schermo quando emacs e` in attesa di input.

...e altre mille cose che non ho ancora visto. :-)
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts:

  • » Linuxtrent: Novita` in GNU Emacs 21