Trucchi per aprire su iPad (ma che funziona anche su macOS) con a-Shell anteprima dei documenti in Vim
Sto usando sempre più Vim all’interno di a-Shell per scrivere questi articoli così come per i miei atti.
Per puro caso, mentre leggevo questa cheatsheet (traducibile in italiano forse come bigliettino, guida rapida) mi sono imbattuto in una funzione interessante che, poi, mi ha permesso di implementare anche un trucco direttamente all’interno di Vim.
In estrema sintesi ho trovato un modo rapido per visualizzare l’anteprima di documenti mentre sto scrivendo / lavorando in Vim e, così facendo, ho reso più rapido e veloce il mio flusso di lavoro quotidiano.
Credo che questa soluzione, non particolarmente complessa, possa rendere maggiormente appetibile l’utilizzo su iPad di a-Shell ed in particolare di Vim per cui condivido con voi questi interessanti trucchetti.
Ma prima …
1. Cos'è Netrw?
Molti non lo sanno ma Netrw è un browser testuale di documenti, presente all’interno di Vim, per navigare ed aprire documenti in Vim stesso.
Quella che vedete qui sotto è la rappresentazione base di Netrw e, diciamocelo, non è molto accattivante.
Personalmente nel mio .vimrc
inserisco sempre le seguenti istruzioni che rendono l’interfaccia di Netrw decisamente più piacevole. Se volete potete tranquillamente copiarlo nel vostro .vimrc
.
" Configurazione Netrw (browser file di Vim)
let g:netrw_banner = 0 " Toglie la barra in alto di spiegazioni
let g:netrw_liststyle = 3 " Stile dell'alberatura dei file
let g:netrw_browse_split = 3 " File aperto in un nuovo tab (1 split orrizzontale, 2 split veritcale, 4 nella precedente finestra)
let g:netrw_winsize = 25 " split di 25 caratteri
Così facendo Netrw si aprirà sulla sinistra della finestra principale di Vim (come mostrato nell’immagine sottostante) e potrà essere richiusa semplicemente digitando ZZ
.
A questo potete selezionare un documento o aprire una cartella (usando il tasto invio e le frecce o j
e k
) per aprire il documento selezionato in un nuovo tab di Vim.
Grazie poi alla scorciatoia a tastiera che ho spiegato in questo articolo lo split verticale è modificabile utilizzando in modalità normale i tasti 1
e 2
.
2. Come aprire un documento in anteprima con Netrw il file browser di Vim
Veniamo quindi al trucchetto interessante di cui vi volevo parlare.
Se aprite un file di testo, come vi ho spiegato poco sopra, Vim provvederà a visualizzarvelo ma se, ad esempio, aprite un PDF vi comparirà a schermo una cosa simile a quella mostrata qui sotto.
Ciò è dovuto al fatto che Vim non è in grado di visualizzare correttamente un PDF e ne visualizza solo la versione testuale del file binario.
Se tuttavia in Netrw
, una volta selezionato il file non testuale che si vuole aprire, si digita la lettera “x” (x minuscola) è possibile aprire con il programma di sistema associato il file così individuato.
Mi sono quindi domandato se il tutto funzionasse anche nella versione di Vim contenuta in a-Shell.
Infatti, in questo caso, una simile funzione avrebbe semplificato notevolmente la gestione all’interno dell’applicazione dei documenti (spesso PDF) che, in molte occasioni, devo esaminare.
Con piacere ho scoperto che digitando x
dopo aver selezionato i documenti in Netrw, a-Shell fa partire il comando open
che permette di condividere nella sharesheet il documento (non view
che invece aprirebbe l’anteprima - vi ho parlato di questi due comandi di a-Shell qui).
Ero quindi a metà dell’opera, almeno dal mio punto di vista.
Ho creato un Comando Rapido minimale che per comodità riporto qui sotto.
Il Comando Rapido prende l’input fornito dalla sharesheet (il documento che abbiamo selezionato precedentemente) e lo passa ad una azione di anteprima che mi permette di visualizzare a schermo intero (perché così ho deciso io nelle impostazioni dell’azione) il documento.
Unica ovvia limitazione di questo “trucco” è che il documento deve essere visualizzabile dall’anteprima di iOS / iPadOS.
Siccome l’appetito vien mangiando mi è venuto in mente che, una simile soluzione, mi sarebbe venuta comoda anche mentre sto scrivendo in Vim.
Ed eccoci al secondo trucco.
3. Aprire documenti e URL all’interno di Vim
Partiamo da una breve premessa.
In Vim se si è sul nome di un file utilizzando il comando gf
, la qui mnemonica potrebbe essere Go to File (ovvero, tradotto in italiano, vai al documento), Vim apre il suddetto documento.
La cosa interessante di questo comando è che non c'è da selezionare l'intero testo del nome del file, basta far atterrare in una qualsiasi posizione il nostro cursore sul nome e digitare gf
e boom … vi trovate lì.
Ovviamente questa non è magia, ma semplicemente dietro le quinte Vim è sufficientemente intelligente da riconoscere il percorso del documento ed aprilo.
Questa opzione è molto utile per chi scrive codice (permette infatti di muoversi velocemente da un file all’altro di un progetto).
Questa funzione, tuttavia, è molto comoda anche per chi scrive in Markdown o in LaTeX.
Infatti in tutti e due i linguaggi di markup si fa riferimento a dei documenti nel file system: quando ad esempio si inserisce una immagine in markdown od un link ad un documento (per esempio negli atti telematici avanzati) così come in LaTeX dove, addirittura, si può includere delle porzioni di testo da documenti “esterni” (ve ne parlerò in un futuro articolo).
gf
tuttavia è utile, come sempre, solo per i documenti scritti in testo semplice che vengono letti senza problemi da Vim.
Sarebbe molto comodo poter aprire e visualizzare rapidamente anche altre tipologie di documenti, ad esempio PDF o immagini.
3.1 Usare nuovamente il comando open
di a-Shell ed il sistema di parsing del percorso del documento di Vim
Ho quindi guardato in giro per internet fino a che non ho trovato questo post.
Tra i vari suggerimenti presenti quello che ho trovato più comodo e come soluzione più rapida è il seguente.
Mappare il comando gO
ed utilizzare il comando open
di a-Shell per aprire indifferentemente URL su cui si trova il vostro cursore o file su cui si trova il cursore (ovviamente per i file questi devono essere reperibili in a-Shell grazie ai bookmark di iOS quindi c'è bisogno di un minimo di premure perché tutto funzioni).
La bellezza del comando open
di a-Shell è che accetta indifferentemente il percorso di un file così come un url tipo https:// …
.
Per fare questo occorre passare al comando di a-Shell la stringa (il percorso del documento o l’url da aprire nel browser) estrapolata da Vim. È possibile fare ciò inserendo la funzione <cfile>
dopo il comando di a-Shell open
.
Mi è quindi bastato inserire nel mio .vimrc
per a-Shell il seguente testo:
noremap gO :!open <cfile><CR>
3.2 Riferimenti a documentazione e materiale a corredo in iOS / iPadOS e macOS grazie a DEVONthink
Ultimo aspetto positivo di questo sistema è che, oltre che alle semplici pagine web, il sistema funziona con gli URL Schemes di iOS e macOS.
Questo significa che inserendo un url come il seguente:
x-devonthink-item://CCF73D3A-2FAD-4D72-9ACA-ACD30318646B?page=37
è possibile aprire un PDF contenuto all’interno di DEVONthink (per iOS / iPadOS come per macOS). Questo sistema funziona per tutte le applicazioni che hanno una qualche implementazione di Url Schemes e permette di avere del materiale di riferimento mentre si scrive facilmente consultabile in iOS / iPadOS.
3.3 Il comando open
su macOS ed alcune sue limitazioni
Chiosa finale di tutto questo discorso: anche su macOS questo comando funziona perfettamente in Vim.
Differente discorso dovrebbe valere per gli indirizzi web. Se siete incuriositi dalla possibilità, tuttavia, vi segnalo questo script per aprire URL nella riga che ho trovato su internet.
Personalmente ho fatto qualche test ed il comando open
di macOS funziona in modo similare ad a-Shell ma resto a disposizione se qualcuno si trovasse a riscontrare qualche differenza. Credo che il problema principale sia la conversione degli spazi ed altri caratteri speciali negli URL ma io abitualmente inserisco già correttamente formattati e quindi non ho di questi problemi.
4. Una ultima considerazione / limitazione sui segnalibri (bookmark) di a-Shell ed iOS / iPadOS
Tengo per ultimo l’argomento più “spinoso” e tecnico.
Come vi ho spiegato in questo articolo grazie alla funzione pickFolder
è possibile creare un segnalibro (bookmark) all’interno di a-Shell che punti ad una specifica cartella di File sul vostro iPhone / iPad.
Grazie a ciò, a-Shell è in grado di accedere a tutti i documenti ed alle sotto-cartelle contenuti in quel segnalibro. Questo è il sistema di Apple per permette ad una applicazione di accedere ad altre cartelle del File System di iOS / iPadOS, ma ha delle limitazioni che devono essere tenute in debita considerazione.
- Non tutte le applicazioni danno accesso completo alle loro cartelle: personalmente uso Working Copy (per i miei articoli di Avvocati e Mac) e Secure ShellFish (per le pratiche di lavoro) ed entrambe le applicazioni espongono le loro cartelle senza problemi ad a-Shell. Così non è ad esempio per NextCloud o DropBox giusto per fare due nomi.
- Bisogna fare attenzione a quale cartella principale si condivide: il sistema di apertura dei documenti funziona solo se a-Shell ha accesso alla cartella in cui si trova il file che vogliamo aprire; questo significa che è importante da quale cartella partiamo per garantire l’accesso ad a-Shell; nel caso delle mie pratiche, ad esempio, io ho dato accesso ad a-Shell alla cartella principale in cui sono contenute tutte le sotto-cartelle con le singole pratiche (all'interno delle quali sono presenti ulteriori sottocartelle), in questo modo ho accesso a tutto il contenuto e da una pratica posso, se voglio, aprire documenti contenuti in un’altra pratica.
- Alla riapertura di a-Shell potrebbe essere necessario ri-dare accesso alle cartelle esterne: ho notato che, dopo il riavvio dell’iPad o di a-Shell (io sto utilizzando la beta ed a volte capita di dover riavviare l’app) si riceve un errore accedendo alle cartelle a cui si è fatto il bookmark o segnalibro, in questo caso occorre nuovamente fare il
jump
in a-Shell a quello specifico segnalibro. Io ho creato deglialias
per velocizzare questa operazione (probabilmente sarà l’argomento di un futuro articolo). - Il documento da aprire deve essere supportato in un qualche modo dall’anteprima di iOS / iPadOS e macOS: altrimenti non vedrete visualizzato nulla; nella maggior parte dei casi, quantomeno per la mia esperienza sono PDF o immagini, documenti che sono supportati senza problemi dall’anteprima di sistema non si hanno molti problemi ma è comunque qualcosa da tenere presente.
In conclusione
Per un avvocato scrivere, spesso, significa poter esaminare e far riferimento a documenti in poco tempo. Grazie alle funzioni incorporate di Vim ed alcuni comandi in a-Shell è possibile farlo con comodità all’interno di iPad. La cosa che personalmente trovo più interessante di questa soluzione è il fatto che l’unione di questi due strumenti renda molto più rapida l’anteprima dei documenti in iPad e riduca drasticamente l’interazione che si deve avere con lo schermo. Inoltre quanto implementato su iPad può essere implementato facilmente sul Mac rendendo il modo di lavorare indifferente sulle due piattaforme.
Sicuramente sia Vim che a-Shell hanno un minimo di curva d’apprendimento ma i benefici che portano al flusso di lavoro su iPad sono notevoli.
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 …