Unix / Linux - Il tutorial dell'editor vi

In questo capitolo capiremo come funziona l'Editor vi in ​​Unix. Esistono molti modi per modificare i file in Unix. Modifica dei file utilizzando l'editor di testo orientato allo schermoviè uno dei modi migliori. Questo editor ti consente di modificare le righe nel contesto con altre righe nel file.

Una versione migliorata dell'editor vi che si chiama VIMè ora disponibile anche. Qui, VIM sta perVi IMdimostrato.

vi è generalmente considerato lo standard de facto negli editor Unix perché:

  • Di solito è disponibile su tutte le versioni del sistema Unix.

  • Le sue implementazioni sono molto simili su tutta la linea.

  • Richiede pochissime risorse.

  • È più facile da usare rispetto ad altri editor come il ed o il ex.

Puoi usare il file vieditor per modificare un file esistente o per creare un nuovo file da zero. Puoi anche usare questo editor per leggere un file di testo.

Avvio dell'Editor vi

La tabella seguente elenca i comandi di base per utilizzare l'editor vi:

Sr.No. Comando e descrizione
1

vi filename

Crea un nuovo file se già non esiste, altrimenti apre un file esistente.

2

vi -R filename

Apre un file esistente in modalità di sola lettura.

3

view filename

Apre un file esistente in modalità di sola lettura.

Di seguito è riportato un esempio per creare un nuovo file testfile se già non esiste nella directory di lavoro corrente -

$vi testfile

Il comando precedente genererà il seguente output:

|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]

Noterai un file tilde(~) su ogni riga che segue il cursore. Una tilde rappresenta una linea inutilizzata. Se una riga non inizia con una tilde e sembra essere vuota, è presente uno spazio, una tabulazione, una nuova riga o un altro carattere non visualizzabile.

Ora hai un file aperto su cui iniziare a lavorare. Prima di procedere oltre, comprendiamo alcuni concetti importanti.

Modalità di funzionamento

Mentre lavoriamo con l'editor vi, di solito ci imbattiamo nelle seguenti due modalità:

  • Command mode- Questa modalità consente di eseguire attività amministrative come salvare i file, eseguire i comandi, spostare il cursore, tagliare (strappare) e incollare le righe o le parole, nonché trovare e sostituire. In questa modalità, qualunque cosa digiti viene interpretata come un comando.

  • Insert mode- Questa modalità consente di inserire testo nel file. Tutto ciò che viene digitato in questa modalità viene interpretato come input e inserito nel file.

vi inizia sempre in command mode. Per inserire il testo, devi essere nella modalità di inserimento per la quale è sufficiente digitarei. Per uscire dalla modalità di inserimento, premere il tastoEsc tasto, che ti riporterà alla modalità di comando.

Hint- Se non sei sicuro di quale modalità ti trovi, premi due volte il tasto Esc; questo ti porterà alla modalità di comando. Apri un file utilizzando l'editor vi. Inizia digitando alcuni caratteri e poi passa alla modalità di comando per capire la differenza.

Uscire da vi

Il comando per uscire da vi è :q. Una volta in modalità comando, digita due punti e "q", seguito da Invio. Se il tuo file è stato modificato in qualche modo, l'editor ti avviserà e non ti permetterà di uscire. Per ignorare questo messaggio, il comando per uscire da vi senza salvare è:q!. Ciò consente di uscire da vi senza salvare nessuna delle modifiche.

Il comando per salvare il contenuto dell'editor è :w. È possibile combinare il comando precedente con il comando quit o utilizzare:wq e ritorno.

Il modo più semplice per save your changes and exit viè con il comando ZZ. Quando sei in modalità comando, digitaZZ. IlZZ Il comando funziona allo stesso modo del :wq comando.

Se vuoi specificare / indicare un nome particolare per il file, puoi farlo specificandolo dopo il :w. Ad esempio, se si desidera salvare il file su cui si sta lavorando come un altro nome file chiamatofilename2, digiteresti :w filename2 e ritorno.

Spostarsi all'interno di un file

Per spostarti all'interno di un file senza influire sul testo, devi essere in modalità comando (premi Esc due volte). La tabella seguente elenca alcuni comandi che puoi usare per muoverti un personaggio alla volta -

