Emacs - бібліотеки перегляду дерев, які показують змінену дату, розмір, дозволи тощо


-1

Я змінив ztree-режим, щоб забезпечити перегляд дерева з деякими функціями переробленого режиму - наприклад, позначити, відмітити,, ztree-get-marked-filesвгору-каталог, скопіювати, перейменувати / перемістити, видалити, сортувати за назвою та сортувати за модифікованою датою . Я хочу перейти на основний режим до наступного кроку, який полягає у включенні деякої додаткової інформації - наприклад, модифікована дата, розмір (читабельний для людини - наприклад, kb, MB, GB), дозволи та ін. Я не знайшов порівнянну бібліотеку, з якої можна отримати деякі ідеї. Чи існують бібліотеки перегляду дерев, які пропонують візуальне відображення деяких даних деталей-атрибутів файлів?

По суті, я буду використовувати дані, повернені з (directory-files-and-attributes DIRECTORY t nil t)і організовувати перегляд дерева на основі додаткових деталей, які пропонує список.

Відповіді:


0

Здається, публічно недоступні бібліотеки перегляду дерев Emacs, які в даний час пропонують цю функцію.

Тому я сам буду створювати таку особливість. Наступна функція може бути використана для отримання власного списку імен файлів, розміру, дати та дозволів. Ця функція file-size-human-readableможе бути недоступною в більш ранніх версіях Emacs, але вона доступна в Emacs Trunk. Функція ls-lisp-format-file-sizeв ls-lisp- альтернатива, але вона дає результат за допомогою провідних пробілів - я вирішив не використовувати цю функцію , а не поспілкуватися з нею. Це messageне потрібно, але корисно побачити, як виглядає користувацький список - лише для демонстраційних цілей.

(defun random-sort--filename-size-date-permissions ()
"Return a custom list (sorted randomly):
  absolute name, size, date and permissions."
  (let* (
      (directory "~/")
      (master (directory-files-and-attributes directory t nil t nil))
      (custom-list (mapcar (lambda (x)
        (list
          (nth 0 x) ;; filename
          (file-size-human-readable (nth 8 x)) ;; size
          (format-time-string "%m-%d-%Y %R" (nth 6 x)) ;; date
          (nth 9 x) )) ;; permissions
        master)) )
    (dolist (x custom-list)
      (message "%s" x))
    custom-list))

(defun date-sort--filename-size-date-permissions ()
"Return a custom list (sorted by date -- newest first):
  absolute name, size, date and permissions."
  (let* (
      (directory "~/")
      (random-master (directory-files-and-attributes directory t nil t nil))
      (date-sort--master (sort random-master
        #'(lambda (x y) (time-less-p (nth 6 y) (nth 6 x)))))
      (custom-list (mapcar (lambda (x)
        (list
          (nth 0 x) ;; filename
          (file-size-human-readable (nth 8 x)) ;; size
          (format-time-string "%m-%d-%Y %R" (nth 6 x)) ;; date
          (nth 9 x) )) ;; permissions
        date-sort--master)) )
    (dolist (x custom-list)
      (message "%s" x))
    custom-list))

(defun alpha-sort--filename-size-date-permissions ()
"Return a custom list (sorted alphabetically):
  absolute name, size, date and permissions."
  (let* (
      (directory "~/")
      (alpha-sort--master (directory-files-and-attributes directory t nil nil nil))
      (custom-list (mapcar (lambda (x)
        (list
          (nth 0 x) ;; filename
          (file-size-human-readable (nth 8 x)) ;; size
          (format-time-string "%m-%d-%Y %R" (nth 6 x)) ;; date
          (nth 9 x) )) ;; permissions
        alpha-sort--master)) )
    (dolist (x custom-list)
      (message "%s" x))
    custom-list))

Сортувати за назвою, використовуючи незначну зміну функції alpha-sort--filename-size-date-permissions, із спеціально модифікованою версією ztree-mode:

Приклад


Сортувати за датою, використовуючи незначну зміну функції date-sort--filename-size-date-permissions, із спеціально модифікованою версією ztree-mode:

Приклад

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.