44
WEDI 2009 E. Somma Operazioni fondamentali Operazioni sui file Ricerche Image-Dired Dired-X Gestione dei File con Emacs Emmanuele Somma [email protected] Supporto Informatico per l’Area Ricerche Banca d’Italia 27 Febbraio 2009 E. Somma (SIA-BdI) WEDI 2009 27/02/2009 1/44

Workshop Gestire i File con Emacs

Embed Size (px)

DESCRIPTION

Gestione dei File con EmacsSlides workshop c/o Area Ricerca Banca d'Italia27 Febbraio 2009

Citation preview

Page 1: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Gestione dei File con Emacs

Emmanuele [email protected]

Supporto Informatico per l’Area RicercheBanca d’Italia

27 Febbraio 2009

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 1/44

Page 2: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Piano della presentazione

1 Operazioni fondamentali

2 Operazioni sui file

3 Ricerche

4 Image-Dired

5 Dired-X

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 2/44

Page 3: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Introduzione

La gestione dei file e una delle operazioni piu comuni sulcomputer. E una delle caratteristiche distintive delle differentiinterfacce utente testuali o grafiche. Che, detto in altre parole,significa: e diversa da sistema a sitema, da interfaccia adinterfaccia, da macchina a macchina.Ma... noi conosciamo la soluzione

EMACS

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 3/44

Page 4: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Caratteristiche

Il modo Dired Directory Editor di Emacs e un ottimofile-manager per:

Navigazione nelle directory Finestre unica per ogni directory omolteplici directory su un singolo buffer,informazioni visualizzate a scelta dell’utente

Gestione dei file Copiare, cancellare, rinominare/muovere,collegamenti (alias), chmod, chgrp, chown,timestamp, stampare, comprimere, caricare,byte-compilare, visitare, vedere, marcatureesoteriche, ricercare, comparare

Gestione dei file particolari auto-salvataggi, backup,file-spazzatura

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 4/44

Page 5: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

...ed anche

Gestione dei processi Esecuzione di comandi di shell

Gestione dei nomi Trasformazioni in maiuscolo, minuscolo,generiche in base ai REGEXP

Gestione delle ricerche sul nome del file, sul contenuto dei file,generiche, sul database dei file

Modifica diretta della directory

Gestione delle immagini vista delle miniature, gestione dei tag,manipolazione dei jpg

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 5/44

Page 6: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Storia di Dired

Dired e stato inventato nel 1974 allo Stanford ArtificialIntelligence Laboratory (SAIL) come programma stand-alone daStan Kugell.[1]. Fu in seguito incorporato in Emacs ed ediventato la base per tutti i moderni sistemi di visualizzazionedelle directory dei file basati su finestre [2] (da Wikipedia)

1 Kugell, Stanley G. (1974). SAILDART/2006-06. StanfordArtificial Intelligence Lab DART (Dump and RestoreTechnique) Archive. Retrieved on 2007-11-16.

2 SAILDART/2006-06. Stanford Artificial Intelligence LabDART Archive. Retrieved on 2007-11-16.

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 6/44

Page 7: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Operazioni fondamentali

1 Operazioni fondamentali

2 Operazioni sui file

3 Ricerche

4 Image-Dired

5 Dired-X

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 7/44

Page 8: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Entrare nel modo Dired

C-x d diredC-x C-f find-fileC-x 4 d dired-other-windowC-x 5 d dired-other-frameC-u C-x C-d

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 8/44

Page 9: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Muoversi in Dired

C-n, n, <SPC> next-lineC-p, p prev-linei, C-u i, 0 i dired-maybe-insert-subdirl dired-do-redisplay$ dired-hide-subdirM-$, ESC $ dired-hide-all+ dired-create-directory

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 9/44

Page 10: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Muoversi in Dired

C-x [ next-pageC-x ] prev-pageC-M-n dired-next-subdirC-M-p dired-prev-subdirC-M-u dired-tree-upC-M-d dired-tree-down< dired-prev-dirline> dired-next-dirlineC-u k dired-do-kill-lines∧ dired-up-directory

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 10/44

Page 11: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Aggiornare il buffer Dired

g revert-bufferl dired-do-redisplayk dired-do-kill-liness dired-sort-toggle-or-editC-u s SWITCHES dired-listing-switchesw dired-copy-filename-as-kill

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 11/44

Page 12: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Visitare i file

f, RET,e dired-find-fileVisita il file

o dired-find-file-other-windowVisita il file in un’altra finestra

C-o dired-display-fileVisualizza il file in un’altra finestra

v dired-view-fileVisualizza il file

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 12/44

Page 13: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Cancellazione dei file

d dired-flag-file-deletionMarca per la cancellazione

u command dired-unmarkElimina la marcatura

DEL dired-unmark-backwardcome u ma prima si sposta alla riga precedente

x dired-do-flagged-deleteEsegue l’operazionedired-recursive-deletes(t/nil) attiva la cancellazione ricorsiva

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 13/44

Page 14: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Marcature generiche e flags

* m dired-markMarca con *

N * m dired-markMarca N file con *

* * dired-mark-executablesMarca i file eseguibili