Sr.No. Comando e descrizione
1

k

Sposta il cursore in alto di una riga

2

j

Sposta il cursore in basso di una riga

3

h

Sposta il cursore alla posizione di un carattere a sinistra

4

l

Sposta il cursore a destra di un carattere

I seguenti punti devono essere considerati per spostarsi all'interno di un file:

  • vi distingue tra maiuscole e minuscole. È necessario prestare attenzione alle maiuscole quando si utilizzano i comandi.

  • La maggior parte dei comandi in vi può essere preceduta dal numero di volte in cui si desidera che l'azione venga eseguita. Per esempio,2j sposta il cursore di due righe in basso rispetto alla posizione del cursore.

Ci sono molti altri modi per spostarsi all'interno di un file in vi. Ricorda che devi essere in modalità comando (press Esc twice). La tabella seguente elenca alcuni comandi per spostarsi nel file:

Sr.No. Comando e descrizione
1

0 or |

Posiziona il cursore all'inizio di una riga

2

$

Posiziona il cursore alla fine di una riga

3

w

Posiziona il cursore sulla parola successiva

4

b

Posiziona il cursore sulla parola precedente

5

(

Posiziona il cursore all'inizio della frase corrente

6

)

Posiziona il cursore all'inizio della frase successiva

7

E

Si sposta alla fine della parola delimitata da spazi

8

{

Sposta indietro un paragrafo

9

}

Sposta un paragrafo in avanti

10

[[

Sposta una sezione indietro

11

]]

Sposta una sezione in avanti

12

n|

Passa alla colonna n nella riga corrente

13

1G

Passa alla prima riga del file

14

G

Passa all'ultima riga del file

15

nG

Si sposta in nth riga del file

16

:n

Si sposta in nth riga del file

17

fc

Va avanti a c

18

Fc

Torna a c

19

H

Passa alla parte superiore dello schermo

20

nH

Si sposta in nth linea dalla parte superiore dello schermo

21

M

Si sposta al centro dello schermo

22

L

Spostati nella parte inferiore dello schermo

23

nL

Si sposta in nth linea dalla parte inferiore dello schermo

24

:x

I due punti seguiti da un numero posizionano il cursore sul numero di riga rappresentato da x

Comandi di controllo

I seguenti comandi possono essere utilizzati con il tasto Control per eseguire le funzioni come indicato nella tabella seguente:

Sr.No. Comando e descrizione
1

CTRL+d

Si sposta in avanti di 1/2 schermata

2

CTRL+f

Si sposta in avanti di uno schermo intero

3

CTRL+u

Si sposta indietro di 1/2 schermata

4

CTRL+b

Torna indietro di uno schermo intero

5

CTRL+e

Sposta lo schermo in alto di una riga

6

CTRL+y

Sposta lo schermo in basso di una riga

7

CTRL+u

Sposta lo schermo in alto di 1/2 pagina

8

CTRL+d

Sposta lo schermo in basso di 1/2 pagina

9

CTRL+b

Sposta lo schermo in alto di una pagina

10

CTRL+f

Sposta lo schermo in basso di una pagina

11

CTRL+I

Ridisegna lo schermo

Modifica dei file

Per modificare il file, è necessario essere in modalità di inserimento. Esistono molti modi per accedere alla modalità di inserimento dalla modalità di comando:

Sr.No. Comando e descrizione
1

i

Inserisce il testo prima della posizione corrente del cursore

2

I

Inserisce il testo all'inizio della riga corrente

3

a

Inserisce il testo dopo la posizione corrente del cursore

4

A

Inserisce il testo alla fine della riga corrente

5

o

Crea una nuova riga per l'immissione di testo sotto la posizione del cursore

6

O

Crea una nuova riga per l'immissione di testo sopra la posizione del cursore

Eliminazione di caratteri

Ecco un elenco di comandi importanti, che possono essere utilizzati per eliminare caratteri e linee in un file aperto:

Sr.No. Comando e descrizione
1

x

Elimina il carattere sotto la posizione del cursore

2

X

Elimina il carattere prima della posizione del cursore

