Scrivere atti telematici avanzati con VIM
Nello scorso articolo abbiamo parlato di come creare documenti digitali avanzati attraverso il Markdown, Pandox e LaTeX. Chiudevo l'articolo segnalandovi come un passo naturale, una volta abbracciato l'utilizzo di questi strumenti, fosse quello di utilizzare un editor di testo per la scrittura e manipolazione del testo.
In questo articolo vi parlerò dell’editor di testo che mi ha entusiasmato: VIM. Vi parlerò in particolare del perché ho scelto Vim e dei suoi pro e contro.
1. Scrivere atti in un programma testuale è una follia?
Nello scorso articolo vi ho descritto i miei esperimenti con Pandoc e LaTeX per creare atti telematici avanzati.
Mentre approfondivo e studiavo i segreti di questi due programmi opensource mi sono reso conto che utilizzare dei "semplici" programmi per la scrittura in Markdown, come ad esempio ByWord o Typora, non era sufficiente.
Infatti, dovendo inserire frammenti di codice LaTeX all'interno del Markdown, avevo necessità di un programma più pensato per la creazione di codice che per la creazione di testo scritto. Inoltre, utilizzando un programma per la creazione di codice, mi sarei potuto avvantaggiare di tante automazioni che sono tipiche dei programmi pensati per scrivere codice. In questi casi infatti il testo segue spesso degli schemi ripetitivi. Infine, se un software è stato creato per digitare codice, è sicuramente in grado di creare testo normale. Inizialmente ho pensato di provare un software come SublimeText ma, mentre facevo un po' di ricerche sono incappato in Vim.
1.2 Alla scoperta di VIM
Vim, o Vi IMproved, è un editor di testo open source e multipiattaforma, nato per fornire una versione migliorata di Vi). Vim è in circolazione da oltre 40 anni (Vi è stato creato nel 1976 e Vim nel 1988 anche se è stato distribuito la prima volta nel '91). Questo software è nato da quando non esistevano i personal computer o il mouse ed è usato da programmatori e non solo.
Vim è preinstallato su tutti i sistemi macOS(quantomeno una sua qualche versione – su Sierra c'è la 7.4 mentre su Mojave la 8); per caricare il programma basta digitare da Terminale il comando “Vim”.
E qui immagino di aver perso il 90% di voi.
Perché mai mettersi ad utilizzare un programma che gira da Terminale? Che cos'è il Terminale ? Cliccate il link se non sapete che cosa sia …
Restate con me e cercherò di spiegarvi le motivazioni che mi hanno spinto a guardare video e leggere svariati articoli e documentazione.
1.3 Scrivere e lavorare solo con la tastiera
Se avete letto i miei articoli sapete che sono un amante delle scorciatoie a tastiera e dell'utilizzo degli snippet di testo per velocizzare la scrittura.
Quando si creano dei contenuti, fa perdere tempo e concentrazione sollevare le dita dalla tastiera per fare altri movimenti (spostare il puntatore del mouse o addentrarsi in sotto menù a tendina). Sono ancora più incisivi, a livello di tempo, questi passaggi dalla tastiera al mouse quando – una volta scritta la bozza del nostro documento – dobbiamo apportargli modifiche, aggiunte e revisioni. In questi casi si perde molto tempo nel passaggio dallo scrivere (modificando il testo) a navigare all'interno del documento (utilizzando il mouse o altri strumenti) per apportare le necessarie modifiche.
Vim ha una genesi molto particolare e, come vedremo nel punto successivo, è uno strumento pensato per scrivere e revisionare testo senza alzare le dita dalla tastiera.
1.4 La storia di VIM
Vim nasce in un epoca in cui si poteva lavorare solo con la tastiera; addirittura le tastiere, come le conosciamo oggi, non esistevano (ad esempio mancavano le frecce di navigazione ed altri tasti “speciali”). Anche la visualizzazione del testo era ridotta da monitor di piccole dimensioni. Era quindi necessario, per leggere e modificare un documento, potere avere dei comandi efficaci e potenti che riducessero al minimo indispensabile la navigazione / modifica del documento .
1.5 La potenza di VIM e la curva di apprendimento alta
Vim incorpora funzioni sviluppate per un'epoca passata dell'informatica ma che, oggi, sono ancora attuali per chi vuole scrivere velocemente e senza distrazioni.
La potenza di un software viaggia di pari passo con la difficoltà di padroneggiarne l'utilizzo. Vim, per non far alzare le dita dalla tastiera, utilizza comandi corrispondenti ad una lettera della tastiera o ad una combinazione di più lettere.
Per utilizzare Vim occorre imparare le combinazioni di tasti necessari per impartire i (tanti) comandi; inoltre, come molti programmi testuali, la configurazione dell'interfaccia e del comportamento del programma è fatta a mezzo di file di configurazione testuali, i quali da un lato permettono di configurare il programma per le proprie specifiche esigenze e, dall'altro lato, rendono complessa la configurazione all'utente neofita.
1.6 Un programma modale
Se ciò non bastasse, a rendere ancora più complesso il tutto, devo segnalarvi che Vim è un programma modale. Ciò significa che Vim è un programma con differenti modalità: ognuna delle quali ha caratteristiche, comandi e scopi differenti.
In Vim ci sono differenti modalità di cui le tre principali sono:
- Inserimento (c.d. insert mode): per digitare il testo del nostro documento con la tastiera;
- Normale: per navigare il documento, modificarlo e revisionarlo; in questa modalità è possibile anche accedere ad altri programmi di Shell ed utilizzare le funzioni del Terminale collateralmente (per creare, ad esempio, un PDF dal nostro testo in Markdown) o per acquisire dati (testo) da altre fonti;
- Visuale: per selezionare il testo come si usasse il mouse (oltre ad altre possibilità più avanzate che qui non ha senso riportare ma che troverete nel video dimostrativo in fondo all'articolo).
Oltre ad imparare i comandi è necessario padroneggiare le varie modalità di Vim e conoscere come uscire da una modalità per entrare in un'altra, tutto ciò in base alle azioni che vogliamo compiere sul testo.
Revisionare un testo in Vim, in particolare, richiede un approccio più meditato (richiede di pensare alla modifiche che si voglio apportare prima di apportarle realmente) ma ciò rende la revisione del testo più mirata e precisa.
Posso garantirvelo perché questo articolo è una revisione di una precedente newsletter (qui potete iscrivervi) mandata un mese fa agli iscritti ed ho usato proprio Vim per integrare ed ampliarne i contenuti (oltre che per aumentare la mia esperienza nell'utilizzo di questo strumento – trovate qui la newsletter originale).
1.7 I vantaggi di VIM
Se siete rimasti con me fino a questo punto, immagino che vi sarà materializzata una domanda in testa: ma allora perché usare Vim se è così complesso?
Pur non essendo un esperto del programma ci sono alcuni evidenti vantaggi nell'utilizzo di questo software: anzitutto la flessibilità. I comandi di Vim, una volta conosciuti, permettono di navigare velocemente all'interno del testo che Vim conosce “intimamente”. Giusto per farmi capire vi farò un breve esempio.
In Normal mode (Modalità normale) premendo solo il tasto “w” (che sta per word, "parola" in inglese) è possibile passare dall'inizio di una parola all'inizio di un'altra. Se mi trovo su di una riga e voglio passare alla quinta parola mi basterà digitare “5w” (che significa "premi 5 volte il tasto w" ovvero avanza il cursore all'inizio della quinta parola). Infine, se io voglio cancellare la parola su cui mi sono spostato, potrò digitare “dw” e l'intera parola sarà cancellata ("d" sta per delete, cancella in inglese, e “w” per parola come abbiamo già visto). In sintesi digitando la stringa di quattro caratteri (comandi) “5wdw” io potrò spostarmi alla quinta parola del documento e cancellarla. Provate a fare lo stesso con un mouse nel tempo in cui io ho digitato 4 caratteri …
Anche volendo utilizzare i comandi a tastiera normali non sarei risuscito a fare di meglio!
Avrei, infatti, potuto premere ⌥ e la freccia destra del tastierino 5 volte per spostarmi di cinque parole (anche se in questo caso non mi sarei potuto spostare precisamente all'inizio della quinta parola) poi premere ⇧⌥ e la freccia a destra per selezionare la parola stessa ed infine ⌘X per cancellare la parola così selezionata.
Questo breve esempio, ovviamente, è la c.d. punta dell'iceberg; concatenando i comandi di Vim è possibile manipolare il testo (ma anche navigare, ricercare, etc …) in modi inimmaginabili per chi è abituato ad utilizzare un software di video-scrittura.
Utilizzare Vim però richiede di cambiare il modo di pensare come si ci approccia ad un testo. Occorre, come già detto, pensare prima di modificare il testo già scritto. Quest'approccio potrebbe sembrare più "lento" ma, in modo contro intuitivo, permette di essere più attenti alle modifiche che si pongono in essere e, così facendo, di ottene risultati migliori e più mirati.
Vim inoltre è potente. È possibile infatti apportare modifiche ricorsive (ovvero in modo ripetitivo) facilmente. Il tasto “.” ripete l'ultimo comando impartito in Vim. Questo permette di riapplicare l'ultimo comando impartito: utilissimo se si deve applicare la medesima modifica più e più volte.
Vim, inoltre, permette di visualizzare più documenti contemporaneamente (un po' come fa Scrivener) nonché controllare le differenze tra due o più versioni di un medesimo documento.
Vim, inoltre, è gratuito (essendo open source), è multi piattaforma, potete utilizzare il medesimo strumento su macOS così come Windows, è infine leggero, non richiede grosse risorse dal vostro computer e può girare anche su computer obsoleti.
Vim, infine, è espandibile attraverso c.d. plugin (ovvero piccole estensioni che permettono al programma di svolgere compiti specifici) nonché altamente configurabile grazie alla possibilità di personalizzare i file di configurazione del programma.
Da ultimo, ma solo quale esempio, è possibile creare snippet di testo personalizzati per velocizzare la digitazione di testo (un po' come TextExpander).
1.8 Gestione a Terminale
Per utilizzare Pandoc e LaTeX è già necessario sporcarsi le mani e lavorare con comandi a terminale.
Vim integra la possibilità di lavorare (sempre all'interno della sua interfaccia) da terminale. Nel video che segue (un esempio dell'utilizzo di Pandoc, LaTeX e Vim per creare un atto telematico avanzato) utilizzo proprio questa funzione per inserire all'interno del documento in Markdown l'elenco dei nomi dei file a cui poi creare in automatico un collegamento all'interno del PDF finale.
Questo ha un doppio vantaggio perché permette di creare delle bozze al volo dei nostri documenti di testo mentre li stiamo modificando e perché è possibile utilizzare i comandi a Terminale per recuperare informazioni da inserire nel nostro documento di testo.
In conclusione
È quindi una follia voler scrivere atti giuridici (o più in generale documenti) in un editor di testo come Vim?
Come sempre la risposta è: dipende!
Se si è disposti ad investire una certa quantità di tempo per padroneggiare uno strumento avanzato e poi risparmiare molto tempo in futuro, la risposta è sì.
Se invece non si ha la possibilità o volontà di fare questo investimento, la risposta è no.
Allo stato, poi, ci sono veramente poche risorse in italiano sull'argomento e, quelle in inglese, sono rivolte prevalentemente ai programmatori e non agli scrittori.
Se vi ho incuriosito tuttavia vi consiglio alcune risorse utili in italiano:
- Vimtutor: basta digitare nel terminale sul vostro mac
vimtutor
e potrete accedere ad una semplice guida testuale (in italiano) sulle funzioni di base di Vim;
- La documentazione di Vim in italiano (help Vim): dove trovate il grosso dell'help (aiuto in inglese) di Vim tradotto in italiano; Vim è uno dei programmi con una delle migliori e più complete guide all'utilizzo;
- Futuri articoli di Avvocati e Mac: credo che sia scontato dirlo ma io conto in futuro di scrivere articoli sull'utilizzo di questo programma per scrivere documenti in markdown.
Come sempre, visto anche l'argomento non particolarmente tipico di Avvocati e Mac, potete lasciare i vostri commenti e le vostre idee nei commenti qui sotto.
Mi farebbe molto piacere sapere cosa ne pensate della possibilità di utilizzare Pandoc, LaTeX e Vim.