Erweitern Dired, um Unterverzeichnisse / Dateien anzuzeigen?

7

Eines der größten Dinge, die ich von anderen Editoren (z. B. Sublime, Intellij) vermisse, ist die Möglichkeit, die Projektstruktur anzuzeigen und Verzeichnisse nach Bedarf zu erweitern / zu minimieren, damit ich sehen kann, was mich interessiert. Gibt es so etwas wie eine Org-Modus-Hierarchie, in der ich mit einem Hotkey ein Unterverzeichnis nach Bedarf erweitern kann?

Andrew
quelle

Antworten:

10

In Dired können Sie ein Unterverzeichnis imit dem Cursor in der Unterverzeichniszeile einfügen.

Sie können dies auch in einer Unterverzeichniszeile innerhalb einer Unterverzeichnisliste tun, sodass Sie eine beliebige Anzahl von Ebenen einer beliebigen Anzahl von Unterverzeichnissen in demselben Dired-Puffer auflisten können.

$In einer Kopfzeile einer Unterverzeichnisliste wird diese Unterverzeichnisliste ausgeblendet / angezeigt. Es entspricht also mehr oder weniger der von Ihnen angeforderten Erweiterungs- / Vertragsfunktion. Mit einem Präfix arg (z. B. C-u $) wird alles angezeigt / ausgeblendet, wodurch Sie im Grunde wieder zu einer sauberen Liste zurückkehren, aber mit Auflistungsüberschriften, in denen Sie anwenden können $, um deren Auflistungen selektiv anzuzeigen.

Wissen Sie auch, dass C-x C-v RETdie Hauptverzeichnisliste für einen bestimmten Dired-Puffer aktualisiert wird. Mit anderen Worten, es beginnt von vorne und liest das Verzeichnis neu - keine enthaltenen Unterverzeichnisse usw. Auf der anderen Seite werden gnur die aktuell angezeigten Einträge aktualisiert und alle außerhalb von Emacs vorgenommenen Änderungen übernommen.

Sie können dieselben lsSchalter für jede Unterverzeichnisliste verwenden.

Dired bietet keine "Baum" -Ansicht der Verzeichnishierarchie. Aber es ist immer noch sehr nützlich.

Wenn Sie die Add-On-Bibliothek Dired + verwenden, erhalten Sie einiges mehr Funktionen, einschließlich Befehlen, die mit markierten Dateien und markierten Dateien mit markierten Unterverzeichnissen arbeiten, ... die rekursiv gefunden wurden.

Mit Dired + ist sogar inoch nützlicher - verwenden Sie es, um zwischen einer Unterverzeichniszeile in einer übergeordneten Liste und der Liste dieses Unterverzeichnisses hin und her zu springen.

Dired + macht es auch einfach, mehrere Dired-Puffer zu verwenden, einschließlich separater Puffer für verschiedene Teile eines Baums (z. B. verschiedene Unterverzeichnisse). Außerdem können Sie auf einfache Weise Listen von Dateien und Verzeichnissen von jedem Ort aus erstellen, dh nicht aus demselben Verzeichnis.

Um herauszufinden, was Sie tun können, verwenden Sie die Menüs in der Menüleiste, beginnend mit dem Menü Dir.

Drew
quelle
4

dired-subtree ist eine Option und sieht wie folgt aus:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie das Use-Package verwenden , können Sie es in Ihrer init.el aktivieren und an TAB und SHIFT-TAB binden mit:

(use-package dired-subtree :ensure t
  :after dired
  :config
  (bind-key "<tab>" #'dired-subtree-toggle dired-mode-map)
  (bind-key "<backtab>" #'dired-subtree-cycle dired-mode-map))

Ich habe hier ein wenig darüber geschrieben .

Alvaro
quelle
1
Bitte erweitern Sie Ihren Beitrag, um eine vollständige, in sich geschlossene Antwort zu erhalten. Wir raten generell davon ab, nur Links als Antworten zu verwenden. Wenn Sie möchten, dass ich Ihren Beitrag in einen Kommentar umwandle (wobei nur Links weniger ein Problem darstellen), lassen Sie es mich wissen.
Dan
Erledigt. Hoffe das ist besser =)
alvaro
2

http://cedet.sourceforge.net/speedbar.shtml

Speedbar ist ein Emacs Lisp-Programm, mit dem Sie einen speziellen Skinny-Frame mit einer speziellen Verzeichnisliste erstellen können. Diese Liste enthält sowohl Verzeichnisse als auch gefilterte Dateien. Sie können dann Dateien in Ihren Emacs-Frame laden oder die Dateien erweitern, um alle darin enthaltenen Tags anzuzeigen und zu diesen Tags zu springen. Sie können auch mehrere Verzeichnisse in Ihren Speedbar-Frame erweitern.

Niedrige Powah
quelle
1
Obwohl in der Frage ausdrücklich erwähnt wird, vermute ich, dass Speedbar die Kriterien von OP sehr gut erfüllen wird, insbesondere von anderen IDEs. Für diejenigen, die es nicht mögen, Speedbar einen eigenen Frame zu geben, schauen Sie sich Sr Speedbar an, der den Speedbar im aktuellen Frame andockt.
Nispio