Archivio

Posts Tagged ‘vim’

É falso che vi non sia user-friendly

dicembre 12, 2012 Lascia un commento

La verità é che gli amici se li sceglie.
Pur essendo un editor così “di nicchia”, mi sorprende sempre quanta gente lo conosca e ancor di più quanto possa essere controverso il loro parere a proposito.
E’ da un po’ sento la necessità di sfatare questo mito, appunto che vi non sia user friendly… la verità, come spesso mi piace ripetere, è un’altra: che gli amici se li sceglie.
Ma non parlerò solo di vi, del perché sia ancora così apprezzato, vorrei anche descrivere brevemente un caso d’uso tipico, ovvero quali sono i passi da seguire per poter aprire un file, modificarlo e salvarlo. Chi non lo conosce e avrà la pazienza di arrivare in fondo a questo sproloquio, magari ne potrebbe trarre qualche beneficio.

Vi-Editor-Guide-2

Se lo conosci lo eviti.. Oppure lo ami.
Chi lo ama, lo fa a spada tratta, senza eccezioni, senza compromessi. Se chiedi di vi ad un vero fan, ti risponderà che non è un editor, è l’editor. Non solo lo usa per lavoro, ma all’università ci scrisse la tesi di laurea, lo tiene sempre installato sul tablet e sul telefono, e quando é a casa lo usa per la lista della spesa. Perché é un punto fermo che c’é, sempre. In qualsiasi Mac, Linux o Unix su cui mi sia capitato di mettere le mani c’era. E se proprio ti capitava di mettere le mani su una macchina su cui non c’era, si sarebbe potuto installare senza problemi, perché l’hanno portato ovunque. Davvero un punto fermo per parecchi tecnici.

E poi c’è chi lo evita.
disperataAnche in questo caso non ci sono mezze misure, chi lo evita, lo fa in ogni occasione. La peste. Troppo troppo complicato. E pur di rimanere attaccato alle vecchie abitudini cerca le soluzioni più fantasiose: rocambolesche connessioni in remoto tra firewall, sistemi d’autenticazione, protocolli, macchine ponte e conversioni, per poi arrivare al porto sicuro della propria macchina dove c’é l’editor che usiamo di solito. Qualsiasi cosa é molto più accettabile che spremersi le meningi e imparare quei quattro comandi in croce.

Allora partiamo con il piede giusto.
Vi si pronuncia vi ai, in inglese sarebbe vee eye. Quindi per favore niente six o vi. È un acronimo che sta per visual editor. Si lo so, oggi sembra tutto il contrario che visuale, anzi, ma quando fu progettato… 1976 (quanto tempo eh?) beh, l’editor più in voga del momento era “ed” e operava su una sola riga.
Con “ed” poter muovere il cursore nel testo e scrollare in alto o in basso? Impensabile. Ad onor del vero, é solo nel 1993 che é stata poi realizzata la prima versione di vim (Vi IMproved), che poi spesso é il prodotto che usiamo e impropriamente chiamiamo vi, ma questa é un’altra storia.

Ma quanti editor ci sono?
Un’infinità. Di editor c’è ne sono davvero tantissimi (questo gli addetti ai lavori lo sanno bene) e con le funzionalità più diverse, eppure c’è ancora uno zoccolo duro di utenti che si ostina ad usare vi. A volte ad usare solo vi. Scusate la ripetizione, ma per continuare ad usare vi in questi giorni, con programmi che ti suggeriscono ogni genere di linguaggio, con l’help in linea, addirittura con la correzione ortografica, beh, bisogna essere ostinatamente ostinati.
Ma appartengo a questa categoria di zucconi che non demorde e continua ad usarlo, felice, addirittura mi accingo a scrivere un post che parla di questo programma, di questo software che da bravo nonnetto riesce ancora a vincere a man bassa nelle situazioni più disparate (e disperate), ad entusiasmare, a raccogliere nuovi consensi e seguaci.

Certo che bisogna conoscerlo
Veniamo a noi: come funziona vi.
Per molti non é una cosa ovvia: vi é il classico programma da shell, cioè, uno di quei programmi che per usarlo bisogna aprire il terminale. Se non avete mai usato un terminale… è un po’ come se a tennis vi mancassero i fondamentali. Posso solo aggiungere che una volta, ehm, sfortunatamente esisteva solo quello. Il video di un computer trasmetteva una sola immagine monocromatica che prendeva tutto lo schermo: il terminale. Oggi quando si parla di terminale, quello che molti di noi hanno sui loro computer é un’emulazione che gira in una finestra, ed quella a cui mi riferisco. Sul Mac lo trovereste nelle Utility.

