• Non ci sono risultati.

(2)Unix: l’Editor VI - 3 CASO NUOVO FILE

N/A
N/A
Protected

Academic year: 2021

Condividi "(2)Unix: l’Editor VI - 3 CASO NUOVO FILE"

Copied!
4
0
0

Testo completo

(1)

Unix: l’Editor VI - 1 Corso di Fondamenti di Informatica 2CdL Ingegneria InformaticaIng. Franco Zambonelli

IL SISTEMA OPERATIVO UNIX:L’EDITOR VI

Lucidi Realizzati in Collaborazione con:

Prof. Letizia LeonardiUniversità di Modena

Prof. Antonio CorradiUniversità di Bologna

Prof. Cesare StefanelliUniversità di Ferrara

Unix: l’Editor VI - 2 EDITOR STANDARD DI UNIX: VI

vi (VIsual display editor)•

è l’editor standard di Unix

non ba

sato sul concetto di WINDOW (finestra)

È un Editor a linee, non full-screen ma usabile da un qualunque tipo di terminale

Vi ragiona a stati:1) lo stato comandi display (full screen)2) lo stato riga comandi (comando)3) lo stato di input (input)

Diagramma a stati di VI:

FULL SCREENINPUT

COMANDO vi NOMEFILE a, A, i, I, o, O

<ESC>: /<CR>

w, wq q!

legenda: Maiuscole prima del cursore, minuscole dopo il cursore

Per invocarlo:vi <nomefile>il file di nome <nomefile> viene aperto se esiste, o creatoaltrimenti. Ha inizio l’editing e l’accettazione dei comandi.

(2)

Unix: l’Editor VI - 3 CASO NUOVO FILE



vi prova.c

<=== cursore

~~~~~~~

"prova.c" [New file] RIGACOMANDI<=== ~

CASO FILE ESISTENTE



vi prova.c

"prova.c" 9 lines, 138 characters RIGACOMANDI <=== # include <stdio.h>main(argc, argv)int argc;char ** argv;{int i;for (i = 0; i < argc; i++)printf("argv[%d] = %s\n", argv[i]);}~

Nel caso di file lungo, viene visualizzata la parte iniziale

Il file è considerato composto da un insieme di linee,ciascuna completata dal terminatore di linea (<CR>)

Ogni linea è formata da parole e da caratteri, e ci sonocomandi adatti per ogni possibile azione.

Unix: l’Editor VI - 4 COMANDI di INPUTSi passa da stato comandi a stato input nelle diverseposizioni :

<CR> AOI

o

ia

COMANDI DI SCHERMOMOVIMENTO

di un carattere h j

 ki<blank> carattere successivo<backspace>carattere precedente

di una parolaw (dopo), b (prima)e (fine della parola corrente)

di una riga<CR> o + (prossima)- (inizio della riga precedente)$ (fine della riga corrente)

<CR> A-

+ <CR>

0b Pippo Pluto Paperino

wej k

h

l

Alcuni comandi possono essere preceduti da un numeroche indica quante volte il comando deve essere ripetuto

Ad esempio:3wsposta il cursore in avanti di 3 parole

(3)

Unix: l’Editor VI - 5 VISUALIZZAZIONEvisualizza videata seguente<CTRL> F (indicato ^F)visualizza videata precedente<CTRL> B (indicato ^B)rinfresca il buffer(corrente)<CTRL> L (indicato ^L) CANCELLAZIONEdi un caratterex (corrente), X (prima)di una paroladw (dopo), db (prima)di una rigadddi tutto il resto della riga corrented$ o D

<CR>Pippo Pluto Paperino

X dwdbddl

x

SOSTITUZIONEdi un carattere r <ch>di un testo al posto del carattere R testo <ESC>di un testo al posto della parola corrente cw testo <ESC>

AZIONI VARIEripete l'ultima azione.annulla l'ultima azione eseguita(undo)uannulla tutte le azioni sulla lineaUunisce la linea corrente con la seguenteJripete la ricerca in avantinripete la ricerca all'indietroN

Unix: l’Editor VI - 6 COMANDI con uso di BUFFERIZZAZIONE