3

dw

Elimina dalla posizione corrente del cursore alla parola successiva

4

d^

Elimina dalla posizione corrente del cursore all'inizio della riga

5

d$

Elimina dalla posizione corrente del cursore alla fine della riga

6

D

Elimina dalla posizione del cursore alla fine della riga corrente

7

dd

Elimina la riga su cui si trova il cursore

Come accennato in precedenza, la maggior parte dei comandi in vi può essere preceduta dal numero di volte in cui si desidera che l'azione venga eseguita. Per esempio,2x cancella due caratteri sotto la posizione del cursore e 2dd cancella due righe su cui si trova il cursore.

Si consiglia di esercitarsi sui comandi prima di procedere oltre.

Cambia comandi

Hai anche la possibilità di cambiare caratteri, parole o righe in vi senza eliminarli. Ecco i comandi rilevanti:

Sr.No. Comando e descrizione
1

cc

Rimuove il contenuto della riga, lasciandoti in modalità di inserimento.

2

cw

Cambia la parola su cui si trova il cursore da cursore a minuscolo w fine della parola.

3

r

Sostituisce il carattere sotto il cursore. vi torna alla modalità di comando dopo aver immesso la sostituzione.

4

R

Sovrascrive più caratteri che iniziano con il carattere attualmente sotto il cursore. Devi usareEsc per interrompere la sovrascrittura.

5

s

Sostituisce il carattere corrente con il carattere digitato. Successivamente, si viene lasciati nella modalità di inserimento.

6

S

Elimina la riga su cui si trova il cursore e la sostituisce con il nuovo testo. Dopo aver immesso il nuovo testo, vi rimane in modalità di inserimento.

Comandi di copia e incolla

Puoi copiare righe o parole da un punto e poi incollarle in un altro punto utilizzando i seguenti comandi:

Sr.No. Comando e descrizione
1

yy

Copia la riga corrente.

2

yw

Copia la parola corrente dal carattere su cui si trova il cursore w minuscolo, fino alla fine della parola.

3

p

Posiziona il testo copiato dopo il cursore.

4

P

Mette il testo strappato prima del cursore.

Comandi avanzati

Ci sono alcuni comandi avanzati che semplificano l'editing quotidiano e consentono un uso più efficiente di vi -

Sr.No. Comando e descrizione
1

J

Unisce la riga corrente a quella successiva. Un conteggio di comandi j unisce molte righe.

2

<<

Sposta la linea corrente a sinistra di una larghezza di spostamento.

3

>>

Sposta la linea corrente a destra di una larghezza di spostamento.

4

~

Cambia il caso del carattere sotto il cursore.

5

^G

Premere contemporaneamente i tasti Ctrl e G per mostrare il nome del file corrente e lo stato.

6

U

Ripristina la riga corrente allo stato in cui si trovava prima che il cursore entrasse nella riga.

7

u

Ciò consente di annullare l'ultima modifica apportata al file. Digitando di nuovo "u" verrà ripetuta la modifica.

8

J

Unisce la riga corrente a quella successiva. Un conteggio si unisce a tante righe.

9

:f

Visualizza la posizione corrente nel file in% e il nome del file, il numero totale di file.

10

:f filename

Rinomina il file corrente in nomefile.

11

:w filename

Scrive nel file nomefile.

12

:e filename

Apre un altro file con nome file.

13

:cd dirname

Cambia la directory di lavoro corrente in dirname.

14

:e #

Alterna tra due file aperti.

15

:n

Nel caso in cui apri più file utilizzando vi, usa :n per passare al file successivo della serie.

16

:p

Nel caso in cui apri più file utilizzando vi, usa :p per andare al file precedente della serie.

17

:N

Nel caso in cui apri più file utilizzando vi, usa :N per andare al file precedente della serie.

18

:r file

Legge il file e lo inserisce dopo la riga corrente.

19

:nr file

Legge il file e lo inserisce dopo la riga n.

Ricerca di parole e caratteri

L'editor vi ha due tipi di ricerche: string e character. Per una ricerca di stringhe, il/ e ?vengono utilizzati i comandi. Quando avvii questi comandi, il comando appena digitato verrà mostrato nell'ultima riga dello schermo, dove digiti la particolare stringa da cercare.

