Многострочный поиск нечетких документов TUI
Подумайте об интерактивном grep для текстовых файлов, PDF-файлов, DOCX и т. д., но на основе слов/токенов, а не на основе регулярных выражений и строк, поэтому вы можете легко выполнять поиск по строкам.
Docfd стремится обеспечить хороший UX за счет интеграции с распространенными текстовыми редакторами и программами просмотра PDF-файлов, поэтому вы можете перейти непосредственно к результату поиска одним нажатием клавиши.
Многопоточное индексирование и поиск
Многострочный нечеткий поиск по нескольким файлам
Панель просмотра контента, на которой отображается фрагмент, окружающий выбранный результат поиска.
Интеграция текстового редактора и просмотра PDF-файлов
Редактируемая история команд — переписывайте/планируйте свои действия в текстовом редакторе
Сужение области поиска — ограничение области следующего поиска на основе текущих результатов поиска.
Интеграция с буфером обмена
Статически связанные двоичные файлы для Linux и macOS доступны в выпусках GitHub.
Docfd также упакован на следующие платформы Linux:
docfd-bin
) от kseistrupdocfd
), автор ChewblackaЕдинственный способ использовать Docfd в Windows прямо сейчас — через WSL.
Примечания для упаковщиков : Помимо набора инструментов OCaml для сборки (если вы упаковываете из исходного кода), Docfd также требует во время выполнения следующих внешних инструментов для полной функциональности:
pdftotext
из poppler-utils
для поддержки PDFpandoc
для поддержки файлов .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
и .htm
fzf
для меню выбора файлаwl-clibpard
для поддержки буфера обмена на Waylandxclip
для поддержки буфера обмена на X11 Типичное использование Docfd — либо cd
в интересующий каталог и запустить docfd
напрямую, либо указать пути в качестве аргументов:
docfd [PATH]...
Список путей может содержать каталоги. По умолчанию каждый каталог в списке рекурсивно сканируется на наличие файлов со следующими расширениями:
.txt
, .md
, .pdf
, .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
, .htm
.log
, .csv
, .tsv
Вы можете изменить используемые расширения файлов с помощью --exts
и --single-line-exts
или добавить их в список расширений с помощью --add-exts
и --single-line-add-exts
.
Если список PATH
пуст, то Docfd по умолчанию сканирует текущий каталог .
если не используется что-либо из следующего: --paths-from
, --glob
, --single-line-glob
.
См. GitHub Wiki для получения дополнительных примеров/поваренной книги и технических подробностей.
Автоматическая перезагрузка файлов не поддерживается для файлов PDF, поскольку программы просмотра PDF вызываются в фоновом режиме через оболочку. Это можно обеспечить должным образом способами, перечисленными ниже, но это требует большого количества инженерных разработок и потенциально очень незначительной выгоды:
Docfd ожидает полного завершения работы программы просмотра PDF, прежде чем возобновить ее, но это запрещает одновременный просмотр нескольких результатов поиска в разных экземплярах программы просмотра PDF.
Docfd полностью управляет запущенными программами просмотра PDF, но эти программы закрываются после завершения работы Docfd.
Docfd вызывает средства просмотра PDF-файлов через оболочку, поэтому они остаются открытыми после завершения работы Docfd. Вместо этого Docfd периодически проверяет, выполняются ли они по-прежнему, через идентификаторы процессов средств просмотра PDF-файлов, но для этого требуется обработка вилок.
Помимо отслеживания того, продолжают ли работать экземпляры средства просмотра PDF-файлов, взаимодействующие с файлами, Docfd также необходимо настроить обработку обновлений файлов либо через inotify
, либо путем периодической проверки времени изменения файла.
git rebase -i