Baumbasierter Verzeichnis-Browser?


38

Ich mag dired, aber manchmal (besonders wenn ich Screencasts filme) möchte ich die Baumstruktur eines Verzeichnisses und seiner Kinder sehen, a la the tree (1) -Befehl. Gibt es einen baumorientierten Verzeichnis-Browser für Emacs?


Ich bin mir ziemlich sicher, dass ecb das kann.
Edgar Aroutiounian

2
@EdgarAroutiounian Wenn das der Fall ist, empfehle ich, eine Antwort daraus zu machen :)
Trevoke

Antworten:


23

Zusätzlich können Sie dired-subtree von dired-hacks repo verwenden.

Hier haben Sie eine kurze Demo und einen Screenshot von meinem Setup, auf den ich drücke i, um den Ordner aufzurufen und ;zurückzukehren:

  (define-key dired-mode-map "i" 'dired-subtree-insert)
  (define-key dired-mode-map ";" 'dired-subtree-remove)

Dired-Teilbaum

PS Mir ist auch Direx bekannt, das so aussieht direx:


Ich habe dired-subtree ausprobiert, aber die Baumstruktur war optisch nicht so offensichtlich, wie ich gesucht habe. Direx sieht perfekt aus, aber ich werde es versuchen.
Avdi

Ich bin dieser, weil der Vorschlag von Direx ideal für meinen Anwendungsfall ist, eine Verzeichnisbaum-Visualisierung in den Vordergrund zu stellen. @ Keelerms exzellente Vorschläge sind damit allerdings nicht zu unterschätzen.
Avdi

Sie können äquivalente Funktionen mit einer Tastenzuordnung erhalten: (Define-Key Dired-Mode-Map "i" Dired-Subtree-Toggle). Ich mag es, es zu "Cc i" abzubilden, obwohl, da dired auch ein Unterverzeichnis mit "i" einfügt.
Joe

22

Hierfür gibt es mehrere Möglichkeiten.

Du kannst dir dirtree anschauen , das auf dired basiert.

Es gibt auch einen Emacs-Port von Vims NERDTree namens Neotree .

Beide sind ausgezeichnete Pakete, obwohl ich eher neotree bevorzuge, da es praktische Bindungen zum Erstellen und Löschen von Dateien und Verzeichnissen bietet. Ich glaube nicht, dass Dirtree diese Unterstützung hat, obwohl ich mich irren könnte. Es ist eine Weile her, seit ich es das letzte Mal benutzt habe.


Danke, Direx scheint zwar ideal für meine unmittelbaren Bedürfnisse zu sein, aber Sie haben mich daran erinnert, dass ich einige Zeit mit neotree verbringen muss.
Avdi

9

Sie können diredmit einem Argument aufrufen , dh. C-u C-x dNach der Aufforderung zur Eingabe des Verzeichnisses können Sie auch die Switches ändern, die an übergeben werden ls. Füge hinzu Rund diredliste rekursiv alle Unterverzeichnisse auf, jedes in einem eigenen Abschnitt.

Wenn Sie nur den Inhalt einiger Unterverzeichnisse anzeigen möchten, drücken Sie, iwenn sich der Punkt auf einem Verzeichnisnamen befindet.

Sie können den find-diredBefehl auch mit oder ohne Schalter verwenden. Anstatt Unterverzeichnisse in einem eigenen Bereich anzuzeigen, wird der vollständige Pfad jeder Datei gedruckt. Sie können die Anzeige von Dateidetails (so umschalten, dass die langen Pfade horizontal auf dem Bildschirm angezeigt werden.

Diese sind alle eingebaut.


7

Hast du schon mal Emacs ausprobiert M-x speedbar? :-) Bevor ich ein neues Paket installiere, würde ich eine eingebaute Lösung ausprobieren ...


1
… Und noch eine Gegenstimme für den Vorschlag eines Einbaus.
GergelyPolonkai

4

Es gibt auch ztree . Ich benutze es, wenn ich einen Blick auf die Verzeichnisstruktur werfen muss, obwohl ich normalerweise Vanille Dired für alle anderen Dinge benutze.


1

Schauen Sie sich sidebar.el an .

Wie das Repo sagte, ist es ein anpassbarer Datei-Explorer mit Git-Integration, aber nicht nur das. Sie können mit mu4e auch die Liste der Puffer und Ihrer Maildirs abrufen.

Bildbeschreibung hier eingeben


1

Hat Treemacs Arbeit. Es ermöglicht Ihnen eine baumartige Struktur.


Ist das eine Antwort oder eine Frage (zwei Fragen)? Es ist so ziemlich eine Nur-Link-Antwort, wenn es sich um eine Antwort handelt. Daher besteht die Gefahr, dass es gelöscht wird. Siehe emacs.stackexchange.com/help/how-to-ask .
Drew

1
@Drew, fwiw Ich denke, das ist nur eine Frage der Sprache / Interpretation. Treemacs sind ein absolut akzeptabler Vorschlag für die Frage des OP.
EdwardGarson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.