Dired
Introduzione⌗
In questa sezione voglio inserire tutti quei trucchetti o altro che ci renderanno, o almeno per me, la vita migliore nell’uso di Dired in Emacs.
Limitare i buffer aperti⌗
Non so voi ma io odio avere diecimila buffer aperti contemporaneamente, soprattutto nel caso di Dired, lo trovo proprio scomodo e brutto, ma fortunatamente emacs e la comunity ci forniscono diverse soluzioni.
Una prima soluzione già pronta all’uso è quello di usare il tasto a
al posto del tasto RET
quando si
vuole aprire una directory, questo tasto, in un buffer dired lancia il comando
dired-find-alternate-file
che in pratica uccide il buffer Dired quando si visita il file o la
directory su cui ci troviamo, questo approcci può andare benissimo però, usato così, ad ogni nuova
sessione ed ad ogni primo utilizzo ci informerà che stiamo utilizzando una funzione che è stata
disabilitata e se vogliamo abilitarla o meno, poi ci chiede se vogliamo che rimanga abilita, o meno,
per il resto della sessione corrente.
Un’altro modo, più pratico, per non avere mille buffer aperti e per evitare tutta la sbatta di
prima, è abilitare questa benedetta funzione aggiungendo al nostro file init il seguente codice
(put 'dired-find-alternate-file 'disabled nil)
.
Ok bello, ma se voglio usarla devo cliccare a
invece di RET
e se volessi chiudere il buffer
dired solo quando visito una directory ma non quando visito un file mi dovrei ricordare di usare a
nel primo caso e RET
nel secondo … un bagno di sangue !!!
Hei non preoccupatevi !!! Eccovi la soluzione !!! In caso abbiate una versione di Emacs inveriore alla 28.1, BEH AGGIORNATELA !!! ;P, potete usare questo codice nel vostro file init.
;; Abilitiamo la funzione
(put 'dired-find-alternate-file 'disabled nil)
;; Asegnamogli il taso RET
(define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file)
Anche questa è una soluzione parziale, in quanto non distinguerà tra file e directory, bisognerebbe fare una funzione personalizzata per ovviare a questo problema, ed e’ per questo che vi suggerisco di aggiornare il vostro caro Emacs ad una versione un pò più moderna.
Dalla versione 28.1 in poi possiamo semplicemente impostare una variabile ed il comando, sempre da
inserire nel nostro file init, e’ (setf dired-kill-when-opening-new-dired-buffer t)
.
Finalmente abbiamo risolto ed abbiamo solo i buffer necessari e posiamo navigarli comodamente usando
il tasto RET
che ucciderà il buffer nel caso si tratti di una directory o ne aprirà uno nuovo nel
caso si tratti di un file.