Localizador de documentos difusos multilinha TUI
Pense no grep interativo para arquivos de texto, PDFs, DOCXs, etc., mas baseado em palavras/tokens em vez de regex e linhas, para que você possa pesquisar facilmente entre linhas.
O Docfd visa fornecer uma boa experiência do usuário por meio da integração com editores de texto comuns e visualizadores de PDF, para que você possa ir diretamente para um resultado de pesquisa com um único toque de tecla.
Indexação e pesquisa multithread
Pesquisa difusa multilinha de vários arquivos
Painel de visualização de conteúdo que mostra o snippet em torno do resultado da pesquisa selecionado
Integração entre editor de texto e visualizador de PDF
Histórico de comandos editável - reescreva/planeje suas ações no editor de texto
Restrição do escopo da pesquisa - limite o escopo da próxima pesquisa com base nos resultados da pesquisa atual
Integração da área de transferência
Binários vinculados estaticamente para Linux e macOS estão disponíveis nas versões do GitHub.
O Docfd também é empacotado nas seguintes plataformas para Linux:
docfd-bin
) por kseistrupdocfd
) por chewblackaA única maneira de usar o Docfd no Windows agora é via WSL.
Notas para empacotadores : Fora da cadeia de ferramentas OCaml para construção (se você estiver empacotando a partir do código-fonte), o Docfd também requer as seguintes ferramentas externas em tempo de execução para funcionalidade completa:
pdftotext
do poppler-utils
para suporte a PDFpandoc
para suporte de arquivos .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
e .htm
fzf
para menu de seleção de arquivowl-clibpard
para suporte à área de transferência no Waylandxclip
para suporte à área de transferência no X11 O uso típico do Docfd é cd
no diretório de interesse e iniciar docfd
diretamente ou especificar os caminhos como argumentos:
docfd [PATH]...
A lista de caminhos pode conter diretórios. Cada diretório na lista é verificado recursivamente em busca de arquivos com as seguintes extensões por padrão:
.txt
, .md
, .pdf
, .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
, .htm
.log
, .csv
, .tsv
Você pode alterar as extensões de arquivo a serem usadas via --exts
e --single-line-exts
, ou adicionar à lista de extensões via --add-exts
e --single-line-add-exts
.
Se a lista PATH
s estiver vazia, o padrão do Docfd é verificar o diretório atual .
a menos que qualquer um dos seguintes seja usado: --paths-from
, --glob
, --single-line-glob
.
Consulte GitHub Wiki para obter mais exemplos/livro de receitas e detalhes técnicos.
O recarregamento automático de arquivos não é compatível com arquivos PDF, pois os visualizadores de PDF são invocados em segundo plano por meio do shell. É possível apoiar isso adequadamente das formas listadas abaixo, mas requer muita engenharia para um ganho potencialmente muito pequeno:
O Docfd espera que o visualizador de PDF termine completamente antes de continuar, mas isso proíbe a visualização de vários resultados de pesquisa simultaneamente em diferentes instâncias do visualizador de PDF.
O Docfd gerencia completamente os visualizadores de PDF iniciados, mas esses visualizadores são fechados quando o Docfd termina.
O Docfd invoca os visualizadores de PDF via shell para que permaneçam abertos quando o Docfd terminar. Em vez disso, o Docfd verifica periodicamente se eles ainda estão em execução por meio dos IDs de processo dos visualizadores de PDF, mas isso requer o manuseio de forks.
Além de monitorar se as instâncias do visualizador de PDF que interagem com os arquivos ainda estão em execução, o Docfd também precisa configurar o tratamento de atualização de arquivos via inotify
ou verificando periodicamente os tempos de modificação dos arquivos.
git rebase -i