Hands on
Una volta aperto un terminale, potete iniziare subito ad usare vi, digitando:

vi nomedelfile

Dove “vi” è il comando da eseguire per avviare l’editor e “nomedelfile”, beh, ovviamente è il nome del file che state creando o che volete modificare. Questo è quello che potrebbe apparirvi sullo schermo:

6_vi_1

Lo schermo mostrato possiamo considerarlo logicamente diviso in due parti, quasi tutto lo schermo é destinato all’editing del testo ad esclusione dell’ultima riga che viene usata dal programma per inviare messaggi informativi (cose del tipo “il file é stato salvato”, “impossibile salvare il file”, etc.) oppure per sottomettere comandi: cercare/sostituire una parola, salvare le modifiche, uscire oppure cambiare le impostazioni di default.
Le righe in cui compare solo il carattere “~” sono righe vuote. In pratica dove iniziano con “~” è il punto in cui il file è finito.

Per un file vuoto o appena creato quello che comparirebbe sarebbe questo:

20121203-014735.jpg

Quindi, ricapitolando, lo schermo é diviso in:
– l’ultima riga dello schermo (per i messaggi e i comandi);
– le restanti righe di schermo (tutto quello che c’é sopra l’ultima riga);
L’immagine appena mostrata dovrebbe chiarirvi il concetto.

Le modalità di vi, queste sconosciute
Comprendere il meccanismo delle modalità è fondamentale per poter usare vi.
All’avvio dell’editor siete in “command mode”, per ora vi basti sapere che in questa modalità potete spostare il cursore per raggiungere la posizione in cui volete inserire o modificare del testo.
Per spostarsi si possono usare le frecce, oppure per i puristi, la combinazione di tasti H (sinistra), J (giù), K (su), L (destra).

unix_vi_editor_movement_keys

Una volta raggiunta la posizione in cui si intende scrivere, bisogna passare da “command mode” ad “insert mode”. Ciò avviene dopo aver premuto il tasto “i”: ora si può iniziare a scrivere.
Il tasto Esc ci riporta di nuovo in “command mode”, avverte vi che la fase di inserimento testo é stata completata.

Cancellare del testo si può fare in “command mode” e si preme il tasto “x”, il testo sotto il cursore scomparirà immediatamente.
Infine annullare una modifica, una cancellazione o un inserimento, si preme il tasto “u”.

Per chiudere il programma, bisogna passare da “command mode” a “last line mode”.
“Last line mode” é la terza ed ultima modalità esistente, la transizione avviene premendo il tasto “:”.
Vi accorgerete che siete passati in “last line mode” perché il cursore si é spostato appunto sull’ultima linea dello schermo.
In “last line mode” é possibile digitare i comandi per abbandonare l’editor.
Digitale “q!” (e il tasto invio) per abbandonare il programma senza salvare, oppure “wq” per salvare le modifiche ed uscire.
Il nostro giro si conclude qui, provate da soli e vi accorgerete che non è poi così complicato.

20121212-023309.jpg

Il primo dosso é quello più faticoso
Il fatto di passare da una modalità ad un’altra é la cosa che risulta di difficile comprensione a molti. Superato questo ostacolo però, la strada é tutta in discesa.
I comandi qui descritti sono sufficienti per spostarsi e modificare un file di piccole dimensioni. Questo vi rende davvero indipendenti, se si vuole andare avanti, c’é solo da imparare qualche altro comando…
In altre parole: vi non é più on oggetto oscuro, hai tutte le carte in regola per scoprire quanto e’ potente.
Il primo vantaggio che si nota, é che puoi fare tutto senza staccare mai le mani dalla tastiera. Il mouse é un optional. Perfetto per chi magari deve collegarsi ad un server remoto via ssh. Mette a disposizione una funzionalità di search&replace nel testo potentissima.

Per chi volesse approfondire, qui di seguito, c’e’ un piccolo reference con la lista di comandi più usati. Ciao!109263578