Il controllo ortografico in Vim
Il controllo ortografico in Vim
Con questo articolo mi prefiggo di iniziare una serie di articoli legati a Vim ed ai potenziali usi di questo programma per scrivere.
Oggi inizierò con una delle cose fondamentali per uno scrittore: il controllo ortografico del testo.
Il controllo ortografico è abitualmente strutturato in due parti: a) la rilevazione degli errori mentre si digita del testo (che viene evidenziato, solitamente, sottolineandolo in rosso) b) un sistema di revisione vero e proprio dove le parole valutate errate vengono esaminate una dopo l'altra.
Prima di iniziare vi ricordo che qui trovate la guida di Vim tradotta in italiano (quantomeno i comandi fondamentali).
1. Attivare per la prima volta il controllo ortografico in Vim
La prima cosa da sapere è come attivare il controllo ortografico, spellcheck in inglese.
Se avete aperto Vim (nel Terminale digitando vim
) digitate la seguente stringa di testo:
:set spell spelllang=it
Per ora ci soffermeremo solo sull'ultima parte del comando. spelllang
è il comando con cui si sceglie la lingua del controllo ortografico in Vim.
Se è la prima volta che attivate questo comando dopo l'installazione di Vim (o dopo aver aperto per la prima volta il Vim pre-installato su macOS) vi si presenterà un menù per scaricare la lingua di interesse. Nel nostro caso l'italiano (come specificato dal parametro =it
).
Digitate Sì (Yes in inglese) quando vi chiede di scaricare il file da internet e poi 1 quando vi chiede dove scaricare il file (purtroppo non sono riuscito a fare le catture schermo dei passaggi).
È possibile attivare più lingue contemporaneamente io, ad esempio, utilizzo la variate del comando così strutturata:
:set spell spelllang=it,en_US
In tal modo il sistema di correzione rileverà gli errori nella lingua italiana ed anche in quella inglese (americana) e, contemporaneamente, non mi segnerà come errato le parole in inglese.
2. Attivare e disattivare il controllo ortografico
Il controllo orografico è comodo, ma a volte è piacevole poterlo disattivare ed attivare a piacimento.
I comandi per farlo sono i seguenti:
:set spell
per attivare il controllo ortografico
:set no spell
per disattivalo.
Nota a margine: in molti casi il modo per attivare o disattivare un comando in Vim è quello di anteporre al comando stesso no
.
2.1 Attivare e disattivare velocemente il controllo ortografico
Tutto molto bello mi direte, ma non proprio comodo digitare tutto questo ogni volta che voglio attivare o disattivare il controllo ortografico.
Avete ragione, per semplificarmi la vita io ho inserito nel mio .vimrc
(il file di configurazione di Vim) il seguente testo:
" Spell-check attiva / disattiva con <leader>o, 'o' per 'ortografia':
map <leader>o :setlocal spell! spelllang=it,en_us<CR>
Cosa fanno queste 2 righe di testo? Semplice, la prima è un commento che spiega cosa fa la riga successiva; la seconda, invece, imposta una “scorciatoia a tastiera” in Vim. Non entrerò troppo nel dettaglio perché merita un articolo a parte, ma con il comando sopra ho impostato che digitando la leader key (il tasto spazio nella mia configurazione) e la lettera “o” sia attiva o disattiva il controllo ortografico.
Ho copiato l’idea da Luke Smith (se conoscete l’inglese vi consiglio di visitare il suo canale YouTube con tanti video su Vim, LaTeX e molto altro).
3. Correggere le parole sbagliate
Abbiamo quindi imparato come attivare e disattivare il controllo ortografico; vedere le parole errate evidenziate in rosso è utile ma come ci possiamo spostare velocemente per correggerle?
Il problema potrebbe sembrare banale, ma in Vim non è possibile spostarsi con il mouse (o quantomeno evitare l’uso del mouse è, tra le altre cose, lo scopo per cui Vim). Bisogna navigare nel testo e, se è relativamente comodo correggere il tutto quando si è a poca distanza dalla parola errata, lo è decisamente meno se la parola è lontana dal nostro cursore.
3.1 Come correggere in Normal mode
La soluzione tuttavia è semplice e veloce. Se siete in normal mode potrete spostarvi da una parola errata e l’altra digitando [s
e ]s
. La prima scorciatoia a tastiera vi porterà alla prima parola errata a sinistra del cursore da correggere, la secondo vi porterà alla prima parola errata a destra del cursore.
Per parola errata Vim considera sia gli errore di scrittura (una parola che non viene trovata nel vocabolario italiano di Vim) sia errori sintattici (che Vim visualizza in blu) come ad esempio una parola che, all’inizio di un nuovo periodo, non inizia con la maiuscola. La cosa veramente interessante di questo metodo è che le parole possono essere a distanze notevoli ma voi vi muoverete istantaneamente.
La variante di questo comando più specifica, permette di passare solo tra le parole sbagliate (quelle che non vengono trovate nel vocabolario di Vim) è [S
e ]S
.
A questo punto ci troviamo finalmente sulla parola sbagliata: come correggerla?
Vim offre come sempre una soluzione rapida!
Basta digitare z=
e comparirà una schermata con le possibili parole corrette; a tali parole sarà anteposto un numero. Sarà quindi sufficiente digitare il numero della parola corretta (quella che volevamo digitare), digitare invio
e Vim procederà a sostituirla.
Vim, abitualmente, ha un buon algoritmo di suggerimento, quindi la parola corretta comparirà tra i primi numeri.
3.2 Aggiungere le parole (corrette o sbagliate) al vocabolario di Vim
Può capitare, e spesso capita, che una determinata parola, casomai specialistica della nostra materia, venga visualizzata da Vim come errore perché non presente nel vocabolario di parole di Vim.
Nessun problema, possiamo inserire una parola nel nostro vocabolario, posizionandoci su di essa e digitando zg
. La parola da rosso diventerà normale. Per ricordarvi questa scorciatoia ricordatevi che z
si usa per correggere (ma non solo) e che la g
sta per “good” (traducibile in italiano come giusto o corretto).
Se volete inserire velocemente una parola a priori l’alternativa è utilizzare:
:spe {parola da aggiungere}
Simile discorso per aggiungere al dizionario parole errate / scorrette. Se siete su una parola che volete che risulti come non corretta basterà digitare zw
la w sta per wrong ovvero sbagliato in inglese.
Se volete inserire velocemente una parola errata a priori l’alternativa è utilizzare:
:spellw {parola da aggiungere}
4. Come correggere in Insert mode
Immaginiamo per un attimo di essere nel mezzo della scrittura di un testo e, a distanza di poche parole rendersi conto di aver digitato male una parola.
Il mio primo suggerimento è quello di continuare a scrivere e, eventualmente alla fine del periodo, usare i comandi che voi ho appena insegnato per la revisione del testo, così eviterete di interrompere il vostro flusso creativo; tuttavia se non siete di questo parere, vediamo come correggere una parola in insert mode (modalità inserimento) senza usare i cursore (le frecce) per spostarsi all’interno del testo in insert mode.
4.1 Attivare il sistema dei suggerimenti
Spostatevi con il cursore sulla parola errata.
A questo punto digitate CTRL+X (tasto control o ⌃ sulle tastiere Apple). Fatto ciò digitate s
.
Si aprirà un menù a finestra con le possibili parole corrette. Per scegliere dal menù a tendina usate la combinazione CTRL+N (acronimo di next ovvero prossimo) ovvero CTRL+P (acronimo di previous ovvero precedente).
4.2 Auto-completamento
Seppur non legato strettamente all'ortografia ed alla auto-correzzione di questo articolo mi pare utile aggiungere brevemente questa sezione che di fatto è strettamente collegata.
Digitando CTRL+X, in modalità insert mode, si accede a molto di più del sistema di correzione degli errori. È possibile procedere all'auto-completamento delle parole che si sta digitando.
Dopo aver digitato CTRL+X invece di s
è possibile digitare:
- CTRL-L per il completamento dell’intera linea (abbastanza inutile per gli scrittori, perché completa con frasi simili a quelle che si è scritti, ma utile se si è un programmatore);
- CTRL-N per il completamento con parole del documento (utile soprattutto per nomi o parole complesse che si usano abbondantemente nel documento);
- CTRL-T per il completamento con i sinonimi (che, tuttavia dalle mie ricerche, non c'è un thesaurus, elenco di sinonimi, in italiano per Vim – ho fatto alcune ricerche e trovato questo ma devo sperimentare ed eventualmente sarà argomento di un futuro articolo);
- CTRL-K per il completamento con parole del dizionario di Vim (anche quelle da voi inserite).
Qui trovate la guida di Vim, tradotta in italiano, se volete approfondire ulteriormente.
4.3 Sincronizzazione del dizionario di Vim su più computer
Premetto che inserisco questa sezione solo a titolo informativo, non ho testato l'opzione e per ora la consiglio solo a chi ha voglia sperimentare.
Nel tempo è possibile aver creato un dizionario personalizzato con parole e termini specifici di come scriviamo, non sarebbe comodo avere quel dizionario sincronizzato su differenti postazioni?
Qui trovate un articolo (in inglese) che spiega come fare.
Nella sostanza utilizza uno spazio cloud (nell'esempio Dropbox ma potrebbe farsi tranquillamente con iCloud) e attribuisce una specifica cartella dove andare a salvare il dizionario di Vim. Con la sincronizzazione a mezzo del Dropbox, poi, il dizionario sarà sincronizzato tra differenti computer che hanno accesso a quel file.
Potreste quindi inserire nel vostro .vimrc una riga simile a questa:
set spellfile=$HOME/Dropbox/vim/spell/it-utf-8.add
5. Maggiori informazioni su spell
Se volete ulteriormente approfondire vi consiglio di digitare in Vim:
:help spell
si aprirà la guida specifica per gli strumenti di correzione.
In conclusione
Spero che questa nuova serie possa essere utile a che, come me, ha deciso di intraprendere l’avventura di scrivere usando Vim. Spero anche che, leggendo questa nuova serie di articoli, chi ancora non usa Vim per scrivere sia incuriosito da questo editor di testo. Come sempre se avete domande o richieste potete farmele nei commenti qui sotto o mandandomi un’email.