Сортировать имена файлов (пронумерованы) в Dired


11

Когда Dired сортирует файлы по имени, он сортирует в алфавитном порядке. Это хорошо с буквами; однако, когда имена файлов начинаются с цифр, было бы лучше отсортировать по числовым значениям.

Пример:

Вот как Dired сортирует мои файлы:

10 11 12 13 ... 1 21 22 23 ... 2 31

Я хочу 1 2 3 4… 9 10 11…

Ответы:


12

Вот мой конфиг:

(setq dired-listing-switches "-laGh1v --group-directories-first")

Соответствующая часть есть -1v.


5

Помимо ответа @ abo-abo, я просто хочу процитировать документацию:

dired-listing-switchesпеременная, определенная в `dired.el ' Его значение "-Al --si - time-style long-iso"

Документация: Переключатели переданы lsдля Dired. ДОЛЖЕН содержать lопцию. Может содержать все другие параметры, которые не противоречат -l; может содержать даже F, b, iи s. Смотрите также переменную, dired-ls-F-marks-symlinksкасающуюся Fпереключателя. В таких системах, как MS-DOS и MS-Windows, которые используют lsэмуляцию в Lisp, некоторые из lsпереключателей не поддерживаются; смотрите строку документа insert-directoryв ls-lisp.elдля более подробной информации.

По сути, вы можете настроить переключатели, которые вы хотите использовать при вызове ls


2

Приведенные ответы лучше подходят для этой конкретной задачи, поскольку они напрямую связаны с поведением Dired. Однако ради общности я хочу упомянуть sort-numeric-fieldsкоманду, которая предназначена для сортировки чисел по величине, а не лексикографически.

(sort-numeric-fields FIELD BEG END)

Сортировка строк в области по числовому ARGполю каждой строки. Поля разделены пробелами и пронумерованы от 1 до. Указанное поле должно содержать число в каждой строке региона, которое может начинаться с «0x» или «0» для шестнадцатеричных и восьмеричных значений. В противном случае число интерпретируется в соответствии с sort-numeric-base. С отрицательным аргументом сортирует по ARGполям, отсчитываемым справа. Вызывается из программы, есть три аргумента: FIELD, BEGи END. BEGи ENDукажите регион для сортировки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.