Fzf: una búsqueda rápida de archivos difusos desde la terminal de Linux


Fzf es un buscador difuso de línea de comandos diminuto, ultrarrápido, de uso general y multiplataforma, que le ayuda a buscar y abrir archivos rápidamente en los sistemas operativos Linux y Windows. Es portátil sin dependencias y tiene un diseño flexible con soporte para el complemento Vim/Neovim, combinaciones de teclas y autocompletado difuso.

El siguiente GIF muestra cómo funciona.

Para instalar Fzf, debe clonar el repositorio Github de fzf en cualquier directorio y ejecutar el script de instalación como se muestra en su distribución de Linux.

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

Después de ejecutar el script, se le pedirá que habilite la finalización automática difusa, las combinaciones de teclas y actualice su archivo de configuración de shell. Responda y (para sí) a las preguntas como se muestra en la siguiente captura de pantalla.

En Fedora 26 y superior, y Arch Linux, puede instalarlo a través de un administrador de paquetes como se muestra.

$ sudo dnf install fzf	#Fedora 26+
$ sudo pacman -S fzf	#Arch Linux 

Ahora que ha instalado fzf, puede empezar a utilizarlo. Cuando ejecute fzf, abrirá un buscador interactivo; lee la lista de archivos de stdin y escribe el elemento seleccionado en stdout.

Simplemente escriba el nombre del archivo que está buscando en el indicador. Cuando lo encuentre, haga clic en Intro y la ruta relativa del archivo se imprimirá en la salida estándar.

$ fzf

Alternativamente, puede guardar la ruta relativa del archivo que está buscando en un archivo con nombre y ver el contenido del archivo usando una utilidad como bcat.

$ fzf >file
$ cat file
OR
$ bat file

También puede usarlo junto con el comando de búsqueda, por ejemplo.

$ find ./bin/ -type f | fzf >file
$ cat file

Cómo utilizar la finalización difusa en Bash y Zsh

Para activar la finalización aproximada de archivos y directorios, agregue los caracteres ** como secuencia de activación.

$ cat **<Tab>

Puede utilizar esta función mientras trabaja con variables ambientales en la línea de comandos.

$ unset **<Tab>
$ unalias **<Tab>
$ export **<Tab>

Lo mismo se aplica a los comandos ssh y telnet, para completar automáticamente los nombres de host que se leen desde/etc/hosts y ~/.ssh/config.

$ ssh **<Tab>

También funciona con el comando kill, pero sin la secuencia de activación como se muestra.

$ kill -9 <Tab>

Cómo habilitar fzf como complemento de Vim

Para habilitar fzf como un complemento de vim, agregue la siguiente línea en su archivo de configuración de Vim.

set rtp+=~/.fzf

fzf se está desarrollando activamente y se puede actualizar fácilmente a la última versión usando el siguiente comando.

$ cd ~/.fzf && git pull && ./install

Para ver la lista completa de opciones de uso, ejecute man fzf o consulte su Repositorio de Github: https://github.com/junegunn/fzf.

Fzf es un buscador difuso ultrarrápido y de uso general para buscar archivos rápidamente en Linux. Tiene muchos casos de uso, por ejemplo, puede configurar un uso personalizado para su shell. Si tiene alguna pregunta o comentario, comuníquese con nosotros a través del formulario de comentarios a continuación.