Como posso exibir os tamanhos das pastas no emacs dired?

Como posso exibir os tamanhos das pastas no emacs dired?

Eu tenho a configuração dired e dired+ para visualizar listagens de diretórios e usá-lo como meu gerenciador de arquivos para mover/copiar arquivos. Atualmente dired lista '0' como o tamanho de todos os subdiretórios em qualquer diretório.

Eu gostaria que calculasse e exibisse os tamanhos das pastas. Eu gostaria que isso fosse vinculado a um pressionamento de tecla/clique do mouse, pois não quero que isso seja feito em todas as pastas de todos os buffers.

A partir de agora, tenho "open in explorer" (w32-shell-execute no windows e gnome-open no gnome) vinculado a "O" a partir do qual uso Alt+Enter para calcular o tamanho do subdiretório.

Responder1

EssePágina wiki do Emacssugere usar o seguinte trecho para calcular o tamanho dos arquivos e diretórios selecionados:

 (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)

Se bem entendi, você gostaria de atualizar o valor do buffer Dired diretamente. Não estou familiarizado o suficiente com os detalhes internos do Dired, mas acho que não deveria ser tão difícil.

Responder2

Se a sua versão do Emacs for> = 24.4, você pode tentar odired-dubiblioteca. Está disponível no repositório ELPA.

Depois de instalar esta biblioteca: Se o seu buffer atual estiver no modo Dired, você poderá fazer:

C-x M-r

que alterna o `dired-du-mode' e exibe o tamanho recursivo dos diretórios 'no lugar' no buffer Dired. Se você visitar um novo buffer Dired, ele também mostrará buffers recursivos, até que você desative o modo.

Outra dica:

C-x C-h

alterna o formato do tamanho. Existem 3 formatos:

  1. Padrão do comando `ls'.

  2. Formato legível por humanos.

  3. Formato numérico com separador de milhares por vírgula.

Você pode personalizar a opção `dired-du-size-format' para tornar persistente sua escolha de tamanho.

informação relacionada