* @ dired-mark-symlinksMarca i link simbolici

* / dired-mark-directoriesMarca le directory

* . dired-mark-extensionMarca i file con determinate estensioni

* O dired-mark-omittedMarca i file omessi

* s dired-mark-subdir-filesMarca tutto (tranne . e ..)

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 14/44

Page 15: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Marcature generiche e flags

DEL, * DEL dired-unmark-backwardRimuove una marca

* !, U dired-unmark-all-marksRimuove tutte le marche

* ? CHAR, M-DEL dired-unmark-all-filesRimuove le marche di CHAR1 * ? D

* C-n dired-next-marked-filePassa al prossimo file marcato

* C-p dired-prev-marked-filePassa al precedente file marcato

t, * t dired-toggle-marksScambia i file marcati

* c OLD NEW dired-change-marksScambia le marche* c D t * c SPC D * c t SPC

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 15/44

Page 16: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Marcature multiple

# dired-flag-auto-save-filesMarca gli auto-save

∼ dired-flag-backup-filesMarca i file di backup

& dired-flag-garbage-filesMarca i file-spazzaturadired-garbage-files-regexpDefinisce i nomi dei file-spazzatura

. dired-clean-directoryMarca i backup numerici

% d REGEXP dired-flag-files-regexpMarca i file secondo il REGEXP

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 16/44

Page 17: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Marcature multiple

% m dired-mark-files-regexp* % dired-mark-files-regexp

Marca i file definiti dal REGEXP% d dired-flag-files-regexp

Marca per la cancellazione% g dired-mark-files-containing-regexp

Marca i file secondo il contenuto

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 17/44

Page 18: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Espressioni Regolari

Le espressioni regolari (regular expressions) sono descrizioniastratte di stringhe di caratteri.Ad esempio, la espressione regolare

\([ao]+\)\1

descrive una classe infinita di stringhe quali:

aa, aoao, oooo, aaoaao, oaoaoaaooaoaoaao, ...

ovvero una qualsiasi stringa contenente a o o, immediatamenteseguita da una ripetizione di se stessa.

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 18/44

Page 19: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Sintassi delle espressioni regolari

Semplice match helloCaratteri speciali $ ^ . ∗ + ? [ ] \Insieme di caratteri [...] [^...]Ripetizioni \{N\}, \{N,M\}Raggruppamenti \( \)Riferimento \1 \2 \3 ...Alternative \|Gruppi timidi \(?: ... \)Stringa vuota \‘ \’ \= \b \B \< \>Costituenti \w \W \sC \SC C=... \cC \CC

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 19/44

Page 20: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Esercizi sulle espressioni regolari

Trovare in un testo “un” o “uno” o “una”un\(\|o\|a\)Trovare in un testo le parole “Luna” o “luna”.\(L\|l\)unaTrovare parole con tre consonanti di fila p.es. “scrivere”,“aspro” [bcdfghjklmnpqrstvwxyz]{3}Trovare parole con tre consonanti all’inizio di parola.\b[^aeiou]{3}Cercare parole con vocali identiche ripetute (p.es. “aree”,“portaauto”)\([aeiou]\)\1Trovare parole palindrome di lunghezza 4 o 5 (p.es.“abba”, “radar”) \b\(.\)\(.\).?\2\1\bTrovare parole ripetute (p.es. “alto alto”)\(\b\w+\b\)\s\1

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 20/44

Page 21: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Operazioni sui file

1 Operazioni fondamentali

2 Operazioni sui file

3 Ricerche

4 Image-Dired

5 Dired-X

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 21/44

Page 22: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Come specificare i file

1 Con un argomento prefisso

2 Tutti i file marcati con *

3 sul file corrente

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 22/44

Page 23: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Come specificare la destinazione

Nelle operazioni sui file la directory di destinazione e la stessadi quella di partenzaA meno che non venga definita la variabile:

M-x set-variable dired-dwin-target t

In questo modo se esistono due dired la directory didestinazione e quella dell’altro dired.In questo modo e possibile realizzare un file-commander

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 23/44

Page 24: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Operazioni sui file/directory

C NEW dired-do-copy cpdired-copy-preserve-time cp -pdired-recursive-copies cp -r

D dired-do-delete rmR NEW dired-do-rename mvH NEW dired-do-hardlink lnS NEW dired-do-symlink ln -sM SPEC dired-do-chmod chmodG GRP dired-do-chgrp chgrpO OWN dired-do-chown chown

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 24/44

Page 25: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Operazioni sui file/directory

T STAMP dired-do-touch touchP CMD dired-do-print lpr

lpr-commandlpr-switches

Z dired-do-compress gzipL dired-do-loadB dired-do-byte-compileA REGEXP dired-do-searchQ REGEXP TO

query-replace-regrexp

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 25/44

Page 26: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Comandi di shell

!, X(dired-do-shell-command)! wc -l *! wc -l! cp * /tmp! grep pippo *! for file in * ; do uuencode \"$file" "$file" >"$file".uu; done

g

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 26/44

Page 27: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Trasformazione dei nomi

