Workshop Emacs per la programmazione statistica
-
Upload
emmanuele-somma -
Category
Technology
-
view
1.545 -
download
0
description
Transcript of Workshop Emacs per la programmazione statistica
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Emacs per la programmazione statistica
Emmanuele [email protected]
Supporto Informatico per l’Area RicercheBanca d’Italia
14 Gennaio 2008
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 1/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Piano della presentazione
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 2/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Introduzione
L’analisi statistica puo essere considerata una forma diprogrammazione dei computer: oltre alla gestione della fase ditrattamento dei dati, spesso si scrivono programmi in linguaggidi programmazione e si eseguono processi attraverso interfacceutente su linea di comando.
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 3/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Introduzione
Emacs e particolarmente versato nel supportare l’utente intutte queste attivita:
Trattamento dei dati Strumenti per la gestione dei file testualicontenenti dati (Ricerche, Sostituzioni, Colonne,Macro, ...)
Scrittura dei programmi Modi di supporto alla scrittura delcodice (fortran-mode, c-mode, matlab-mode, ...)
Gestione dei processi Interazione con le interfacce a linea dicomando (shell-mode, Emacs Speaks Statistics)
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 4/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Trattamento dei dati
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 5/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Ripetizione dei comandi
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 6/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Come ripetere un comando
Un qualsiasi comando Emacs puo essere ripetuto numerosevolte utilizzando un argomento numerico prefisso precedutodalla combinazione C-u oppure il tasto ESC o M-[numero]Ad esempio:C-u 60 - Inserisce 60 caratteri menoM-10 C-x C-e Esegue 10 volte l’ultima macro registrataESC 60 DOWN Posiziona il cursore 60 righe sotto
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 7/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Valore di default di C-u
Se non e presente un argomento numerico la combinazione C-uha il seguente effetto:C-u 4 volteC-u C-u 4 volte per 4 volte = 16 volteC-u C-u C-u 4 volte per 4 volte per 4 volte = 64 volte. . .
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 8/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Ripetizioni successive
La combinazione di tasti C-x z ripete il comandoprecedentemente introdotto. Continuando a premere z ripeteulteriormente, ad esempio:
4.75;9.97;7.48;9.39;1.00;2.15;3.72;9.99;2.32;3.12
C-u 5 C-d C-x z z cancella prima un valore e poi altri due
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 9/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Ricerca delle informazioni
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 10/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Le espressioni regolari
Alcune persone, quando affrontano un problema,pensano: “Lo so, finiro per usare le espressioniregolari”. A questo punto, hanno due problemi.Jamie Zawinski, in comp.lang.emacs
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 11/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
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) WEMS 2008 14/01/2008 12/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
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) WEMS 2008 14/01/2008 13/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
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) WEMS 2008 14/01/2008 14/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Alcuni esempi
Sostituire i missingM-C-s <RET> ; *\. *; <RET> ;NaN; <RET> !
Selezione sul file dei BOND (AMETISTA)BOP.*\(TRENTO\|PADOVA\|UDINE\).+2003.\{4\}$
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 15/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Cosa fare delle espressioni regolari
Contare M-x how-may
Ottenere una selezione di in un nuovo buffer M-x occur(global-set-key (kbd "C-c o") ’occur)
Ricercare su molti buffer contemporaneamenteM-x multi-occur <RET> buffer <RET> regexp <RET>
selezionado i nomi dei buffer con un regexpM-x multi-occur <RET> buffregexp <RET> regexp <RET>
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 16/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Rettangoli
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 17/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
I rettangoli
I rettangoli di Emacs sono le nostre colonne.Per selezionare un rettangolo bisogna:
1 Posizionare il cursore sul primo carattere della prima rigaed usare il comando di attivazione della marcaturaC-<SPAZIO>
2 Dopo spostarsi all’ultima riga e posizionarsi nel primocarattere dopo la zona da selezionare e su quel punto:
3 usare il comando scelto
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 18/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Operazioni sui rettangoli
Tagliarla (ma salvarla nel kill-ring)C-x r k (kill-rectangle)
Cancellarla C-x r d (delete-rectangle)
Incollarla C-x r y (yank-rectangle)
Inserirla (vuota)C-x r o (open-rectangle)
Inserire una stringaC-x r t (string-rectangle)
Ripulire una zonaC-x r c (clear-rectangle)
Eliminare spazi bianchiM-x delete-whitespace-rectangle
Inserire una stringa in tutte le righeM-x string-insert-rectangle
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 19/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Sostituzioni
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 20/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Sostituzione non condizionale
Il comando generico di sostituzione non condizionaleM-x replace-string <RET> RICERCA <RET> SOST <RET>
Sostituire x con yM-x replace-string <RET> x <RET> @TEMP@ <RET>M-< M-x replace-string <RET> y <RET> x <RET>M-< M-x replace-string <RET> @TEMP@ <RET> y <RET>
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 21/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Sostituzione con espressioni regolari
Il comando generico di sostituzione con espressioni regolarieM-x replace-regexp <RET> REGEXP <RET> SOST <RET>
La stringa di sostituzione puo contenere alcuni comandispeciali:\& intero match\1, \2, ... match nel gruppo di parentesi\# numero di match sostituiti\? sostituzione manuale
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 22/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Sostituzione programmabile
Come scambiare x con y utilizzando una espressione EmacsLisp
M-x replace-regexp <RET> \(x\)\|y <RET>\,(if \1 "y" "x") <RET>
Scambiare il tipo BOC con BOP
M-x replace-regexp <RET>\(BOC\)\|BOP <RET>\,(if \1 "BOP" "BOC") <RET>
Aggiungere al termine della riga una etichetta ABC000n dove eil numero di rigaM-x replace-regexp <RET> ^.\{0,72\}$ <RET>\,(format "%-72sABC%05d" \& \#) <RET>
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 23/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Sostituzione con richiesta query-replace
Il comando generico di sostituzione con espressioni regolarinella modalita con richiesta eM-x query-replace-regexp ( C-M-% )
Nella modalita di sostituzione la tastiera ha il seguentefunzionamento:<SPC> accetta<DEL> rifiuta, rivedi la sostituzione<RET> esci dall’operazione. una sola! tutte^ ritorna indietroC-r modalita di edit ricorsivo
(esci con C-M-c)e edita la sostituzione
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 24/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Macro di tastiera
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 25/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Macro di tastiera: definizione
E possibile registrare le combinazioni di tasti in modo daautomatizzare le operazioni ripetitiveC-x ( inizia la definizioneC-x ) termina la definizioneC-u C-x ( esegui e poi aggiungiC-u C-u C-x ( aggiungi senza eseguireC-x q chiedi conferma
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 26/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Macro di tastiera: gestione
C-x e esegui l’ultima macro definitaC-x C-k r apply-macro-to-region-lines
esegui la macro per ogni riga della regioneC-x C-k n kmacro-name-last-macro
Dai un nome all’ultima macroC-x C-k b kmacro-bind-to-key
Assegna ad una combinazioneM-x insert-kbd-macro
Presenta la definizione della macro in unbuffer
C-x C-k C-e kmacro-edit-macroEdita l’ultima macro definita
C-x C-k e NAME edit-kbd-macroEdita la macro NAME
C-x C-k l Edita il lossage (100 caratteri)
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 27/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Macro di tastiera: edit passo passo
E possibile eseguire una macro passo-passo con il comandoC-x C-k SPC (kmacro-step-edit-macro).Questo permette anche di fare un editing selettivo della macromentre si sta eseguendo ridefinendo la tastiera in questo modo:SPC, y esegui il comando corrente e avanzan, d, DEL salta il comando corrente e cancellalof salta il comando ma non cancellarloTAB esegui tutti i comandi simili successivic continua fino alla fineC-k cancella il resto della macroq termina l’editing senza modificheI KEY... inserimento di una combinazione di tastiR KEY... sostituzione di una combinazione di tasti
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 28/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Scrittura dei programmi
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 29/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
matlab-mode
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 30/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
matlab-mode
il matlab-mode e un modo maggiore per fare l’editing deidot-file contiene:
editing commentare e scommentare, indentareregioni di testo, completare simboli
navigazione spostarsi tra i comandi, le funzioni e i blocchiinserimento template di funzioni, di blocchi IF...END,
SWITCH...END, CASE,...colorazione del codice secondo la sintassi e verifica
elettrica delle parentesi
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 31/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Matlab-Mode: comandi di editing
C-c ; Commentare/ScommentareC-c C-f Impaginare i commentiC-c C-q Impaginare codice e commentiM-q IndentareM-TAB Completamento dei simboli MATLAB
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 32/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Matlab-Mode: Comandi di navigazione
M-a M-e Inizio e fine di un comandoC-M-a C-M-e Inizio e fine di una funzioneC-M-f C-M-b Dopo o prima di un blocco
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 33/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Matlab-Mode: Comandi di inserimento template:
C-c C-c F Definizione di funzioneC-c C-c i Blocco IF ENDC-c C-c I Blocco IF ELSE ENDC-c C-c f Blocco FOR ENDC-c C-c w Blocco WHILE ENDC-c C-c s Blocco SWITCH ENDC-c C-c t Blocco TRY...CATCH...ENDC-c C-c c Una condizione CASE in uno SWITCH.C-c C-c e Un END che chiude un precedente comando
con un ARG opzionale reindenta il codiceC-c C-c ’ Converte una regione in una stringa corretta-
mente virgolettata
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 34/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Altri major-mode
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 35/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Altri ’major-mode’
Sono disponibili molti altri major-mode per tutti i principalilinguaggi di programmazione(C,C++,Java,FORTRAN,F90,Python,Perl,ecc..), ma anche:
speakez-mode speakez.el Spakeasy (parziale)fame-mode fame.el FAME (parziale)
Il progetto Emacs Speaks Statistics fornisce major-modeper i seguenti linguaggi: R/S, SAS, stata,SAS, LispStat, ecc...
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 36/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Gestione dei processi
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 37/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
shell-mode
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 38/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Comandi di shell
Quando i programmi statistici hanno la possibilita diutilizzare una interfaccia a linea di comando possonosempre essere chiamati dallo shell-mode di Emacs. Siavranno gratis tutte le capacita di editing propriedell’editor (che gia cosı sono spesso molto maggiori diquelle dei programmi d’interfaccia grafica di molti diquesti prodotti).
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 39/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Comandi di shell
E comunque possibile interagire con la shell anche direttamenteda un buffer (senza lanciare un processo dedicato):M-! shell-command
Esegue un comando di shellM-| shell-command-on-region
...su una regione di testoC-u M-!C-u M-! Ritorna il risultato direttamente nel buffer
Per definire quale shell usare si deve configurare la variabileshell-file-name. Ad esempio inserendo in .emacs ilcomando:(setq shell-file-name "/bin/bash")
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 40/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Comandi singoli di shell
E possibile inserire la seguente riga in un documento
Nel buffer di lavoro
getbiss ’’TCNUSA’’ ; disp TCNUSA
Selezionarla come regione ed usare la seguente combinazione ditasti
Comando emacs
M-| fame -e
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 41/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
La shell inferiore
Per chiamare un processo di shell interattiva all’interno di unbuffer si possono usare i comandi:M-x shell Shell di sistema
(bash su unix,(CMD su MSDOS, ...)
M-x eshell Emacs shell programmata in Emacs Lisp efunziona uguale in tutti i sistemi
Per definire quale shell usare si deve configurare la variabileshell-file-name. Ad esempio inserendo in .emacs ilcomando:(setq explicit-shell-file-name "/bin/bash")
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 42/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Comandi di shell
shell su Mac OS X
bash-3.2$
eshell su Mac OS X
Welcome to the Emacs shell/Users/exedre/Work/0-ufficio/Corsi/Emacs/WEMS $
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 43/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Il buffer della shell
E possibile chiamare numerose shell usando un argomentoprefisso al comando shell
C-u M-x shell
I nomi scelti da Emacs per i buffer saranno *shell*:<n>, ma epossibile indicare un proprio nome sia al momento dell’aperturache utilizzando il comando
M-x rename-buffer
L’inizializzazione della shell avviene tramite il file~/.emacs_SHELL o ~/.emacs.d/init_SHELL.sh (ad esempio~/.emacs_bash o ~/.emacs.d/init_bash.sh)
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 44/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Ridefinizione tastiera nel processo di shell
<RET> Lancia il comandoC-c C-d Termina la shellC-d Cancella il prossimo carattereC-c C-u Cancella la linea di comandoC-c C-w Cancella una parolaC-c C-c Cancella il comandoC-c C-z Blocca il comandoC-c C- Termina il comandoC-c C-o Elimina l’ultimo outputC-c C-r Vedi outputC-c C-y Copia inputM-p, M-↑ Input precedenteM-n, M-↓ Input successivo<TAB> Completamento dinamico del comando
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 45/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Emacs Speaks Statistics ess-mode
1 Trattamento dei datiRipetizione dei comandiRicerca delle informazioniRettangoliSostituzioniMacro di tastiera
2 Scrittura dei programmimatlab-modeAltri major-mode
3 Gestione dei processishell-modeEmacs Speaks Statistics ess-mode
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 46/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Caratteristiche di ESS
indentazione sintattica
evidenziazione dipendente dal contesto
valutazione parziale del codice
completamento degli oggetti
verifica del codice sorgente
interazione con i processi
esecuzione di processi su computer remoti
editing e riuso delle trascrizioni
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 47/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Utilizzo di ESS
I modi sorgente
Il processo inferiore ESS
La gestione delle trascrizioni
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 48/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Linguaggi gestiti da ESS
La famiglia dei linguaggi S (tra cui GNU R)
SAS
stata
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 49/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Perche ESS
perche alcuni linguaggi non hanno un ambiente proprio
quando ce l’hanno e veramente poco efficace
quando e efficace e incompatibile
E comunque Emacs e meglio!
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 50/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
ESS per l’interazione con i processi
Attivazione del processo ESSM-x R GNU RM-x SAS SASM-x stata stata
Attivare piu processi simultaneiC-u M-x RM-x ess-request-a-process
Processi su computer remotiM-x sshremote$ stataM-x ess-remote
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 51/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
ESS per l’interazione con i processi
Cambiare l’azione di partenzaM-x set-variable ess-ask-for-ess-directory(setq ess-ask-for-ess-directory nil)
Configurazione(setq ess-ask-about-transfile ’journal.St’)C-u M-x RM-x ess-request-a-process
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 52/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
ESS per l’interazione con i processi
E modellato sullo shell-mode da cui trae molti comandi tra cui:
Comandi ed errori<RET> inferior-ess-send-inputC-c C-w, M-< backward-kill-wordC-c C-u comint-kill-inputC-c C-a comint-bol
Completamento dei nomi<TAB> comint-dynamic-completeM-? ess-list-object-completion
Nel caso di R completa anche i nomi dei campi dellestrutture, ad esempio: struttura$campo
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 53/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
ESS per manipolare le trascrizioni
M-{ comint-previous-inputM-} comint-next-inputC-c C-e comint-show-maximum-outputC-c C-r comint-show-outputC-c C-o comint-kill-output
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 54/55
WEMS 2008
E. Somma
Trattamentodei dati
Ripetizione deicomandi
Ricerca delleinformazioni
Rettangoli
Sostituzioni
Macro di tastiera
Scrittura deiprogrammi
matlab-mode
Altrimajor-mode
Gestione deiprocessi
shell-mode
Emacs SpeaksStatisticsess-mode
Grazie dell’attenzione
E. Somma (SIA-BdI) WEMS 2008 14/01/2008 55/55