Impariamo insieme le basi del famoso editor di testo VI portando a termine un piccolo progetto.
Buongiorno a tutti, oggi come ho promesso in questo articolo darò un po' di consigli per cominciare ad usare il famoso editor di testo VIM.
Prima di tutto, una legenda:
- [bottone] - Premi il tasto "bottone" sulla tastiera
- penaz@PenazMW ~ > comando - Digita "comando" in Bash
Noi andremo ad usare VIM, un editor più moderno e compatibile al 99,9% con quello che ai tempi era VI.
Iniziamo aprendo VIM:
vim
Ci ritroveremo davanti l'interfaccia dell'editor, ma se inizieremo a scrivere qualcosa sentiremo probabilmente una serie di beep senza vedere alcun cambiamento nello schermo, per iniziare a scrivere dovremo entrare nella modalità inserimento; per entrarci abbiamo due possibilità:
- a - Append, inizia l'inserimento dopo il carattere selezionato
- i - Insert, inizia l'inserimento dal carattere corrente
Ovviamente, partendo da un documento vuoto i due pulsanti svolgono esattamente la stessa funzione, perciò:
[a]
VIM risponderà prontamente scrivendo nella barra di stato:
-- insert --
Ora siamo pronti a digitare, scriviamo la seguente stringa:
Salve! Questa è la mia prima stringa in VI.
E vedremo la stringa comparire sullo schermo, proseguiamo con:
[invio] Questa è una stringa molto lunga.
Vedremo sul nostro schermo:
Salve! Questa è la mia prima stringa in VI. Questa è una stringa molto lunga.
Usciamo dalla modalità inserimento:
[ESC]
Ora siamo tornati nel "command mode" e VIM sta aspettando un nuovo comando, ora impareremo come tagliare, copiare e incollare un testo: usando le frecce direzionali spostiamo il cursore poco prima di "molto":
Salve! Questa è la mia prima stringa in VI. Questa è una stringa | molto lunga.
Ora entriamo nel cosiddetto "visual mode":
[v]
Ovviamente VIM risponderà nella barra di stato:
-- visual --
Premiamo la freccetta destra fino ad evidenziare la parola "molto" e lo spazio che la segue:
Salve! Questa è la mia prima stringa in VI. Questa è una stringa molto lunga.
Ora abbiamo due possibilità:
- x - Cut, il classico strumento taglia.
- y - Yank, corrisponde a copia
Noi andremo a copiare il testo per poi uscire dalla modalità visuale:
[y] [ESC]
Posizioniamo il cursore dopo lo spazio che segue la parola "molto":
Salve! Questa è la mia prima stringa in VI. Questa è una stringa molto | lunga.
E usiamo il tasto P (paste) per incollare un po' di testo:
Salve! Questa è la mia prima stringa in VI. Questa è una stringa molto molto lunga.
Facciamo la stessa cosa con delle stringhe di testo più grandi, iniziamo creando una nuova riga; potremmo entrare in modalità insert, spostarci alla fine dell'ultima riga e premere invio, oppure posizionarci sull'ultima riga (non importa quale carattere) e:
[o]
Ora entriamo in modalità visuale ed evidenziamo tutta l'ultima riga:
Salve! Questa è la mia prima stringa in VI. Questa è una stringa molto molto lunga.
Copiamola e incolliamola un paio di volte:
Salve! Questa è la mia prima stringa in VI. Questa è una stringa molto molto lunga. Questa è una stringa molto molto lunga. Questa è una stringa molto molto lunga.
Tutto questo per poi... Eliminarle. Potremmo entrare nella modalità inserimento eccetera eccetera... oppure spostare il cursore sulla riga da eliminare e:
[ESC] [d][d]
Così elimineremo una riga, ripetiamo il procedimento e ci ritroveremo allo stesso punto di prima:
Salve! Questa è la mia prima stringa in VI. Questa è una stringa molto molto lunga.
A questo punto possiamo scegliere cosa farne del nostro file:
- : x Primo.txt - Salva il file come "Primo.txt" ed esce.
- :q! - Esci ed ignora tutte le modifiche
- :w Primo.txt - Salva come "Primo.txt" ma non uscire.
Se volessimo fare delle modifiche per poi salvarle nello stesso file basta solo:
- :w - Salva
- : x - Salva ed esci
Nel nostro caso scarteremo il file appena creato:
:q!
Questa guida non è completa, mancano i metodi per spostarsi velocemente di parola in parola. Prendetelo come un'infarinatura di questo fantastico editor di testo da usare in caso di emergenza.Infatti, al contrario di "nano" o altri editor, VI è presente in qualunque distro di linux, sia essa ubuntu, arch, debian o slackware.
Saluti e al prossimo post!
Penaz.