Connect with us

Linux

Una rapida introduzione a fzf (Interactive Command-Line Fuzzy Finder)


esempio di anteprima fzf

Ho menzionato fzf alcune volte negli articoli su Linux Uprising, ma non ne ho mai scritto. fzf fa parte del mio flusso di lavoro da molto tempo ed è uno strumento straordinario di cui dovresti essere a conoscenza.

Mi rendo conto che molti di voi stanno già usando fzf, ma per coloro che non lo fanno, questo articolo è per voi. Questa è solo una semplice introduzione a fzf, senza entrare troppo nei dettagli. La pagina del progetto fzf e il wiki forniscono ampie informazioni su fzf, il suo utilizzo, così come molti esempi, quindi controlla quelli per maggiori informazioni.

fzf è un fuzzy finder da riga di comando veloce e interattivo scritto in Go. Lo strumento è disponibile per Linux, macOS, * BSD e Windows.

Può essere utilizzato manualmente o negli script analizzando l’output di un comando, utilizzando le estensioni della shell (che includono il completamento automatico fuzzy per Bash e Zsh, nonché associazioni di tasti come CTRL-T, CTRL-R e ALT-C per Bash, Zsh e Fish) e come plugin Vim / Neovim. C’è anche uno script Tmux per avviare fzf in un riquadro Tmux.

Ecco cosa fanno queste combinazioni di tasti della riga di comando fzf:

  • CTRL-R: cerca nella cronologia dei comandi. stampa Enter per incollare il comando selezionato dalla cronologia sulla riga di comando. Passare dalla rilevanza dell’ordinamento all’ordine cronologico premendo CTRL-R di nuovo (per impostazione predefinita, l’ordinamento viene eseguito per pertinenza)
  • CTRL-T: mostra un elenco di file e cartelle nella directory corrente (e nelle sottodirectory). stampa Enter per incollare il percorso del file / cartella selezionato nella riga di comando
  • ALT-C: mostra un elenco di sottodirectory nella directory corrente. stampa Enter per cd nella directory selezionata

Per impostazione predefinita, la sintassi di ricerca consente di digitare più termini di ricerca delimitati da spazi (fzf viene avviato in modalità di ricerca estesa). Se desideri trovare corrispondenze esatte, anteponi al termine di ricerca una virgoletta singola (es 'search-term). Maggiori informazioni sulla sintassi di ricerca fzf qui.

Il cercatore fzf interattivo utilizza le seguenti combinazioni di tasti per impostazione predefinita: / (o CTRL-J / CTRL-K o CTRL-N / CTRL-P) per spostare il cursore su e giù, il Enter per selezionare un elemento e CTRL-C (o CTRL-G / ESC) uscire. Supporta anche la selezione di più elementi quando si utilizza il file -m argomento della riga di comando e in tal caso è possibile selezionare più elementi utilizzando TAB e Shift-TAB.

fzf viene fornito con il supporto del mouse, quindi puoi fare clic, scorrere, fare doppio clic sugli elementi, ecc. Per la modalità di selezione multipla, puoi usare Shift-click e Shift-scroll.

Altre funzionalità fzf includono la possibilità di mostrare un riquadro di anteprima (--preview=COMMAND), impostarne l’altezza (es --height 50%), aggiungi un bordo (--border), utilizzare associazioni di tasti personalizzate, utilizzare layout diversi (come un layout inverso), abilitare l’elaborazione di codici colore ANSI e molto altro.

Alcuni semplici esempi che mostrano cosa può fare il fuzzy finder da riga di comando fzf

Ricerca fuzzy nella cronologia della shell (CTRL-R):

fzf ctrl-r esempio di gif animata

Completamento fuzzy per file e directory (questo viene attivato terminando il comando con la sequenza di trigger, che per impostazione predefinita è **, seguito dalla pressatura TAB):

cd **<TAB>
fzf cd ** <TAB> esempio di gif animata” border=”0″ data-original-height=”500″ data-original-width=”820″ src=”https://1.bp.blogspot.com/-eq-WxerSYwM/YEoXipORw3I/AAAAAAAAFV8/Sq54v3HQqtM5d06oFJSKiSFhtR7gWwXJgCLcBGAsYHQ/s16000/fzf-cd-tab.gif” title=”fzf cd ** <TAB> esempio di gif animata”/></div>
<p>Allo stesso modo, fzf può anche completare automaticamente i nomi degli host (es <span class=ssh **<TAB>), nonché variabili di ambiente e alias (ad es export **<TAB>). Può anche completare automaticamente gli ID di processo e in tal caso non esiste una sequenza di trigger, ad esempio kill -9 <TAB>.

Trova i file nella directory corrente (e nelle sottodirectory) e quando si seleziona un file (premendo il tasto Enter key), il file viene aperto tramite l’editor della riga di comando predefinito:

editor $(find * -type f | fzf)
fzf esempio di gif animata di file aperti

Combinalo con altri comandi per un’interfaccia utente di console interattiva interessante con ricerca fuzzy e un riquadro di anteprima. Per esempio il seguente comando (tramite) usa fzf e apt per elencare tutti i pacchetti disponibili, permettendoti di installare un pacchetto premendo lì Enter chiave. Qui, fzf viene utilizzato con il --preview opzione per mostrare un riquadro di anteprima (in questo caso mostra i dettagli del pacchetto DEB selezionato):

apt-cache search '' | sort | cut --delimiter ' ' --fields 1 | fzf --multi --cycle --reverse --preview 'apt-cache show {1}' | xargs -r sudo apt install -y
fzf apt install con dettagli animati esempio di gif

Per lo screenshot all’inizio di questo articolo, Sto usando il seguente comando (richiede bat, a cat clone scritto in Rust che include l’evidenziazione della sintassi e altro):

fzf --preview 'bat --style=numbers --color=always --line-range :500 {}'

Per esempi più avanzati, controlla il wiki fzf.

Ho anche scritto su Linux Uprising su alcuni strumenti / script da riga di comando che utilizzano fzf fuzzy finder:

Installa fzf fuzzy finder

fzf è disponibile per Linux (comprese varie versioni ARM, quindi funziona, ad esempio, su Raspberry Pi), macOS, * BSD e Windows.

Su Linux, fzf può essere installato dai repository su Debian9 +, Ubuntu 19.10+, Fedora, Arch Linux, openSUSE, ecc.

Tuttavia, personalmente preferisco installarlo usando il suo script di installazione (scarica automaticamente il binario per il tuo sistema, senza crearlo dai sorgenti). Questo perché imposta tutto per te, l’unica cosa necessaria è procurarsi il file di configurazione della shell. È anche facile aggiornare alle versioni più recenti di fzf (vengono rilasciate abbastanza spesso).

Per installare fzf usando il suo script di installazione, assicurati di avere git installato, quindi utilizzare:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

~/.fzf/install

Lo script di installazione ti farà alcune domande su quali funzionalità abilitare. Molto probabilmente vorrai rispondere di sì (y) a tutti loro.

Questo è tutto. Ora tutto ciò che devi fare è riavviare la shell o ricaricare il file di configurazione:

source ~/.bashrc
source ~/.zshrc
fzf_key_bindings

Utilizzando questo metodo di installazione, se lo desideri in seguito aggiornalo (sia il completamento che il binario), usa:

cd ~/.fzf

git pull

./install

È anche più facile disinstallalo (questo annulla le modifiche apportate a ~/.bashrc o ~/.zshrce rimuove le associazioni di tasti Fish da ~/.config; non rimuove il file ~/.fzf directory):

cd ~/.fzf

./uninstall


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi