Mehrzeiliger Fuzzy-Dokumentenfinder von TUI
Denken Sie an interaktives Grep für Textdateien, PDFs, DOCXs usw., aber wort-/tokenbasiert statt regex- und zeilenbasiert, sodass Sie problemlos zeilenübergreifend suchen können.
Docfd zielt darauf ab, durch die Integration mit gängigen Texteditoren und PDF-Viewern eine gute UX zu bieten, sodass Sie mit einem einzigen Tastendruck direkt zu einem Suchergebnis springen können.
Multithread-Indizierung und -Suche
Mehrzeilige Fuzzy-Suche in mehreren Dateien
Bereich „Inhaltsansicht“, in dem das Snippet rund um das ausgewählte Suchergebnis angezeigt wird
Integration von Texteditor und PDF-Viewer
Bearbeitbarer Befehlsverlauf – schreiben/planen Sie Ihre Aktionen im Texteditor neu
Eingrenzung des Suchbereichs – Beschränken Sie den Umfang der nächsten Suche basierend auf den aktuellen Suchergebnissen
Integration der Zwischenablage
Statisch verknüpfte Binärdateien für Linux und macOS sind über GitHub-Releases verfügbar.
Docfd ist auch auf den folgenden Plattformen für Linux gepackt:
docfd-bin
) von kseistrupdocfd
) von chewblackaDie einzige Möglichkeit, Docfd unter Windows derzeit zu verwenden, ist über WSL.
Hinweise für Paketierer : Außerhalb der OCaml-Toolchain zum Erstellen (wenn Sie aus dem Quellpaket packen) benötigt Docfd zur Laufzeit auch die folgenden externen Tools für die volle Funktionalität:
pdftotext
von poppler-utils
für PDF-Unterstützungpandoc
für die Unterstützung von .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
und .htm
Dateienfzf
für das Dateiauswahlmenüwl-clibpard
für Zwischenablage-Unterstützung auf Waylandxclip
für Zwischenablageunterstützung auf X11 Die typische Verwendung von Docfd besteht darin, entweder cd
in das gewünschte Verzeichnis zu wechseln und docfd
direkt zu starten oder die Pfade als Argumente anzugeben:
docfd [PATH]...
Die Pfadliste kann Verzeichnisse enthalten. Jedes Verzeichnis in der Liste wird standardmäßig rekursiv nach Dateien mit den folgenden Erweiterungen durchsucht:
.txt
, .md
, .pdf
, .epub
, .odt
, .docx
, .fb2
, .ipynb
, .html
, .htm
.log
, .csv
, .tsv
Sie können die zu verwendenden Dateierweiterungen über --exts
und --single-line-exts
ändern oder über --add-exts
und --single-line-add-exts
zur Liste der Erweiterungen hinzufügen.
Wenn die Liste PATH
s leer ist, durchsucht Docfd standardmäßig das aktuelle Verzeichnis .
es sei denn, eines der folgenden wird verwendet: --paths-from
, --glob
, --single-line-glob
.
Weitere Beispiele/Kochbücher und technische Details finden Sie im GitHub-Wiki.
Das automatische Neuladen von Dateien wird für PDF-Dateien nicht unterstützt, da PDF-Viewer im Hintergrund über die Shell aufgerufen werden. Es ist möglich, dies auf die unten aufgeführte Weise ordnungsgemäß zu unterstützen, erfordert jedoch viel Engineering und möglicherweise nur einen sehr geringen Gewinn:
Docfd wartet, bis der PDF-Viewer vollständig beendet ist, bevor er fortfährt. Dies verhindert jedoch die gleichzeitige Anzeige mehrerer Suchergebnisse in verschiedenen PDF-Viewer-Instanzen.
Docfd verwaltet die gestarteten PDF-Viewer vollständig, diese Viewer werden jedoch geschlossen, wenn Docfd beendet wird.
Docfd ruft die PDF-Viewer über die Shell auf, sodass sie geöffnet bleiben, wenn Docfd beendet wird. Stattdessen überprüft Docfd regelmäßig über die Prozess-IDs der PDF-Viewer, ob sie noch ausgeführt werden. Dies erfordert jedoch die Handhabung von Forks.
Neben der Überwachung, ob die PDF-Viewer-Instanzen, die mit den Dateien interagieren, noch ausgeführt werden, muss Docfd auch die Handhabung von Dateiaktualisierungen einrichten, entweder über inotify
oder durch regelmäßige Überprüfung der Dateiänderungszeiten.
git rebase -i