Un agradecimiento especial a:
Warp es una terminal moderna basada en Rust con inteligencia artificial integrada para que usted y su equipo puedan crear software excelente y más rápido.
Visita warp.dev para obtener más información.
fzf es un buscador difuso de línea de comandos de uso general.
Es un programa de filtrado interactivo para cualquier tipo de lista; archivos, historial de comandos, procesos, nombres de host, marcadores, confirmaciones de git, etc. Implementa un algoritmo de coincidencia "difusa", por lo que puede escribir rápidamente patrones con caracteres omitidos y aún así obtener los resultados que desea.
Portátil : distribuido como un único binario para una fácil instalación
Increíblemente rápido : el código altamente optimizado procesa instantáneamente millones de elementos
Extremadamente versátil : totalmente personalizable mediante un mecanismo de vinculación de acción por evento
Baterías incluidas : incluye integración con bash, zsh, fish, Vim y Neovim.
Me gustaría agradecer a todos los patrocinadores de este proyecto que me permiten seguir mejorando fzf.
Si desea patrocinar este proyecto, visite https://github.com/sponsors/junegunn.
Instalación
Usando cerveza casera
paquetes de linux
paquetes de windows
usando git
Lanzamientos binarios
Configurar la integración del shell
Complemento Vim/Neovim
Actualizando fzf
edificio fzf
Uso
--height
--tmux
Usando el buscador
Modos de visualización
Sintaxis de búsqueda
Variables ambientales
Opciones
Manifestación
Ejemplos
Combinaciones de teclas para la línea de comandos
Finalización difusa para bash y zsh
Archivos y directorios
ID de proceso
Nombres de host
Variables de entorno / Alias
Ajustes
Comandos admitidos
Finalización difusa personalizada
complemento vim
Temas avanzados
1. Actualice la lista de procesos presionando CTRL-R
2. Cambie entre fuentes presionando CTRL-D o CTRL-F
3. Integración interactiva de ripgrep
Actuación
Ejecutar programas externos
Convertirse en un proceso diferente
Recargando la lista de candidatos
Ventana de vista previa
Vista previa de una imagen
Consejos
Respetando .gitignore
concha de pescado
Zona de juegos temática fzf
Proyectos relacionados
Licencia
Puede utilizar Homebrew (en macOS o Linux) para instalar fzf.
instalar cerveza fzf
Importante
Para configurar la integración del shell (asociaciones de teclas y finalización difusa), consulte las instrucciones a continuación.
fzf también está disponible a través de MacPorts: sudo port install fzf
Administrador de paquetes | Distribución de Linux | Dominio |
---|---|---|
APK | Linux alpino | sudo apk add fzf |
APTO | Debian 9+/Ubuntu 19.10+ | sudo apt install fzf |
conda | conda install -c conda-forge fzf | |
abandonar | sombrero | sudo dnf install fzf |
Nada | NixOS, etc. | nix-env -iA nixpkgs.fzf |
Pacman | Arco Linux | sudo pacman -S fzf |
paquete | FreeBSD | pkg install fzf |
paquete | NetBSD | pkgin install fzf |
paquete_add | OpenBSD | pkg_add fzf |
Porteo | Gentoo | emerge --ask app-shells/fzf |
paquete | spack install fzf | |
XBPS | Linux vacío | sudo xbps-install -S fzf |
cremallera | openSUSE | sudo zypper install fzf |
Importante
Para configurar la integración del shell (asociaciones de teclas y finalización difusa), consulte las instrucciones a continuación.
En Windows, fzf está disponible a través de Chocolatey, Scoop, Winget y MSYS2:
Administrador de paquetes | Dominio |
---|---|
chocolateado | choco install fzf |
Cuchara | scoop install fzf |
ala | winget install fzf |
MSYS2 (pacman) | pacman -S $MINGW_PACKAGE_PREFIX-fzf |
Alternativamente, puede "git clone" este repositorio en cualquier directorio y ejecutar el script de instalación.
clon de git --profundidad 1 https://github.com/junegunn/fzf.git ~/.fzf~/.fzf/install
El script de instalación agregará líneas a su archivo de configuración de shell para modificar $PATH
y configurar la integración de shell.
Puede descargar los binarios oficiales de fzf desde la página de lanzamientos.
https://github.com/junegunn/fzf/releases
Agregue la siguiente línea a su archivo de configuración de Shell.
intento
# Configurar combinaciones de teclas fzf y finalización difusa "$(fzf --bash)"
zsh
# Configurar combinaciones de teclas fzf y fuente de finalización difusa <(fzf --zsh)
pez
# Configurar combinaciones de teclas fzffzf --fish | fuente
Nota
Las opciones --bash
, --zsh
y --fish
solo están disponibles en fzf 0.48.0 o posterior. Si tiene una versión anterior de fzf o desea un control más preciso, puede obtener archivos de script individuales en el directorio /shell. La ubicación de los archivos puede variar según el administrador de paquetes que utilice. Consulte la documentación del paquete para obtener más información. (por ejemplo, apt show fzf
)
Consejo
Puede deshabilitar el enlace CTRL-T o ALT-C configurando FZF_CTRL_T_COMMAND
o FZF_ALT_C_COMMAND
en una cadena vacía al obtener el script. Por ejemplo, para desactivar el enlace ALT-C:
bash: FZF_ALT_C_COMMAND= eval "$(fzf --bash)"
zsh: FZF_ALT_C_COMMAND= source <(fzf --zsh)
pescado: fzf --fish | FZF_ALT_C_COMMAND= source
Configurar las variables después de obtener el script no tendrá ningún efecto.
Si usa vim-plug, agregue esto a su archivo de configuración de Vim:
Conecte 'junegunn/fzf', { 'hacer': { -> fzf#install() } } Conecte 'junegunn/fzf.vim'
junegunn/fzf
proporciona las funciones básicas de la biblioteca
fzf#install()
se asegura de que tenga el binario más reciente
junegunn/fzf.vim
es un proyecto independiente que proporciona una variedad de comandos útiles
Para obtener más información sobre la integración de Vim, consulte README-VIM.md.
Consejo
Si usa Neovim y prefiere complementos basados en Lua, consulte fzf-lua.
fzf se está desarrollando activamente y es posible que desees actualizarlo de vez en cuando. Siga las instrucciones a continuación según el método de instalación utilizado.
git: cd ~/.fzf && git pull && ./install
preparar: brew update; brew upgrade fzf
macports: sudo port upgrade fzf
chocolateado: choco upgrade fzf
vim-plug: :PlugUpdate fzf
Consulte CONSTRUIR.md.
fzf iniciará el buscador interactivo, leerá la lista de STDIN y escribirá el elemento seleccionado en STDOUT.
buscar * -tipo f | fzf > seleccionado
Sin la tubería STDIN, fzf recorrerá el sistema de archivos en el directorio actual para obtener la lista de archivos.
vim$(fzf)
Nota
Puede anular el comportamiento predeterminado
Ya sea configurando $FZF_DEFAULT_COMMAND
en un comando que genera la lista deseada
O configurando las opciones --walker
, --walker-root
y --walker-skip
en $FZF_DEFAULT_OPTS
Advertencia
Una solución más sólida sería usar xargs
, pero presentamos lo anterior porque es más fácil de entender.
fzf --imprimir0 | xargs -0 -o vim
Consejo
fzf también tiene la capacidad de convertirse en un proceso diferente.
fzf --bind 'entrar:convertirse(vim {})'
Consulte Convertirse en un proceso diferente para obtener más información.
CTRL-K
/ CTRL-J
(o CTRL-P
/ CTRL-N
) para mover el cursor hacia arriba y hacia abajo
Enter
la tecla para seleccionar el elemento, CTRL-C
/ CTRL-G
/ ESC
para salir
En el modo de selección múltiple ( -m
), TAB
y Shift-TAB
para marcar varios elementos
Atajos de teclas estilo Emacs
Ratón: desplazarse, hacer clic, hacer doble clic; Mayús-clic y Mayús-desplazamiento en modo de selección múltiple
fzf se ejecuta de forma predeterminada en modo de pantalla completa, pero hay otros modos de visualización.
--height
Con --height HEIGHT[%]
, fzf comenzará debajo del cursor con la altura dada.
fzf --altura 40%
diseño reverse
y --border
van bien con esta opción.
fzf --altura 40% --diseño inverso --borde
Al anteponer ~
a la altura, estás configurando la altura máxima.
# Tomará la menor cantidad de líneas posible para mostrar el listseq 3 | fzf --altura ~100% secuencia 3000 | fzf --altura ~100%
El valor de la altura puede ser un número negativo.
# Altura de la pantalla - 3fzf --altura -3
--tmux
Con la opción --tmux
, fzf se iniciará en una ventana emergente de tmux.
# --tmux [centro|arriba|abajo|izquierda|derecha][,TAMAÑO[%]][,TAMAÑO[%]]fzf --tmux centro # Centro, 50% ancho y altofzf --tmux 80% # Centro, 80% ancho y altofzf --tmux 100%,50% # Centro, 100% ancho y 50% altofzf --tmux izquierda,40% # Izquierda, 40% anchofzf --tmux izquierda,40%,90% # Izquierda, 40% ancho, 90% altofzf --tmux arriba,40% # Arriba, 40% altofzf --tmux abajo,80%,40% # Abajo, 80 % altura, 40% altura
--tmux
se ignora silenciosamente cuando no estás en tmux.
Nota
Si tiene una versión antigua de tmux que no admite ventanas emergentes, o si desea abrir fzf en un panel tmux normal, consulte el script fzf-tmux.
Consejo
Puede agregar estas opciones a $FZF_DEFAULT_OPTS
para que se apliquen de forma predeterminada. Por ejemplo,
# Abrir en la ventana emergente de tmux si está en tmux, de lo contrario use --height modeexport FZF_DEFAULT_OPTS='--height 40% --tmux bottom,40% --layout reverse --border top'
A menos que se especifique lo contrario, fzf comienza en "modo de búsqueda extendida", donde puede escribir múltiples términos de búsqueda delimitados por espacios. por ejemplo ^music .mp3$ sbtrkt !fire
Simbólico | Tipo de coincidencia | Descripción |
---|---|---|
sbtrkt | coincidencia difusa | Artículos que coinciden con sbtrkt |
'wild | coincidencia exacta (citada) | Artículos que incluyen wild |
'wild' | coincidencia de límites exactos (citado en ambos extremos) | Elementos que incluyen wild en los límites de las palabras. |
^music | coincidencia-exacta-prefijo | Artículos que comienzan con music |
.mp3$ | coincidencia-exacta-de-sufijo | Elementos que terminan en .mp3 |
!fire | coincidencia exacta inversa | Artículos que no incluyen fire |
!^music | coincidencia-exacta-prefijo-inverso | Artículos que no comienzan con music |
!.mp3$ | coincidencia-exacta-de-sufijo-inverso | Elementos que no terminan en .mp3 |
Si no prefiere la coincidencia aproximada y no desea "entrecomillar" cada palabra, inicie fzf con la opción -e
o --exact
. Tenga en cuenta que cuando se establece --exact
, '
-prefix "elimina las comillas" del término.
Un término de carácter de barra única actúa como operador OR. Por ejemplo, la siguiente consulta coincide con entradas que comienzan con core
y terminan con go
, rb
o py
.
^core go$ | rb$ | py$
FZF_DEFAULT_COMMAND
Comando predeterminado para usar cuando la entrada es tty
por ejemplo, export FZF_DEFAULT_COMMAND='fd --type f'
FZF_DEFAULT_OPTS
Opciones predeterminadas
por ejemplo, export FZF_DEFAULT_OPTS="--layout=reverse --inline-info"
FZF_DEFAULT_OPTS_FILE
Si prefiere administrar las opciones predeterminadas en un archivo, configure esta variable para que apunte a la ubicación del archivo
por ejemplo, export FZF_DEFAULT_OPTS_FILE=~/.fzfrc
Advertencia
FZF_DEFAULT_COMMAND
no se utiliza en la integración del shell debido a una ligera diferencia en los requisitos.
CTRL-T
ejecuta $FZF_CTRL_T_COMMAND
para obtener una lista de archivos y directorios
ALT-C
ejecuta $FZF_ALT_C_COMMAND
para obtener una lista de directorios
vim ~/**
ejecuta fzf_compgen_path()
con el prefijo ( ~/
) como primer argumento
cd foo**
ejecuta fzf_compgen_dir()
con el prefijo ( foo
) como primer argumento
Las opciones disponibles se describen más adelante en este documento.
Consulte la página de manual ( man fzf
) para obtener la lista completa de opciones.
Si aprende viendo videos, consulte este screencast de @samoshkin para explorar las funciones fzf
.
Página wiki de ejemplos
Descargo de responsabilidad: los ejemplos de esta página son mantenidos por la comunidad y no se prueban exhaustivamente.
Ejemplos avanzados de fzf
Al configurar la integración del shell, puede utilizar las siguientes combinaciones de teclas en bash, zsh y fish.
CTRL-T
: pega los archivos y directorios seleccionados en la línea de comandos
Puede anular el comportamiento configurando FZF_CTRL_T_COMMAND
en un comando personalizado que genere la lista deseada
O puede configurar las opciones --walker*
en FZF_CTRL_T_OPTS
La lista se genera usando --walker file,dir,follow,hidden
Configure FZF_CTRL_T_OPTS
para pasar opciones adicionales a fzf
# Vista previa del contenido del archivo usando bat (https://github.com/sharkdp/bat)export FZF_CTRL_T_OPTS=" --walker-skip .git,node_modules,target --preview 'bat -n --color=always {}' - -bind 'ctrl-/:cambiar-ventana-de-vista previa(abajo|oculto|)'"
Se puede desactivar configurando FZF_CTRL_T_COMMAND
en una cadena vacía al obtener el script
CTRL-R
: pega el comando seleccionado del historial en la línea de comandos
Si desea ver los comandos en orden cronológico, presione CTRL-R
nuevamente, lo que alterna la clasificación por relevancia.
Presione CTRL-/
o ALT-/
para alternar el ajuste de línea
Configure FZF_CTRL_R_OPTS
para pasar opciones adicionales a fzf
# CTRL-Y para copiar el comando al portapapeles usando pbcopyexport FZF_CTRL_R_OPTS=" --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort' --color header:italic --header 'Presione CTRL-Y para copiar el comando al portapapeles'"
ALT-C
- cd en el directorio seleccionado
O puede configurar las opciones --walker-*
en FZF_ALT_C_OPTS
La lista se genera usando --walker dir,follow,hidden
Configure FZF_ALT_C_COMMAND
para anular el comando predeterminado
Configure FZF_ALT_C_OPTS
para pasar opciones adicionales a fzf
# Imprimir estructura de árbol en la ventana de vista previa exportar FZF_ALT_C_OPTS=" --walker-skip .git,node_modules,target --preview 'tree -C {}'"
Se puede desactivar estableciendo FZF_ALT_C_COMMAND
en una cadena vacía al obtener el script
Los modos de visualización para estos enlaces se pueden configurar por separado mediante FZF_{CTRL_T,CTRL_R,ALT_C}_OPTS
o globalmente mediante FZF_DEFAULT_OPTS
. (por ejemplo, FZF_CTRL_R_OPTS='--tmux bottom,60% --height 60% --border top'
)
Se pueden encontrar más consejos en la página wiki.
La finalización difusa para archivos y directorios se puede activar si la palabra antes del cursor termina con la secuencia de activación, que de forma predeterminada es **
.
COMMAND [DIRECTORY/][FUZZY_PATTERN]**
# Archivos en el directorio actual# - Puede seleccionar varios elementos con la tecla TABvim **# Archivos en el directorio principalvim ../** # Archivos en el directorio principal que coinciden con `fzf`vim ../fzf* * # Archivos en su directorio de iniciovim ~/** # Directorios en el directorio actual (selección única)cd ** # Directorios en ~/github que coinciden `fzf`cd ~/github/fzf**
La finalización difusa para los PID se proporciona para el comando de eliminación.
# Puede seleccionar múltiples procesos con las teclaso kill -9 **
Para los comandos ssh y telnet, se proporciona finalización aproximada para los nombres de host. Los nombres se extraen de /etc/hosts y ~/.ssh/config.
ssh **telnet **
desarmar **exportar ** unalias **
# Utilice ~~ como secuencia de activación en lugar de la predeterminada **exportar FZF_COMPLETION_TRIGGER='~~'# Opciones para fzf commandexport FZF_COMPLETION_OPTS='--border --info=inline'# Utilice fd (https://github.com/ Sharkdp/fd) para enumerar los candidatos de ruta.# - El primer argumento de la función ($1) es la ruta base para iniciar el recorrido# - Ver el código fuente (finalización.{bash,zsh}) para obtener más detalles._fzf_compgen_path() { fd --hidden --follow --exclude ".git" . "$1"}# Utilice fd para generar la lista para completar el directorio_fzf_compgen_dir() { fd --type d --hidden --follow --exclude ".git" . "$1"}# Personalización avanzada de las opciones de fzf a través de la función _fzf_comprun# - El primer argumento de la función es el nombre del comando.# - Debes asegurarte de pasar el resto de los argumentos a fzf._fzf_comprun() { comando local =$1 cambio caso "$comando" incd) fzf --preview 'tree -C {} | cabeza -200' "$@" ;; exportar|unset) fzf --preview "eval 'echo $'{}" "$@" ;; ssh) fzf --preview 'dig {}' "$@" ;;*) fzf --preview 'bat -n --color=always {}' "$@" ;; esac}
En bash, la finalización difusa está habilitada solo para un conjunto predefinido de comandos ( complete | grep _fzf
para ver la lista). Pero también puede habilitarlo para otros comandos utilizando la función auxiliar _fzf_setup_completion
.
# uso: _fzf_setup_completion ruta|dir|var|alias|host COMANDOS..._fzf_setup_completion ruta ag git kubectl árbol de directorios _fzf_setup_completion
(La API de finalización personalizada es experimental y está sujeta a cambios)
Para un comando llamado "COMMAND" , defina la función _fzf_complete_COMMAND
usando el asistente _fzf_complete
.
# Finalización difusa personalizada para el comando "doge"#, por ejemplo, doge **_fzf_complete_doge() { _fzf_complete --multi --reverse --prompt="doge> " -- "$@" < <( echo muy echo wow echo tal echo doge )}
Los argumentos --
son las opciones para fzf.
Después de --
, simplemente pase los argumentos de finalización originales sin cambios ( "$@"
).
Luego, escriba un conjunto de comandos que genere los candidatos de finalización y alimente su salida a la función mediante la sustitución de procesos ( < <(...)
).
zsh seleccionará automáticamente la función usando la convención de nomenclatura, pero en bash debe asociar manualmente la función con el comando usando el comando complete
.
[ -n "$BASH" ] && completo -F _fzf_complete_doge -o default -o bashdefault doge
Si necesita posprocesar la salida de fzf, defina _fzf_complete_COMMAND_post
de la siguiente manera.
_fzf_complete_foo() { _fzf_complete --multi --reverse --header-lines=3 -- "$@" < <( ls -al )}_fzf_complete_foo_post() { awk '{imprimir $NF}'} [ -n "$BASH" ] && completo -F _fzf_complete_foo -o default -o bashdefault foo
Consulte README-VIM.md.
fzf es rápido. El rendimiento no debería ser un problema en la mayoría de los casos de uso. Sin embargo, es posible que desee conocer las opciones que pueden afectar el rendimiento.
--ansi
le dice a fzf que extraiga y analice los códigos de color ANSI en la entrada, y hace que el escaneo inicial sea más lento. Por lo tanto, no se recomienda agregarlo a su $FZF_DEFAULT_OPTS
.
--nth
hace que fzf sea más lento porque tiene que tokenizar cada línea.
--with-nth
hace que fzf sea más lento ya que tiene que tokenizar y volver a ensamblar cada línea.
Puede configurar combinaciones de teclas para iniciar procesos externos sin salir de fzf ( execute
, execute-silent
).
# Presione F1 para abrir el archivo con less sin salir de fzf# Presione CTRL-Y para copiar la línea al portapapeles y aborta fzf (requiere pbcopy)fzf --bind 'f1:execute(less -f {}),ctrl-y: ejecutar-silencio(echo {} | pbcopy)+abortar'
Consulte la sección COMUNICACIONES DE TECLAS de la página de manual para obtener más detalles.
become(...)
es similar a execute(...)
/ execute-silent(...)
descrito anteriormente, pero en lugar de ejecutar el comando y volver a fzf al finalizar, convierte fzf en un nuevo proceso para el dominio.
fzf --bind 'entrar:convertirse(vim {})'
En comparación con la sustitución de comando aparentemente equivalente vim "$(fzf)"
, este enfoque tiene varias ventajas:
Vim no abrirá un archivo vacío cuando finalice fzf con CTRL-C
Vim no abrirá un archivo vacío cuando presione ENTER en un resultado vacío
Puede manejar múltiples selecciones incluso cuando tienen espacios en blanco
fzf --multi --bind 'entrar:convertirse(vim {+})'
Para ser justos, ejecutar fzf --print0 | xargs -0 -o vim
en lugar de vim "$(fzf)"
resuelve todos los problemas mencionados. Sin embargo, become(...)
todavía ofrece beneficios adicionales en diferentes escenarios.
Puede configurar múltiples enlaces para manejar el resultado de diferentes maneras sin ningún script de ajuste
fzf --bind 'enter:convertirse(vim {}),ctrl-e:convertirse(emacs {})'
Anteriormente, tendrías que usar --expect=ctrl-e
y verificar la primera línea de la salida de fzf
Puede crear fácilmente el comando siguiente utilizando las expresiones de índice de campo de fzf
# Abra el archivo en Vim y vaya a la líneagit grep --line-number. |fzf --delimiter : --nth 3.. --bind 'enter:become(vim {1} +{2})'
Al vincular la acción reload
a una clave o un evento, puede hacer que fzf recargue dinámicamente la lista de candidatos. Consulte el n.° 1750 para obtener más detalles.
ps -ef | fzf --bind 'ctrl-r:recargar(ps -ef)' --header 'Presiona CTRL-R para recargar' --header-lines=1 --altura=50% --diseño=reverso
FZF_DEFAULT_COMMAND='buscar. -tipo f' fzf --bind 'ctrl-d:recargar(buscar. -tipo d),ctrl-f:recargar(eval "$FZF_DEFAULT_COMMAND")' --altura=50% --diseño=reverso
El siguiente ejemplo utiliza fzf como interfaz selectora para ripgrep. Limitamos la acción reload
para change
el evento, por lo que cada vez que escriba fzf, el proceso ripgrep se reiniciará con la cadena de consulta actualizada indicada por la expresión de marcador de posición {q}
. Además, tenga en cuenta que utilizamos la opción --disabled
para que fzf no realice ningún filtrado secundario.
: | rg_prefix='rg --columna --número-línea --sin encabezado --color=always --smart-case' fzf --bind 'inicio:recargar:$rg_prefix ""' --bind 'cambio:recargar:$rg_prefix {q} || verdadero' --bind 'entrar:convertirse(vim {1} +{2})' --ansi --discapacitado --altura=50% --diseño=reverso
Si ripgrep no encuentra ninguna coincidencia, saldrá con un estado de salida distinto de cero y fzf le avisará al respecto. Para suprimir el mensaje de advertencia, agregamos || true
al comando, de modo que siempre salga con 0.
Consulte "Usar fzf como iniciador interactivo de Ripgrep" para ver ejemplos más sofisticados.
Cuando se establece la opción --preview
, fzf inicia automáticamente un proceso externo con la línea actual como argumento y muestra el resultado en la ventana dividida. Su $SHELL
se utiliza para ejecutar el comando con $SHELL -c COMMAND
. La ventana se puede desplazar usando el mouse o combinaciones de teclas personalizadas.
# {} se reemplaza con la cadena entre comillas simples de la línea enfocadafzf --preview 'cat {}'
La ventana de vista previa admite colores ANSI, por lo que puede utilizar cualquier programa que resalte la sintaxis del contenido de un archivo, como Bat o Highlight:
fzf --preview 'bat --color=always {}' --preview-window '~3'
Puede personalizar el tamaño, la posición y el borde de la ventana de vista previa usando la opción --preview-window
, y el color de primer plano y de fondo con la opción --color
. Por ejemplo,
fzf --altura 40% --diseño inverso --info en línea --borde --vista previa 'archivo {}' --vista previa-ventana arriba,1,borde-horizontal --bind 'ctrl-/:cambiar-ventana-de-vista previa(50%|oculto|)' --color 'fg:#bbccdd,fg+:#ddeeff,bg:#334455,preview-bg:#223344,border:#778899'
Consulte la página de manual ( man fzf
) para obtener la lista completa de opciones.
Se pueden encontrar ejemplos más avanzados aquí.
Advertencia
Dado que fzf es un filtro de texto de uso general en lugar de un buscador de archivos, no es una buena idea agregar la opción --preview
a su $FZF_DEFAULT_OPTS
.
# **********************# ** ¡NO HAGAS ESTO! **# **********************exportar FZF_DEFAULT_OPTS='--vista previa "bat --style=numbers --color=always --line-range :500 {}"'# bat no funciona con ninguna entrada que no sea la lista de archivosps -ef | fzf secuencia 100 | historia fzf | fzf
fzf puede mostrar imágenes en la ventana de vista previa utilizando uno de los siguientes protocolos:
Protocolo de gráficos Kitty
Protocolo de imágenes en línea iTerm2
síxel
Consulte el script bin/fzf-preview.sh para obtener más información.
fzf --preview 'fzf-preview.sh {}'
.gitignore
Puede utilizar fd, ripgrep o el buscador plateado para recorrer el sistema de archivos respetando .gitignore
.
# Introduce la salida de fd en fzffd --type f --strip-cwd-prefix | fzf# Configurar fd como fuente predeterminada para fzfexport FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix'# Ahora fzf (sin tubería) usará el comando fd para generar la listafzf# Para aplicar el comando a CTRL-T también exporta FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
Si desea que el comando siga enlaces simbólicos y no desea que excluya archivos ocultos, use el siguiente comando:
exportar FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
La combinación de teclas CTRL-T
de fish, a diferencia de las de bash y zsh, utilizará el último token en la línea de comandos como directorio raíz para la búsqueda recursiva. Por ejemplo, presionar CTRL-T
al final de la siguiente línea de comando
ls /var/
enumerará todos los archivos y directorios en /var/
.
Cuando utilice un FZF_CTRL_T_COMMAND
personalizado, utilice la variable $dir
no expandida para hacer uso de esta función. $dir
por defecto es .
cuando el último token no es un directorio válido. Ejemplo:
set -g FZF_CTRL_T_COMMAND "comando buscar -L $dir -tipo f 2> /dev/null | sed '1d; s#^./##'"
fzf Theme Playground creado por Vitor Mello es una página web donde puedes crear temas fzf de forma interactiva.
https://github.com/junegunn/fzf/wiki/Related-projects
La licencia MIT (MIT)
Copyright (c) 2013-2024 Junegunn Choi