Wie kann ich Ordnergrößen in Emacs Dired anzeigen?

Wie kann ich Ordnergrößen in Emacs Dired anzeigen?

Ich habe dired und dired+ zum Anzeigen von Verzeichnislisten eingerichtet und verwende es als Dateimanager zum Verschieben/Kopieren von Dateien. Derzeit listet dired „0“ als Größe für alle Unterverzeichnisse in jedem Verzeichnis auf.

Ich möchte, dass Dired Ordnergrößen berechnet und anzeigt. Ich möchte, dass dies an einen Tastendruck/Mausklick gebunden ist, da ich nicht möchte, dass Dired dies für jeden Ordner in jedem Puffer tut.

Ab sofort habe ich „Im Explorer öffnen“ (w32-shell-execute in Windows und gnome-open in Gnome) an „O“ gebunden, von wo aus ich Alt+Eingabe verwende, um die Unterverzeichnisgröße zu berechnen.

Antwort1

DasEmacs-Wiki-Seiteschlägt vor, den folgenden Codeausschnitt zu verwenden, um die Größe ausgewählter Dateien und Verzeichnisse zu berechnen:

 (defun dired-get-size ()
  (interactive)
  (let ((files (dired-get-marked-files)))
    (with-temp-buffer
      (apply 'call-process "/usr/bin/du" nil t nil "-sch" files)
      (message "Size of all marked files: %s"
               (progn 
                 (re-search-backward "\\(^[0-9.,]+[A-Za-z]+\\).*total$")
                  (match-string 1))))))

 (define-key dired-mode-map (kbd "?") 'dired-get-size)

Wenn ich Sie richtig verstehe, möchten Sie den Wert des Dired-Puffers direkt aktualisieren. Ich bin mit den internen Vorgängen von Dired nicht vertraut genug, aber ich denke, es sollte nicht so schwer sein.

Antwort2

Wenn Ihre Emacs-Version >=24.4 ist, dann können Sie versuchen,dired-duBibliothek. Sie ist im ELPA-Repository verfügbar.

Nachdem Sie diese Bibliothek installiert haben: Wenn sich Ihr aktueller Puffer im Dired-Modus befindet, können Sie Folgendes tun:

C-x M-r

das schaltet den `dired-du-Modus' um und zeigt die rekursive Größe der Verzeichnisse 'an Ort und Stelle' im Dired-Puffer an. Wenn Sie einen neuen Dired-Puffer besuchen, werden auch rekursive Puffer angezeigt, bis Sie den Modus ausschalten.

Noch ein Tipp:

C-x C-h

schaltet das Größenformat um. Es gibt 3 Formate:

  1. Standardmäßig vom Befehl „ls“.

  2. Für Menschen lesbares Format.

  3. Numerisches Format mit Tausender-Komma-Trennzeichen.

Sie können die Option „dired-du-size-format“ anpassen, um Ihre Größenformatauswahl dauerhaft zu machen.

verwandte Informationen