Кастомайзинг - PullRequest
       7

Кастомайзинг

15 голосов
/ 18 мая 2010

Я только что наткнулся на этот экран режима Dired в Википедии. Я смотрю на эти настройки.

Что касается цветов, думаю, подойдет только правильное указание граней, но как мне устать показывать файл размером в килобайты по умолчанию? А доступное пространство в мегабайтах (верхняя строка)?

Ответы [ 5 ]

19 голосов
/ 15 апреля 2013

Я столкнулся с той же проблемой и обнаружил, как переключать переключатели на лету.

Таким образом, находясь в буфере Dired

C-u s

теперь вы можете менять переключатели, используемые ls. Добавьте h, чтобы получить читабельный файл размером

Вы также можете добавить другие ключи, например, я изменил его на -alsh, и теперь он сортируется по размеру файла

14 голосов
/ 18 мая 2010

Чтобы получить размеры файлов в килобайтах, вы можете настроить переменную dired-listing-switches для использования опции -k:

(setq dired-listing-switches "-alk")

Вам нужно проделать еще немного работы, чтобы получить общее / доступное количество в МБ. Это работало в моей системе Linux, но доступная часть не работала на моем компьютере с Windows:

(setq directory-free-space-args "-Pm")
(defadvice insert-directory (after insert-directory-adjust-total-by-1024 activate)
  "modify the total number by dividing it by 1024"
  (save-excursion
(save-match-data
  (goto-char (point-min))
  (when (re-search-forward "^ *total used in directory \\([0-9]+\\) ")
    (replace-match (number-to-string (/ (string-to-number (match-string 1)) 1024)) nil nil nil 1)))))
8 голосов
/ 21 августа 2011

На самом деле этот скриншот почти наверняка имеет значение Dired + , хотя сопровождающий текст создает впечатление, что он из ванильного Emacs (XEmacs?), И Атрибут для скриншота - «Команда разработчиков Emacs».

Так что да, ответ в том, что вы можете легко получить этот вид, используя Dired + и просто настраивая лица по умолчанию: M-x customize-group Dired-Plus.

4 голосов
/ 19 мая 2010

Вы не спрашивали, но я думал, что добавлю ....

Я хотел, чтобы можно было легко сортировать задержанный вывод по размеру и расширению, а также по имени и времени. Я знаю, что могу сделать это с помощью M-x universal-argument dired-sort-toggle-or-edit, но я хотел, чтобы он был доступен с помощью клавиши s, чтобы сделать это быстро.

;; Redefine the sorting in dired to flip between sorting on name, size,
;; time, and extension,  rather than simply on name and time.

(defun dired-sort-toggle ()
  ;; Toggle between sort by date/name.  Reverts the buffer.
  (setq dired-actual-switches
        (let (case-fold-search)

          (cond

           ((string-match " " dired-actual-switches) ;; contains a space
            ;; New toggle scheme: add/remove a trailing " -t" " -S",
            ;; or " -U"

            (cond

             ((string-match " -t\\'" dired-actual-switches)
              (concat
               (substring dired-actual-switches 0 (match-beginning 0))
               " -X"))

             ((string-match " -X\\'" dired-actual-switches)
              (concat
               (substring dired-actual-switches 0 (match-beginning 0))
               " -S"))

             ((string-match " -S\\'" dired-actual-switches)
              (substring dired-actual-switches 0 (match-beginning 0)))

             (t
              (concat dired-actual-switches " -t"))))

           (t
            ;; old toggle scheme: look for a sorting switch, one of [tUXS]
            ;; and switch between them. Assume there is only ONE present.
            (let* ((old-sorting-switch
                    (if (string-match (concat "[t" dired-ls-sorting-switches "]")
                                      dired-actual-switches)
                        (substring dired-actual-switches (match-beginning 0)
                                   (match-end 0))
                      ""))

                       (new-sorting-switch
                        (cond
                         ((string= old-sorting-switch "t")
                          "X")
                         ((string= old-sorting-switch "X")
                          "S")
                         ((string= old-sorting-switch "S")
                          "")
                         (t
                          "t"))))
                  (concat
                   "-l"
                   ;; strip -l and any sorting switches
                   (dired-replace-in-string (concat "[-lt"
                                                    dired-ls-sorting-switches "]")
                                            ""
                                            dired-actual-switches)
                   new-sorting-switch))))))

  (dired-sort-set-modeline)
  (revert-buffer))
1 голос
/ 19 мая 2010

Кроме того, дисплей в dired позволяет только 9 пробелов, поэтому для очень больших файлов, дисплей в dired будет испорчен. Еще раз это потребовало переопределения fn. В этом случае один из ls-lisp.el:

;; redefine this function, to fix the formatting of file sizes in dired mode
(defun ls-lisp-format-file-size (file-size human-readable)
  (if (or (not human-readable)
          (< file-size 1024))
      (format (if (floatp file-size) " %11.0f" " %11d") file-size)
    (do ((file-size (/ file-size 1024.0) (/ file-size 1024.0))
         ;; kilo, mega, giga, tera, peta, exa
         (post-fixes (list "k" "M" "G" "T" "P" "E") (cdr post-fixes)))
        ((< file-size 1024) (format " %10.0f%s"  file-size (car post-fixes))))))

(просто заменяет 9.0 на 11.0, а 8.0 на 10.0 в строках формата)

...