Esiste un buffer corrente senza nome, in cui sono anchememorizzate le ultime parti distrutte

copia la riga corrente in un buffer nY nyycopia il buffer sopra la riga correntePcopia il buffer dopo la riga correntep(maiuscolo prima, minuscolo dopo)

altri buffer (nomi da a a z, p.e. f)"fnyysalvataggio e ripristino"fnp "fnP

Esempi:

a) COPIA DI UN INSIEME DI RIGHE- posizionare il cursore sulla prima riga da copiare- <n>Ycopia <n> righe nel buffer- spostare il cursore sulla riga sotto la quale copiare- pinserisce le righe prelevate dal buffer

b) SPOSTAMENTO DI UN INSIEME DI RIGHE- posizionare il cursore sulla prima riga da spostare- <n>ddmuove <n> righe nel buffer- spostare il cursore sulla riga sotto la quale copiare- pinserisce le righe prelevate dal buffer

(4)

Unix: l’Editor VI - 7 COMANDI ULTERIORI

COMANDI dalla RIGA di COMANDO

RICERCAdi una stringa specificata (avanti)/stringadi una stringa (indietro)?stringa

MOVIMENTO del cursoresu una linea specificata:numerolineaultima linea del file:$

ELIMINAZIONEdi linee del file:n,md linee da n a m

INTERAZIONE con il FILE SYSTEMlettura ed inserimento di file alla posizione corrente:r nomefilelettura ed inserimento di file dopo la linea n:nr nomefileuscita da vi:qsenza salvare:q!scrittura su file :w nomefileparti su file:n,mw nomefileaggiunte su file:n,mw >> nomefileforzata su file :w! nomefilesuperando i normali controlli (se possibile)

specifica di opzioni:set opzionevisualizza i numeri di riga:set numberelimina i numeri di riga:set nonumber

Unix: l’Editor VI - 8 ESECUZIONE di un qualunque comando di SHELLescape ad uno shell:!<comando di shell>

Esempi di comandi:a) SALVA ED ESCE DALL'EDITOR- <ESC>esce dallo stato input- :wqsalva ed esce dall'editor

ATTENZIONE:Se il file non consente la scrittura da parte dell'utenteche sta usando il vi, l'editor riportera' un errore quandosi tenta di scrivere sul file

b) ESCE DALL'EDITOR SENZA SALVARE- <ESC>esce dallo stato input- :q!esce dall'editor senza salvare

ATTENZIONE:Se si usa :q senza aver salvato il file, l'editor avvisaNo write since last change (:quit! overrides)

Esistono moltissimi altri comandi: nonostante la scarsaleggibili, vi è l'unico editor presente in tutti i sistemiUNIX.

Si consiglia di approfondirne la conoscenza.

Riferimenti

Documenti correlati

Posiziona la tua grafica sul nostro file: le dimensioni del file e l’abbondanza saranno già correttamente impostate.. Ricorda di eliminarlo prima

Colpisce, infatti, anche il richiamo al valore positivo del rivedere i colle- ghi, in netta rottura con le interpretazioni delle aziende come comunità in cui la relazionalità è

Con la nuova legge, la Regione Lazio rivedrà anche le logiche che hanno portato alla riduzione delle risorse per il sistema delle aree protette regionali. Gli investimenti

1 Nella prima sessione sono intervenuti esperti ed accademici che hanno discusso in merito alla natura delle diverse crisi che stanno interessando l’Ue, da quelle interne – come

IL MIO SCOPO COME PADRE (RUOLO) È DI ESSERE PRESENTE, AMOREVOLE E AFFIDABILE (VALORI), CAPACE DI SOSTENERE E PROTEGGERE I SOGNI E LE AMBIZIONI DI MIO FIGLIO (FARE COSA), PERCHÉ

– Codice, dati, stack, tabella delle pagine (altrimenti in lista pagine libere).. Mappa delle pagine

• Ciascuna voce nella tabella di processo punta a una voce nella tabella globale che specifica diritti e posizione di R/W corrente nel file. – La stessa voce  file condiviso

Storia a fumetti: Una seconda possibilità - Episodio 9 pagina 129.