% u dired-upcase% l dired-downcase% R FROM TO dired-do-rename-regexp% C FROM TO dired-do-copy-regexp% H FROM TO dired-do-hardlink-regexp% S FROM TO dired-do-symlink-regexp

\&, \1. . .\nEsempi:

% R ^.*$\ <RET> x-\& <RET>% R ^x-\(.*\)$ <RET> \1 <RET>0 % R% m FROM <RET> % R <RET> TO <RET>

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 27/44

Page 28: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Comparazione dei file

= dired-diffM-= dired-backup-diff

dired-compare-directories(> mtime1 mtime2)

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 28/44

Page 29: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Ricerche

1 Operazioni fondamentali

2 Operazioni sui file

3 Ricerche

4 Image-Dired

5 Dired-X

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 29/44

Page 30: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Ricerche dentro Dired

M-x find-name-dired DIR <RET> WILDCARD <RET>~/ <RET> *.txt <RET>

M-x find-grep-dired DIR <RET> REGEXP <RET>~/ <RET> .*corn <RET>

M-x grep-find DIR <RET> REGEXP <RET>~/ <RET> .*corn <RET>

% g REGEXP~/ <RET> .*corn <RET>

M-x find-dired?!?

M-x set-variable find-ls-option -ld?!?

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 30/44

Page 31: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Ricerche dentro Dired con locate

M-x locate STRING <RET>txt

M-x locate-with-filter STRING <RET> FILTER <RET>txt <RET> exedre <RET>

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 31/44

Page 32: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Editing del buffer Dired

[Immediate]→[File Names]M-x wdired-change-to-wdired-mode

C-c C-c (wdired-finish-edit)M-x set-variable

wdired-allow-to-change-permission t

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 32/44

Page 33: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Image-Dired

1 Operazioni fondamentali

2 Operazioni sui file

3 Ricerche

4 Image-Dired

5 Dired-X

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 33/44

Page 34: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Image-Dired

C-t d (image-dired-display-thumbs)C-t t (image-dired-tag-files)<RET> (image-dired-flag-thumb-original-file)<SPC> (image-dired-display-next-thumbnail-original)<DEL> (image-dired-display-previous-thumbnail-original)C-<RET> (image-dired-thumbnail-display-external)

M-x set-variable image-dired-external-viewerd (image-dired-flag-thumb-original-file)C-d (image-dired-delete-char)

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 34/44

Page 35: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Image-Dired: Tags

M-x set-variable image-dired-db-file~/.emacs.d/image-dired/.image-dired_dbC-t t (image-dired-tag-files)C-t f (image-dired-mark-tagged-files)C-t d (image-dired-display-thumbs)C-t c (image-dired-dired-comment-files)t t (image-dired-tag-thumbnail)t r (image-dired-tag-thumbnail-remove)

Manipolazioni JPG:L (image-dired-rotate-original-left)R (image-dired-rotate-original-right)

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 35/44

Page 36: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X

1 Operazioni fondamentali

2 Operazioni sui file

3 Ricerche

4 Image-Dired

5 Dired-X

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 36/44

Page 37: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X: Omissione dei file

Agisce sui file e non sulle directory

Prendere o lasciare, o c’e o non c’e

Puo essere attivata automaticamente

I file marcati NON possono essere omessi

M-o, dired-omit-mode* O, dired-mark-omittedM-x set-variable dired-omit-mode nil/1

Local Variables:dired-omit-mode: tEnd:

dired-omit-here-alwaysdired-omit-files: "^#\\|\\.$"dired-omit-localp, no-dir, nil, tdired-omit-marker-char, (C-o)

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 37/44

Page 38: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X: Variabili locali per le directory Dired

dired-local-variables-file (default: .dired )Local Variables:dired-actual-switches: "-lat"dired-omit-mode: tEnd:

dired-enable-local-variables (t)

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 38/44

Page 39: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X: Shell

(setq dired-guess-shell-alist-user(list(list "\\.foo$" "FOO-COMMAND");; fixed rule;; possibly more rules...(list "\\.bar$";; rule with condition test

’(if CONDITION"BAR-COMMAND-1"

"BAR-COMMAND-2"))))

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 39/44

Page 40: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X: Dired Virtuale

(setq auto-mode-alist (cons ’("[^/]\\.dired$" .dired-virtual-mode)auto-mode-alist))

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 40/44

Page 41: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X:

F, dired-do-find-marked-filesdired-mark-extensiondired-flag-extension

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 41/44

Page 42: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X: M-( dired-mark-sexp

inode, s, mode, nlink, uid, gid, size, time,name, sym

Es:(equal 0 size)(not (file-exists-p (concat name "c")))

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 42/44

Page 43: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-X

Dired-X: Dired Jump

C-x C-j (dired-jump)C-x 4 C-j (dired-jump-other-window)

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 43/44

Page 44: Workshop Gestire i File con Emacs

WEDI 2009

E. Somma

Operazionifondamentali

Operazioni suifile

Ricerche

Image-Dired

Dired-XGrazie dell’attenzione

E. Somma (SIA-BdI) WEDI 2009 27/02/2009 44/44