Buscador de documentos difusos multilínea TUI
Piense en grep interactivo para archivos de texto, PDF, DOCX, etc., pero basado en palabras/tokens en lugar de expresiones regulares y líneas, para que pueda buscar entre líneas fácilmente.
Docfd tiene como objetivo proporcionar una buena experiencia de usuario mediante la integración con editores de texto y visores de PDF comunes, para que pueda saltar directamente a un resultado de búsqueda con solo presionar una tecla.
Indexación y búsqueda multiproceso
Búsqueda difusa multilínea de múltiples archivos
Panel de vista de contenido que muestra el fragmento que rodea el resultado de búsqueda seleccionado
Integración del editor de texto y del visor de PDF
Historial de comandos editable: reescribe/planifica tus acciones en el editor de texto
Limitación del alcance de la búsqueda: limite el alcance de la siguiente búsqueda según los resultados de búsqueda actuales
Integración del portapapeles
Los archivos binarios vinculados estáticamente para Linux y macOS están disponibles a través de las versiones de GitHub.
Docfd también está empaquetado en las siguientes plataformas para Linux:
docfd-bin
) de kseistrupdocfd
) de ChewblackaLa única forma de utilizar Docfd en Windows en este momento es a través de WSL.
Notas para empaquetadores : fuera de la cadena de herramientas OCaml para la compilación (si está empaquetando desde el código fuente), Docfd también requiere las siguientes herramientas externas en tiempo de ejecución para una funcionalidad completa:
pdftotext
de poppler-utils
para soporte de PDFpandoc
para soporte de archivos .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
y .htm
fzf
para el menú de selección de archivoswl-clibpard
para soporte de portapapeles en Waylandxclip
para soporte de portapapeles en X11 El uso típico de Docfd es cd
al directorio de interés e iniciar docfd
directamente, o especificar las rutas como argumentos:
docfd [PATH]...
La lista de rutas puede contener directorios. Cada directorio de la lista se analiza de forma recursiva en busca de archivos con las siguientes extensiones de forma predeterminada:
.txt
, .md
, .pdf
, .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
, .htm
.log
, .csv
, .tsv
Puede cambiar las extensiones de archivo para usar a través de --exts
y --single-line-exts
, o agregarlas a la lista de extensiones a través de --add-exts
y --single-line-add-exts
.
Si la lista PATH
s está vacía, Docfd escanea de forma predeterminada el directorio actual .
a menos que se utilice cualquiera de los siguientes: --paths-from
, --glob
, --single-line-glob
.
Consulte GitHub Wiki para obtener más ejemplos/libros de cocina y detalles técnicos.
La recarga automática de archivos no es compatible con archivos PDF, ya que los visores de PDF se invocan en segundo plano a través del shell. Es posible respaldar esto adecuadamente de las maneras que se enumeran a continuación, pero requiere mucha ingeniería para obtener muy poca ganancia:
Docfd espera a que el visor de PDF finalice por completo antes de continuar, pero esto prohíbe ver varios resultados de búsqueda simultáneamente en diferentes instancias del visor de PDF.
Docfd administra completamente los visores de PDF iniciados, pero estos visores se cierran cuando Docfd finaliza.
Docfd invoca los visores de PDF a través del shell para que permanezcan abiertos cuando finaliza Docfd. En cambio, Docfd comprueba periódicamente si todavía se están ejecutando a través de los ID de proceso de los visores de PDF, pero esto requiere manejar bifurcaciones.
Además de rastrear si las instancias del visor de PDF que interactúan con los archivos aún se están ejecutando, Docfd también necesita configurar el manejo de actualizaciones de archivos, ya sea mediante inotify
o verificando periódicamente los tiempos de modificación de los archivos.
git rebase -i