Scrivere atti digitali telematici off-line su iPad usando a-Shell (parte prima)
In questi giorni mi sono imbarcato in una strana avventura: trovare un modo di scrivere atti telematici off-line su iPad.
Il problema potrebbe sembrare “banale” ma così non è per vari motivi.
Anzitutto voglio che i documenti creati su iPad off-line, una volta che sono tornato online, siano direttamente sincronizzati, possibilmente utilizzando Secure ShellFish (ho descritto in questo articolo come funziona e perché utilizzo questo specifico programma su iPad per gestire i dati dell’ufficio).
Secondariamente, ma è una “limitazione” auto-imposta significativa, voglio poter utilizzare Vim per automatizzare e velocizzare la scrittura dei miei documenti. Uso Vim da oltre un anno e nel tempo ho sviluppato un flusso di lavoro ottimizzato con questo editor di testi. La scrittura e (soprattutto) la revisione dei testi con Vim, ora, mi permette di essere molto veloce ed efficace.
Perché l’iPad e scrivere off-line?
Dopo un periodo (necessitato) in cui ho lavorato prevalentemente davanti ad un Mac (che fosse ufficio o casa) l’estate mi permette / costringe a lavorare all’aperto e l’iPad è sicuramente lo strumento migliore per svolgere la mia attività. La batteria è capace infatti di durare un’intera giornata (e non ho intenzione di acquistare a breve un portatile Apple M1), inoltre la possibilità di essere un sistema convertibile (da portatile a tablet e viceversa) mi permette di essere molto più flessibile e leggero.
Da ultimo amo questo strumento e la sfida di portarlo all’estremo è per me stimolante (non sarei qui a scriverne altrimenti 😅).
Fino ad ora ho sempre lavorato sull’iPad utilizzando un escamotage. Come ho descritto in questo articolo, infatti, mi collego via SSH ad un Mac remoto (il mio iMac in ufficio, abitualmente) e da lì utilizzo tutti gli strumenti che ho implementato per scrivere atti telematici avanzati.
Collegarsi in remoto all’ufficio, se da una parte è sicuramente una grossa comodità, porta anche degli svantaggi, primo tra tutti la necessità di aver un collegamento ad internet funzionante. Per la mia configurazione, in particolare, vuol dire o far affidamento su un Wi-Fi di terzi (poco sicuro anche se comunque userei la mia VPN) o fare affidamento sull’hotspot del mio iPhone. In tutti ed i due casi l’iPad utilizza il collegamento Wi-Fi consumando preziose risorse e, quando collegato all’iPhone, anche la batteria di quest’ultimo.
Un collegamento ad internet inoltre non è sempre possibile.
Infine usare l’iPad off-line è un mio life motive, ne ho parlato in questo articolo.
Per tutte queste ragioni ho deciso che era il momento di trovare una soluzione “definitiva” al problema (definitiva come può essere qualsiasi soluzione in attesa del WWDC 2021 e delle novità future di iPadOS per l’ultimo trimestree del 2021).
Il grosso problema!
Come ho già scritto il mio attuale metodo di lavoro prevede, per la creazione degli atti giuridici così come degli articoli per Avvocati e Mac, l’utilizzo di markdown (presente in svariate forme su iPad), LaTeX (presente anche se con dei limiti) e … Pandoc totalmente assente.
Proprio l’assenza di Pandoc è da sempre stato il mio grosso scoglio per creare un flusso di lavoro autonomo su iPad.
Non avendo la possibilità io di sviluppare un’app per iOS che gestisca Pandoc ed essendo il passo naturale del flusso di lavoro che avevo già strutturato, ho preso il coraggio a due mani, ed ho fatto il grande salto nel vuoto … ho modificato il mio flusso di lavoro ed iniziato a scrivere atti giuridici in LaTeX!
Mentre scrivo ho implementato da pochissimo questo nuovo flusso e mi riprometto di condividerlo con voi più avanti, quando sarà sufficientemente maturo, nel mentre tuttavia ne approfitto per spiegarvi il funzionamento dell’applicazione che ho scelto per scrivere e lavorare su iPad con questo nuovo metodo: a-Shell.
Oltre a questo, vi spiegherò le personalizzazioni che ho apportato a Vim (attraverso il mio specifico .vimrc) e che non ho mai condiviso con voi prima (nel prossimo articolo).
a-Shell
Vi ho già parlato di questa applicazione in due articoli, uno su come creare un comando rapido per automatizzare un bot in Telegram e l’altro, appunto, su come modificare un documento off-line con a-Shell.
Dal 2020 però l’applicazione ha ricevuto vari aggiornamenti e, ora, mi permette di generare off-line dei PDF avanzati grazie a LaTex (LuaLaTeX per la precisione).
L’applicazione è open-source e gratuita e la potete scaricare qui dall’appStore.
Come funziona a-Shell e che cos’è esattamente?
a-Shell è un’interessante applicazione per iOS ed iPadOS che permette di fare tante piccole utili cose.
Di fatto incorpora un terminale su iOS / iPadOS con una serie di comandi base del mondo Unix (comandi quindi presenti sia su macOS che su Linux, giusto per intenderci).
La cosa interessante di a-Shell è che permette di integrare questi comandi all’interno di iOS / iPadOS attraverso delle azioni di Comandi Rapidi ampliando notevolmente le potenzialità di utilizzo. Io, ad esempio ho creato un Comando Rapido (di cui vi parlerò in un futuro articolo), che mi permette di generare un PDF avanzato direttamente su iOS.
Per i programmatori, inoltre, a-Shell integra varie possibilità per far girare programmi in Python JavaScript, C e C++.
La cosa che mi ha da sempre attirato di a-Shell tuttavia è la presenza di Vim e LaTeX tra i suoi comandi Unix di base (ne parlerò più approfonditamente oltre).
Infine a-Shell è profondamente integrata in iOS / iPadOS, in particolare, permette di visualizzare ed integrare il file system di iOS direttamente nell’applicazione. Questa profonda integrazione permette di utilizzare applicazioni a riga di comando come Vim e LaTeX in modi molto più avanzati ed efficienti di applicazioni “rinchiuse” dentro a-Shell stessa.
I limiti di a-Shell
Ciò detto l’app ha dei limiti (imposti dal sistema operativo di Apple) che da sempre mi hanno non mi hanno permesso di utilizzarla appeno per il mio flusso di lavoro.
Uno dei limiti maggiori di a-Shell, attualmente è l’assenza di Git), il software di controllo delle versioni che, nel mio caso specifico, è essenziale per personalizzare l’esperanza di Vim. Infatti nella versione di Vim per a-Shell non è possibile installare i plug-in di Vim con la semplicità con cui farei su macOS o su Linux.
Ho fatto delle ricerche su internet ho trovato un modo per aggirare in parte questa limitazione (anche qui probabilmente sarà oggetto di un futuro articolo).
La cosa più interessante, tuttavia, è stata la scoperta che, con una sua adeguata configurazione, le funzionalità di base di Vim mi sono più che sufficienti per lavorare in modo produttivo in a-Shell.
Prima di vedere il mio attuale set-up, vediamo come è possibile far interagire a-Shell con i sistemi operativi mobile di Apple.
Accedere ai documenti su File di iPadOS
Vediamo come interagire da a-Shell con il file system di iOS / iPadOS.
Essendo a-Shell una interfaccia a terminale, ovviamente, occorre digitare dei comandi anche per interagire con iOS.
I comandi di base sono i seguenti:
pickFolder
(scegli una cartella): che permette di aprire una qualsiasi cartella di File presente in iOS e di creare un bookmark (un segnaposto in italiano) che permette di ricollegarsi successivamente a tale cartella;showmarks
(mostra i segnalibri): che permette di vedere i bookmark già creati in a-Shell;renamemark
(rinomina i segnalibri): che permette di rinominare uno specifico bookmark, utile se si vuole avere dei bookmark “brevi”, abitualmente con la creazione del bookmark a-Shell attribuisce il nome della cartella;deletemark
(cancella segnalibro): che, infine, permette di cancellare uno specifico bookmark;
Oltre a questi comandi quello che userete di più è jump <nome del bookmark>
che vi permetterà di accedere alle cartelle di iOS a cui avete garantito l’accesso ad a-Shell.
Visto che per alcuni di voi potrebbe essere inusuale l’utilizzo del terminale di seguito vi faccio vedere passo passo come gestire i vari passaggi che, una volta conosciuti, sono molto semplici.
L’interfaccia di base di a-Shell
Prima di entrare nel dettaglio mi pare giusto spiegare brevemente il funzionamento dell’interfaccia (minimale) di a-Shell.
Anzitutto segnalo che per me lavorare in a-Shell senza una tastiera esterna è una operazione decisamente scomoda, ciò detto è utile conoscere la barra delle scorciatoie che diventano essenziali se si usa solo la tastiera virtuale di iOS / iPadOS. Userò l’interfaccia di iOS perché è quella più compatta ma le regole sono le medesime per iPadOS.
Andando in ordine da sinistra a destra trovate:
- il tasto TAB
- il tasto CTRL
- il tasto ESC: essenziale su iOS e iPadOS per Vim per tornare in modalità normale (nota utile: su iPadOS il tasto ESC può essere simulato digitando CMD + . – Comando più punto)
- le 4 frecce di navigazione per muovere il cursore a sinistra o destra e su e giù.
Per digitare ad esempio CTRL+L (che permette di pulire il terminale) dovete premere il tasto n.2 e poi la lettera “l” sulla tastiera virtuale.
Permettere l’accesso ad una cartella di iOS ad a-Shell
Ipotizziamo di voler permettere l’accesso ad una cartella di iOS ad a-Shell, la prima cosa da fare è aprire ovviamente l’app.
La schermata che vi accoglierà sarà un po' “desolante”, non preoccupatevi.
Digitate quindi pickFolder
e premete invio. Un piccolo trucco: nel terminale, e così anche quello di a-Shell, digitando le prime lettere di un comando e poi il tasto TAB si attiva la funzione di auto-completamento del terminale. Per cui, ad esempio, digitando le lettere “pick” e poi premendo il tasto TAB, vi troverete con il comando “pickFolder” completamente digitato. Questo vale anche per i nomi dei file. Cosa molto comoda soprattutto se avete un nome molto lungo e con degli spazi (in questo caso l’auto-completamento aggiungerà anche gli escape necessari).
Se avete digitato pickFolder
si aprirà una interfaccia famigliare di iOS che mostrerà i possibili fornitori di contenuti (file provider) presenti sul vostro dispositivo. Sicuramente iCloud e, in base alle applicazioni da voi installate, altri fornitori (per approfondimenti qui alla voce “Utilizzare app di terze parti” trovate la guida del supporto Apple).
Nel mio esempio utilizzerò l’app Working Copy, perché i contenuti di Avvocati e Mac li scrivo in un repository Git privato di GitHub (ovviamente questo articolo è interamente scritto in a-Shell collegato al repository di Avvocati e Mac.)
Una volta selezionata la cartella che volete condividere ricomparirà la shell di a-Shell. Nulla sembra essere successo ma se digitate il comando ls
(che stampa a terminale la lista dei file presenti nella cartella di lavoro) scoprirete la presenza dei vostri documenti. Nell’immagine sottostante vedete il listato degli articoli il lavorazione di Avvocati e Mac.
Ora potrete aprire con Vim i documenti in formato testo digitando il seguente comando a terminale:
vim "nome del file da aprire.estensione"
e premete invio. Si aprirà il documento all’interno di Vim e potrete lavorarci sopra.
Piccola nota a margine: ho usato la sintassi vim "nome file.md"
perché per aprire i file con all’interno del nome degli spazi o si fa il c.d. escapeing (ovvero si antepone ad ogni spazio la barra rovesciata “\”) oppure si mette tra apici (o doppi apici) il nome del file come ho fatto io nell’esempio.
Anteprima di iOS dei documenti direttamente in a-Shell
Un’altra cosa comodissima presente in a-Shell è la possibilità di aprire i documenti presenti nelle cartelle di a-Shell (siano essere cartelle fisiche dell’app che cartelle condivise di iOS) utilizzando i comandi view
(visualizza) ed open
(in italiano, apri). Piccola nota: la stessa cosa è possibile fare in macOS con un simile (seppur differente) comando open
.
Con il comando view
è possibile aprire un qualsiasi documento compatibile con l’Anteprima di iOS / iPadOS, immagine sottostante (ho aggiunto questa parte della guida grazie a questo articolo). Questa funzione è molto comoda per visualizzare velocemente un documento all’interno di a-Shell (posto che lo stesso sia apribile in iOS / iPadOS).
Come si vede nell’immagine sottostante grazie al comando open
comparirà la sharesheet e sarà possibile aprire il documento in una qualsiasi applicazione di iOS che supporti la specifica estensione del file. Nel mio caso ovviamente la cosa interessante è aprire il PDF generato da LaTeX.
In conclusione
Mi ero riproposto di fare un articolo relativamente semplice su a-Shell e su come utilizzarlo per lavorare in Vim su iPad … come al solito mi sono lasciato prendere un po' la mano per cui ho deciso di spezzare l’intero articolo in due parti (la prima, se siete arrivati fino a qui, l’avete letta!).
Nel prossimo articolo (la settimana prossima) vedremo come ho personalizzato Vim per scrivere all’interno di a-Shell.
Non ho mai condiviso in maniera concreta i trucchi e le configurazioni di Vim che ritengo utili per scrivere, per cui spero possa essere di interesse. Tra l’altro, grazie ai “limiti” attualmente imposti da a-Shell ho fatto un grosso lavoro di pulizia ed ottimizzazione che, col senno di poi, era necessario.
A-Shell è un app gratuita e provare non vi costa nulla … casomai ne rimarrete positivamente stupiti.
Da ultimo segnalo che ho fatto una serie di video su Vim e che, se vi ho incuriosito, potete andare a vedervi.
Come sempre se avete domande o curiosità potete lasciare un commento qui sotto (segnalo che SquareSpace e Safari non funzionano benissimo quindi vi suggerisco di lasciare un commento da Firefox o Chrome).
In questo, non breve articolo, vi spiego come sia possibile automatizzare la compilazione di un documento Word (senza addirittura utilizzare Word stesso) con la libreria Python docxTemplate e Comandi Rapidi.
Leggi tutto …