Questi due comandi differiscono solo nella direzione in cui avviene la ricerca:

  • Il / il comando cerca in avanti (verso il basso) nel file.

  • Il ? il comando cerca all'indietro (verso l'alto) nel file.

Il n e Ni comandi ripetono il comando di ricerca precedente rispettivamente nella stessa direzione o nella direzione opposta. Alcuni caratteri hanno significati speciali. Questi caratteri devono essere preceduti da una barra rovesciata (\) da includere come parte dell'espressione di ricerca.

Sr.No. Carattere e descrizione
1

^

Ricerca all'inizio della riga (utilizzare all'inizio di un'espressione di ricerca).

2

.

Corrisponde a un singolo carattere.

3

*

Corrisponde a zero o più del carattere precedente.

4

$

Fine della riga (utilizzare alla fine dell'espressione di ricerca).

5

[

Avvia una serie di espressioni corrispondenti o non corrispondenti.

6

<

Viene inserito in un'espressione a cui è stato eseguito l'escape con la barra rovesciata per trovare la fine o l'inizio di una parola.

7

>

Questo aiuta a vedere il '<'descrizione del carattere sopra.

La ricerca dei caratteri esegue la ricerca all'interno di una riga per trovare un carattere immesso dopo il comando. Ilf e F i comandi cercano un carattere solo nella riga corrente. f cerca in avanti e F esegue la ricerca all'indietro e il cursore si sposta sulla posizione del carattere trovato.

Il t e T i comandi cercano un carattere solo sulla riga corrente, ma per t, il cursore si sposta nella posizione prima del carattere e T ricerca la riga all'indietro fino alla posizione dopo il carattere.

Imposta comandi

È possibile modificare l'aspetto della schermata di vi utilizzando quanto segue :setcomandi. Una volta che sei in modalità di comando, digita:set seguito da uno dei seguenti comandi.

Sr.No. Comando e descrizione
1

:set ic

Ignora il caso durante la ricerca

2

:set ai

Imposta il rientro automatico

3

:set noai

Annulla il rientro automatico

4

:set nu

Visualizza le linee con i numeri di riga sul lato sinistro

5

:set sw

Imposta la larghezza di un tabstop software. Ad esempio, potresti impostare una larghezza di spostamento di 4 con questo comando::set sw = 4

6

:set ws

Se wrapscan è impostato e la parola non viene trovata in fondo al file, proverà a cercarla all'inizio

7

:set wm

Se questa opzione ha un valore maggiore di zero, l'editor eseguirà automaticamente il "ritorno a capo". Ad esempio, per impostare il margine di ritorno a capo su due caratteri, digita questo::set wm = 2

8

:set ro

Cambia il tipo di file in "sola lettura"

9

:set term

Stampa il tipo di terminale

10

:set bf

Elimina i caratteri di controllo dall'input

Comandi in esecuzione

Il vi ha la capacità di eseguire comandi dall'interno dell'editor. Per eseguire un comando, devi solo andare in modalità comando e digitare:! comando.

Ad esempio, se vuoi controllare se esiste un file prima di provare a salvarlo con quel nome, puoi digitare :! ls e vedrai l'output di ls sullo schermo.

È possibile premere qualsiasi tasto (o la sequenza di escape del comando) per tornare alla sessione di vi.

Sostituzione del testo

Il comando di sostituzione (:s/) consente di sostituire rapidamente parole o gruppi di parole all'interno dei file. Di seguito è riportata la sintassi per sostituire il testo:

:s/search/replace/g

Il gsta per globalmente. Il risultato di questo comando è che tutte le occorrenze sulla riga del cursore vengono modificate.

Punti importanti da notare

I seguenti punti si aggiungeranno al tuo successo con vi -

  • È necessario essere in modalità di comando per utilizzare i comandi. (Premi Esc due volte in qualsiasi momento per assicurarti di essere in modalità di comando.)

  • Devi stare attento con i comandi. Questi sono sensibili al maiuscolo / minuscolo.

  • Devi essere in modalità di inserimento per inserire il testo.