sabato 19 febbraio 2011

Emacs: aprire il file manager nella cartelle del buffer corrente

In Emacs è presente una modalità chiamata Dired che funge da file manager. Tuttavia in qualche caso si potrebbe voler aprire il file manager dell'ambiente desktop in uso (o comunque un file manager esterno) direttamente nella cartella in cui si trova il file attualmente modificato (o meglio, il buffer corrispondente). Per fare ciò si può aggiungere il seguente codice all'interno del proprio file di inizializzazione (a meno che questa funzione non sia già presente in Emacs e io non sia in grado di trovarla):
(defun open-buffer-path ()
  "Run Nautilus on the directory of the current buffer."
  (interactive)
  (shell-command (concat "nautilus " default-directory)))
Questo codice definisce la funzione open-buffer-path che aprirà il file manager Nautilus (il predefinito di GNOME) nella cartella predefinita (che normalmente corrisponde alla cartella in cui si trova il file in uso, oppure alla propria home se il buffer aperto non corrisponde a un file). Se si vuole usare un file manager diverso basta sostituire il comando che compare come argomento di concat (e magari anche il Nautilus che compare nel rigo di descrizione della funzione).

Se lo si desidera si può associare una combinazione di tasti a questa funzione aggiungendo al proprio file di inizializzazione:
(global-set-key (kbd "<M-f3>") 'open-buffer-path)
Con questo codice verrà associata la combinazione M-f3 alla funzione open-buffer-path, se si vuole usare una combinazione diversa basta sostituire l'occorrenza di M-f3 nel codice precedente.

Questo post prende spunto da http://zhangda.wordpress.com/2010/02/03/open-the-path-of-the-current-buffer-within-emacs/ in cui è definita una funzione per aprire il file manager Explorer in Windows. A questo proposito trovate un codice alternativo qui: http://www.factsandpeople.com/facts-mainmenu-5/2-editor-emacs/80-switching-between-windows-explorer-and-emacs.

6 commenti:

  1. Grazie mille per questa info... sto adorando emacs in questo periodo, sopratutto orgmode :D .. un vero spettacolo !

    RispondiElimina
  2. Anche io sto iniziando a scoprire le grandi potenzialità della Org Mode. Per esempio la nuova formattazione delle parti di codice in questo blog (con l'evidenziazione della sintassi) è tutto merito della Org Mode: scrivo il codice ed esporto in formato HTML. Se trovassi del tempo vorrei scrivere un post su come fare precisamente.

    Inoltre se usi LaTeX potrebbe interessarti anche quest'altra funzione che ho già descritto sul forum del GUIT: http://www.guit.sssup.it/phpbb/viewtopic.php?t=9632 (anche per questa vorrei scrivere un post qui sul blog).

    Ciao!

    RispondiElimina
  3. No uso ruby ultimamente :D ... cmq se pensi di pubblicare qualche tips/tutorial su emacs , sono piu' che felice ( x OrgMode sono in attesa che mi arrivi il manuale, almeno in qualche modo contribuisco al progetto [visto che non posso fare altro])

    RispondiElimina
  4. Di tanto in tanto pubblico qualcosa, per ora ho parlato della Autocomplete Mode (2 post), di Tramp, di AUCTeX e poi questo post. Sarebbe mia intenzione anche spiegare come installare nuove estensioni usando il gestore che verrà introdotto nella versione 24 (o 24.1) di Emacs che però funziona bene anche nella 23.2 (cioè la versione che uso attualmente). Spero di riuscire a farlo entro poche settimane. :-)

    Ciao!

    RispondiElimina
  5. che nuovo gestore? x ora uso il solito elpa con il starterkit di technomancy
    https://github.com/technomancy/emacs-starter-kit
    con alcune modifiche (+ o meno volute :P:P:P)

    Ora che ho trovato qualcuno in italiano che conosce emacs ti stressero' hehehehehehehe

    RispondiElimina
  6. Si tratta sostanzialmente di ELPA. Puoi scaricare il package.el di Emacs dal repo git di Emacs: http://git.savannah.gnu.org/cgit/emacs.git/plain/lisp/emacs-lisp/package.el.

    È vero, si trova poca documentazione in italiano su Emacs, anche i blog sembra che scarseggino (ne trovo solo qualche post sporadico, come faccio io d'altra parte). Per quanto riguarda i blog (in lingua inglese), trovo molto comodo questo aggregatore: http://planet.emacsen.org/ (in particolare su emacs-fu ci sono spesso trucchi molto interessanti).

    Ciao!

    RispondiElimina

I commenti inseriti vengono lasciati dall'autore degli stessi accettandone ogni eventuale responsabilità civile e penale.
Il curatore del blog si riserva la possibilità di eliminare messaggi contenenti frasi offensive o spam.