Terminale di Mac OS X: Uno sguardo al vi – Guide SlideToMac

Dopo aver visto i comandi principali per muoversi all’interno del file system di Mac OS X, oggi andremo ad esaminare come editare i file di testo direttamente dal Terminale.


Continuano le guide di SlideToMac, che hanno come tema il Terminale di Mac OS X.
Fino ad ora abbiamo potuto vedere come personalizzare l’applicazione, gli utenti e i gruppi, come muoversi all’interno del file system e molto altro.

Nell’uso quotidiano, soprattutto quando si vuole editare file in remoto, può capitare di dover creare o modificare dei file di testo.
A onor del vero ci sono vari sistemi per editare i file, incluso anche quello di portare il file in locale (procedimento lungo ed inutile a dire il vero).
Con l’evolversi di sistemi che sfruttino il core di UNIX, ovvero le varie distribuzioni di Linux, sono nati altre applicazione per l’editing da riga di comando: nano e pico tra le più note.
Ma il vero, unico e solo editor da riga di comando è e resterà sempre il “vi“.

Ad oggi, è quello utilizzato sempre in tutti i sistemi UNIX: affidabile, veloce, con comandi che permettono di fare praticamente tutto e che può stare nel famoso floppy da 3,5″.
Ovviamente, essendo una guida “iniziale” non potranno essere affrontati tutti i comandi del vi: per fare un esempio, tramite determinati comandi è possibile effettuare delle sostituzioni multiple direttamente da riga di comando.

Cominciamo quindi a prendere confidenza con questo editor. Il vi è in grado di poter visualizzare qualsiasi file di testo: txt, html, file di configurazione (come ad esempio quelli di backup della configurazione delle AirPort), file hosts e molti altri.
Per editare (o anche creare un file di testo nuovo) basterà digitare:

vi nome_file

Una volta aperto il file, potremo scorrerlo in basso o in alto tramite le frecce cursore, ma non potremo modificare ancora nulla.
Nel vi esistono due modalità:

  • COMMAND MODE: in questa modalità potremo spostarci all’interno del file ed effettuare cancellazioni o drag&drop di righe o parole.
  • INPUT MODE: è la modalità in cui avremo modo di scrivere il codice. Si attiva in diversi modi.

Per uscire dalla modalità di Input Mode, basterà premere ESC.
E’ anche possibile scorrere di pagina in pagina, o di metà pagna, tramite i seguenti comandi:

CTRL+F : pagina avanti
CTRL+B : pagina indietro
CTRL+D : mezza pagina avanti
CTRL+U : mezza pagina indietro
G : l’ultima riga di testo

I comandi per gli spostamenti vengono effettuati direttamente tramite Command Mode: questo vuol dire che non visualizzeremo nulla di quello che andremo a digitare.
Molti dei comandi prevedono la possibilità di utilizzare il carattere maiuscolo o minuscolo per una funzione simile: state, quindi, molto attenti come sempre a quello che fate.
Oltre che per pagine, è possibile spostarsi anche in una determinata riga del file: questa funzione risulta essere molto utile quando si riscontrano problemi con il codice, in quanto Mac OS X indica anche il numero di riga.

Per potersi spostare basterà digitare:

/numero_di_riga

e saremmo direttamente alla riga interessata. Lo stesso potrà essere effettuato nel seguente modo:

#G : alla fine della riga indicata dal simbolo #

Tra i comandi di base del vi che è necessario conoscere i più frequenti sono:

i : si entra nella modalità di inserimento, inizieremo a scrivere dal punto in cui si trova il cursore;
o : permette l’inserimento di una riga sotto il cursore e ci mette in modalità Input Mode;
O : inserisce una riga sopra il cursore, anche in questo caso sarà attiva l’Input Mode;
C : elimina tutti il testo digitato alla destra del cursore e si posizione in Input Mode;
U : Annulla l’ultima riga corrente;
u : annulla l’ultima modifica;
cw : sostituisce la parola;
R : ovvero REPLACE, permette di sovrascrivere il testo.

Ovviamente, esistono comandi per cancellare ciò che è stato scritto. Vediamo quali:

DD : Cancella la linea corrente;
#DD : cancella il numero di righe indicate da #;
d/ : permette la cancellazione di tutto ciò che è stato scritto dal cursore in poi fino a quando non si incontra il testo specificato in ;
d? : come il comando precedente, ma la cancellazione verrà effettuata effettuando una ricerca nel testo prima del cursore.

Può risultare molto utile effettuare il copia incolla direttamente dal vi. Vediamo come:

#YY : copia il numero di righe indicate da # (se non è indicato un numero copierà una sola riga);
p : paste, ovvero incolla le righe in buffer;
#p : incolla il contenuto del buffer in memoria più di una volta, in base a quanto indicato da #. Ad esempio 5p incollerà 5 volte la/le stessa/e riga/righe.

Se, durante le operazioni, dovessimo effettuare la stessa modifica/inserimento o altro tramite il “.” questa verrà effettuata in automatico.

Una volta compiute le modifiche potremo salvare o meno i file. Per compiere tale operazione, dovremo uscire dalla modalità Input (tramite il tasto ESC), digitare i due punti (:) e uno dei relativi comandi seguenti, in base alle esigenze:

x : salva le modifiche ed eventualmente esce;
wq : salva ed esce;
q : permette di uscire nel caso in cui non siano state fatte modifiche e non salvate;
q! : esce forzatamente senza salvare le modifiche.

Ovviamente, abbiamo analizzato solo alcuni dei comandi prinicipali.
L’editor vi mette a disposizione moltissimi comandi e combinazioni tra loro per poter avere un controllo completo sui file.
Una ricerca su Google vi permetterà di trovare tutti i comandi disponibili.

Vi ricordiamo i precedenti articoli:

Come per gli altri articoli, abbiamo provveduto a realizzare un piccolo video dimostrativo. Nella fattispecie, andremo ad aprile il file di testo relativo a questo articolo e il file di hosts.

Nel prossimo articolo andremo ad affrontare l’editing di file di configurazione di alcuni file nonché come trasferire i file da riga di comando, tramite protocollo SSH e la sua abilitazione su Mac OS X.

Stay Tuned!

NovitàAcquista il nuovo iPhone 16 Pro su Amazon
Guide Mac