Ich benutze den Org-Modus, um Notizen zu machen. Derzeit habe ich ein Stammverzeichnis, z. B. "Notizen", und darin befinden sich mehrere Unterverzeichnisse, z. B. "Linux", "Programmierung" usw. Die im Organisationsmodus erstellten Notizen werden unter diesen Unterverzeichnissen gespeichert.
Ich habe mich gefragt, ob es eine Reihe von Einstellungen gibt, damit ich diese Notizen (die alle Dateien im Organisationsmodus sind) sehr schnell durchsuchen kann. Ich weiß, dass es geschickt ist , aber es ist nicht für Dateien im Organisationsmodus konzipiert. Eigentlich habe ich auch Helmprojektil ausprobiert, aber es ist alles andere als zufriedenstellend.
Um genauer zu sein, möchte ich erreichen, dass ich diese Dateien mit Tags, Überschriften oder anderen Funktionen durchsuchen kann, die sich auf den Organisationsmodus beziehen, möglicherweise mit vordefinierten Syntaxen. Und wenn möglich, würde ich so etwas wie Helm bevorzugen. Wenn es keine solche Erweiterung gibt, lohnt es sich, eine solche Erweiterung zu implementieren? Ich dachte, Geschicklichkeit + Steuerprojektil könnte ein guter Ausgangspunkt sein.
UPDATE: Ich habe beide Methoden ausprobiert, verzeichnislokale Variablen (wie @itsjeyd in der Antwort vorschlägt) und org-Agenda-Custom-Befehle, und ich fand die letztere bequemer. Also hier ist meine Einstellung:
(setq org-agenda-custom-commands
'(("n" . "Search in notes")
("nt" "Note tags search" tags ""
((org-agenda-files (file-expand-wildcards "path/to/Notes/*/*.org"))))
("ns" "Note full text search" search ""
((org-agenda-files (file-expand-wildcards "path/to/Notes/*/*.org"))))))
quelle
M-x org-search-view
Hier ist der Link zur Dokumentation: orgmode.org/manual/Search-view.html(setq deft-extension "org")
und verwendet werden(setq deft-text-mode 'org-mode)
.Antworten:
Org selbst bietet eine Möglichkeit zum Filtern / Suchen von Informationen, die in
.org
Dateien gespeichert sind , auf verschiedene Arten. Es heißt "Agenda" . Dasorg-mode
Handbuch enthält ausführliche Informationen zur Verwendung (überprüfen Sie den obigen Link oder führen Sie es C-h i mOrg Mode
RETin Emacs aus und navigieren Sie zum Kapitel "Agenda-Ansichten"). Daher ist es nicht sinnvoll, alle diese Informationen hier zu wiederholen. Der Einführungstext aus dem Handbuch fasst zusammen, was Sie damit machen können (Hervorhebung von mir):Das einzige, was Sie tun müssen, um die Agenda für die Suche in Ihren Notizen zu verwenden, ist das Hinzufügen von Dateien, zu denen Sie suchen möchten
org-agenda-files
:In Ihrem Fall möchten Sie Ihrer Init-Datei also Folgendes hinzufügen:
Für viele Beispiele und praktische Ratschläge empfehle ich Ihnen auch, den Artikel über die erweiterte Suche in Worg zu lesen .
[UPDATE] Beschränken der Suche auf bestimmte Dateigruppen
Wie in den Kommentaren erwähnt, möchte OP die Suche auf bestimmte Dateigruppen beschränken können. In technischer Hinsicht bedeutet
org-agenda-files
dies, je nach Kontext unterschiedliche Werte einzustellen. Dies kann mit verzeichnislokalen Variablen erreicht werden :Nehmen wir zum Beispiel das an
Wenn
Notes/Linux
Sie in gespeicherte Dateien besuchen , möchten Sie die Agenda verwenden, um nur in.org
gespeicherte Dateien zu suchenNotes/Linux
.Wenn Sie in gespeicherte Dateien besuchen
Notes/Programming
, möchten Sie die Agenda verwenden, um nur in.org
gespeicherte Dateien zu suchenNotes/Programming
.Gehen Sie wie folgt vor, um dieses Verhalten zu aktivieren:
Fügen Sie
.dir-locals.el
beidenNotes/Linux
und eine Datei mit dem folgenden Inhalt hinzuNotes/Programming
:Dadurch wird die Liste so festgelegt
org-agenda-files
, dass alle Dateien im aktuellen Verzeichnis enthalten sind.Fügen Sie Ihrer Init-Datei den folgenden Code hinzu:
Dieser Schritt ist erforderlich, um sicherzustellen, dass
*Org Agenda*
(ein Nicht-Dateipuffer ) Ihre verzeichnislokalen Einstellungen für berücksichtigtorg-agenda-files
.Wenn Sie das nächste Mal eine in
Notes/Linux
oder gespeicherte Datei besuchenNotes/Programming
, werden Sie von Emacs gefragt, ob Sie die in gespeicherten Einstellungen anwenden möchten.dir-locals.el
. Klicken Sie !, um Emacs anzuweisen, die Einstellungen anzuwenden und sie für zukünftige Sitzungen als sicher zu markieren (Sie werden nicht erneut aufgefordert, Dateien im selben Verzeichnis einzugeben).quelle
TODO
Status verknüpft. Sie sollten nicht in Ihrer Agenda angezeigt werden, wenn Sie Ihre TODO-Elemente auflisten.org-agenda-files
nur die Dateien (oder das Verzeichnis) festlegen, an denen Sie interessiert sind, oder eine Agenda-Vorlage verwendenC-c a <
, um die Agenda-Suche nur auf die aktuelle Datei zu beschränken.helm-org-agenda-files-headings
) erwähnte Befehl @BrianZ macht jedoch genau das, was Sie wollen (für Überschriften). Beachten Sie, dass Sie verzeichnislokale Variablen einrichten müssen, um die Ausführunghelm-org-agenda-files-headings
auf bestimmten Dateigruppen zu ermöglichen.Es gibt einige org-bezogene Funktionen im Ruder. Ich denke, das
helm-org-agenda-files-headings
ist im Grunde das, was Sie vorhaben. Wenn es in Emacs noch nicht für Sie verfügbar ist, versuchen Sie, helm-org.el von Github zu entfernen .quelle