Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo...

22
Sistemi Operativi - Vi 1 Il sistema operativo LINUX L’editor vi Giorgio Di Natale <[email protected]> Stefano Di Carlo <[email protected]> Politecnico di Torino Dip. Automatica e Informatica

Transcript of Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo...

Page 1: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 1

Il sistema operativo LINUX L’editor vi

Giorgio Di Natale <[email protected]>Stefano Di Carlo <[email protected]>

Politecnico di TorinoDip. Automatica e Informatica

Page 2: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 2

Riferimenti

• www.vim.org• Download: http://www.vim.org/download.php

• Documentation: http://www.vim.org/docs.php• PDF Text book: VimBook-OPL (Steve Qualline)

• vi –help• On-line help: comando :h

Page 3: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 3

Caratteristiche dell'editor vi

• Si trova su tutti gli UNIX e funziona con qualunque terminale

• Due modi base di funzionamento:– modo comandi– modo inserimento

Exit

Comandi

Inserimento

i

ESC:q

Page 4: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 4

Vi Improved (Vim)

• Versione di Vi con funzionalita` aggiuntive• Tre modi base di funzionamento:

– modo comandi– modo inserimento– modo visuale

Exit

Comandi

Inserimento

i

ESC

:q

Visuale

ESC

v

Page 5: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 5

Esecuzione di vi

– vi fileedita il file (lo crea se non esiste)

– vi file +rigaapre il file alla riga specificata

Page 6: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 6

Movimento del cursore

k

j

h l

Page 7: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 7

Inserimento di testo

i testo nella posizione del cursore

I testo a inizio riga

a testo dopo il cursore

A testo a fine riga

O testo in una nuova linea sopra l’attuale

o testo in una nuova linea sotto l’attuale

Page 8: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 8

I/O verso file

:w [file] salva il file:e file edita il file indicato

:x :wq salva il file e termina:q termina:q! termina senza salvare

Page 9: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 9

Movimento del cursore

– tasti cursore, oppure h j k l– w alla prossima parola– 0 all'inizio della riga – $ alla fine della riga– CTRL-f avanti di una schermata– CTRL-b indietro di una schermata– 1G all'inizio del file– G alla fine del file– nG alla riga n

Page 10: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 10

Comandi vi

• Cancellazione:– [n] x cancella i prossimi n caratteri– [n] X cancella i precedenti n caratteri – [n] dw cancella le prossime n parole– [n] dd cancella n linee– D cancella fino alla fine della linea

• Problemi?– u annulla l'ultima modifica – U annulla tutte le modifiche alla linea corrente– CTRL-l ridisegna lo schermo

Page 11: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 11

Modifiche al testo

– J unisce due linee

– r char sostituisce char al carattere corrente

– ~ converte il carattere corrente da maiuscolo a minuscolo e viceversa

– . ripete l'ultima modifica

Page 12: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 12

Cut, Copy e Paste

– per spostare o copiare parte del testo, occorre metterlo in un buffer

– quindi lo si può inserire con i comandi:• P inserisce prima del cursore

• p inserisce dopo il cursore

– [n] yy ricopia in un buffer n righe

Page 13: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 13

Azioni speciali

– :!comando esegue comando in UNIX– :r !comando esegue il comando ed

inserisce il suo output nel file (es. :r !ls)– CTRL-vspecial-char inserisce il

codice Ascii di un carattere speciale, come Ctrl-H, Ctrl-L , Ctrl-M o ESC

– :map key comandi-viassegna alla chiave la sequenza di comandi indicata (es. :map ^W :w^M )

Page 14: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 14

Uso avanzato di vi

– vi file1 file2 ...per editare una serie di file in sequenza

– quando si finisce con ciascun file:•:w per salvare il file•:n per passare al prossimo file (:n! per non

salvare quello attuale)•:e file per editare un nuovo file (:e! per non

salvare quello attuale)

Page 15: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 15

Cut & Paste

– occorre servirsi, implicitamente o esplicitamente di uno dei seguenti buffer:

• buffer denominato (nome di una lettera a-z)

• buffer numerato [1-9]

• DTB, Deleted Text Buffer (default)

– un comando di cut ha la forma:" bufname azione

– bufname specifica il nome del buffer

– azione è yy o dd

Page 16: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 16

Esempi

– "a5ddsposta 5 linee nel buffer a

– "byGcopia dalla posizione corrente alla fine del file nel buffer b

– "apestrae il contenuto del buffer a inserendolo nella riga dopo il cursore

– "bPestrae il contenuto del buffer b inserendolo nella riga prima del cursore

Page 17: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 17

Sostituzioni– combinando opportunamente gli operatori s e g si

ottengono sostituzioni locali e globali– :s/marzo/aprile/

sostituisce nella linea corrente la prima occorrenza di marzo con aprile

– :s/marzo/aprile/gsostituisce nella linea corrente tutte le occorrenze di marzo con aprile

– :g/inverno/s//estate/gsostituisce ovunque inverno con estate

– :g/prova/s//ultima \&/gsostituisce ovunque prova con ultima prova

Page 18: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 18

Ricerche in vi

– /pattern ricerca una stringa corrispondente al pattern in avanti

– ?pattern ricerca all'indietro– n cerca la prossima occorrenza– N cerca l’occorrenza precedente– il pattern può essere una normale stringa oppure

una espressione regolare ossia avere caratteri con significato speciale

Page 19: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 19

Espressioni regolari in vi

– . un carattere qualunque– ^ inizio riga– $ fine riga– * ripetizione (zero o più volte)– + ripetizione (una o più volte)– [ ] un carattere tra quelli in parentesi– [^ ] un carattere esclusi quelli in parentesi– [x-y] un carattere nel range specificato– \< inizio parola– \> fine parola

Page 20: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 20

Ricerche in vi

• Esempi:– /estate ricerca la parola estate – /\<[A-Z] ricerca una qualunque parola che comincia

con una lettera maiuscola– /^estate ricerca la parola estate ad inizio riga– /are\> ricerca tutte le parole con il suffisso are– ?##* ricerca indietro una ripetizione di uno o più

simboli #

Page 21: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 21

vi - aiuti alla programmazione

– % posiziona il cursore sulla parentesi che bilancia quella su cui è il cursore

– >> indenta di una posizione la riga corrente– << de-indenta di una posizione la riga

corrente– Ctrl-D elimina un'indentazione

automatica durante l'inserimento di testo

Page 22: Sistemi Operativi - Vi 1 Il sistema operativo LINUX Leditor vi Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Sistemi Operativi - Vi 22

Configurazione di vi

• I comandi di configurazione possono essere dati come interattivamente (ossia dopo :) oppure salvati nel direttorio di login nel file .exrc per essere eseguiti automaticamente all’attivazione di vi– set autoindentset aiset noai

– set shiftwidth=n– set ignorecaseset icset noic