nnn (n³), un file manager da riga di comando
Perché usare un file manager nel terminale?
Quando devo cercare un file ho bisogno di trovarlo nel più breve tempo possibile. Per questo motivo ho sempre adorato il file manager di KDE, Dolphin, in quanto permette la navigazione nel file system tramite tastiera molto più velocemente rispetto agli altri file manager. La selezione dei file digitande le iniziali ha un comportamento consistente e molto più preciso rispetto alle alternative, ed inoltre presenta un filtro dei file decisamente funzionale.
Purtroppo Dolphin richiede molte dipendenze di KDE che non uso più da diverso tempo, quindi ho cercato un file manager alternativo, leggero, veloce da usare e altrettanto comodo. Ho quindi trovato PCManFM, il file manager di LXDE. Funziona abbastanza bene ma non ha la stessa fluidità d’uso di Dolphin, soprattutto per attivare/disattivare il filtro rapido e, ogni tanto, perde anche il focus durante la ricerca dei file tramite la digitazione delle iniziali (difetto che ho riscontrato anche in molti altri file manager basati su libreria GTK).
Quindi ho provato alcuni programmi da terminale. Per un po’ ho sperimentato Ranger che però ho trovato scomodo perciò ho continuato ad usare PCManFM, non ottimale ma meglio di niente.
Poi, casualmente, ho scoperto nnn che mi ha sorpreso grazie alla navigazione in tempo reale durante la digitazione. Mentre l’opzione è attiva (esiste anche un parametro per avviare il programma direttamente in questa modalità: -d
) basta digitare alcuni caratteri per filtrare la lista corrente e, nel caso ci sia solo una corrispondenza, e questa sia una directory, automaticamente ci si entra dentro.
Questa funzionalità è addirittura troppo veloce per me quindi ho disabilitato l’apertura automatica delle directory perché a volte non mi rendo nemmeno conto di quello che succede, tanto è veloce.
Shortcut comuni
Un altro motivo per cui trovo nnn ottimo, è la presenza di shortcut molto facili. Ranger, ad esempio, usa la sintassi di VI. La conosco ma in questo contesto la trovo eccessivamente complessa.
Ecco le più comuni:
Shortcut | Azione |
---|---|
x | Elimina |
Spazio | Seleziona file |
p | Copia la selezione nella directory corrente |
v | Sposta la selezione nella directory corrente |
CTRL+r | Rinomina |
n | Crea nuovo (file / directory / collegamento) |
/ | Filtra (non serve se è attivo il filtro automatico) |
z | Comprimi file selezionati |
1-4 | Cambia tab (da 1 a 4) |
Tab | Cicla i tab |
Supporto fino a 4 schede (context)
Una caratteristica molto comoda dei file manager grafici è la possibilità di avere più schede in modo da avere più directory a portata di mano per un massimo di 4. Su nnn le schede si chiamano “context” e si può passare da una scheda all’altra o premendo i tasti dall'1 al 4, oppure con il tasto Tab
.
Funzionalità avanzate
nnn supporta anche funzionalità avanzate come la navigazione nei file su server remoti tramite SSH, la creazione di segnalibri, l’utilizzo di plugin per estendere le funzionalità di base e la rinominazione di file sfruttando un editor esterno.
Proprio questo ultimo punto è molto interessante, usando VIM come editor predefinito di nnn si riesce a rinominare i file sfruttando le potenzialità dell’editor, ad esempio usando le espressioni regolari.
Plugin per nnn
Su Github sono presenti numerosi plugin per aumentare le funzionalità del programma. I più interessanti sono:
- dups: ricerca di file duplicati
- chksum: effettua la creazione ed il controllo dei checksum dei file.
- diffs: lancia il comando
diff
per trovare le differenze tra due file (tramite vimdiff).
I plugin per nnn non sono altro che degli script eseguibili (o binari) che vengono eseguiti da nnn e che ci scambiano informazioni, pertanto possono essere sviluppati in qualunque linguaggio.
La mia configurazione di nnn
La configurazione di nnn avviene tramite variabili di ambiente e con parametri di avvio da riga di comando. Dopo alcune sperimentazioni ho trovato il giusto bilanciamento eseguendo il programma con i seguenti parametri:
nnn -e -d -C -n -A -o -x
-e
: usa la variabile di ambiente$VISUAL~/$EDITOR
(oVI
come fallback) per aprire e modificare i file.-d
: parte in modalità dettagliata mostrando data, ora, permessi e dimensione dei file.-C
: usa lo schema di colori ereditato dal terminale.-n
: attiva la modalità type to nav per la navigazione veloce.-A
: disattiva l’apertura automatica delle directory.-o
: apre i file solo tramite il tasto “Invio” (di default si possono aprire anche con la freccia a destra).-x
: copia automaticamente i percorsi di file selezionati nella clipboard.
È il file manager definitivo?
Questo software non è perfetto, ad esempio l’anteprima delle immagini non è pratica come in un file manager grafico, però c’è anche da dire che in quel caso c’è sempre PCManFM installato, nessuno mi vieta di usare il programma giusto al momento giusto.
Nessuno mi vieta di usare il programma giusto al momento giusto.