Emacs ido: как сначала показать определенные окончания файлов?

Я использую ido-mode под Emacs 24 со следующими настройками:

(ido-mode 1)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(setq ido-use-filename-at-point 'guess)
(setq ido-use-url-at-point t)
(setq ffap-require-prefix t)

Предположим, у вас есть несколько файлов с одинаковыми именами, но разными окончаниями в текущем каталоге. Если вы измените буферы через C-x b, вы получите несколько предложений. Можно ли как-то повлиять на порядок этих предложений?

В качестве примера предположим, что у вас есть несколько файлов Sweave (.Rnw) в текущем каталоге. Они всегда важнее, чем соответствующие (.tex) файлы, созданные из них. Таким образом, в большинстве случаев вы хотите изменить буфер на файл .Rnw, а не на файл .tex. Поэтому было бы хорошо, если бы файлы .Rnw предлагались первыми (во всех каталогах, где существуют файлы .Rnw и .tex с одинаковым базовым именем).


person Marius Hofert    schedule 16.01.2013    source источник


Ответы (1)


«Если вы хотите настроить сортировку файлов по умолчанию, например, чтобы Sweave-файлы отображались первыми, сообщите ido, каким файлам дать более высокий приоритет сортировки:»

(setq ido-file-extensions-order '(".Rnw" ".tex"))

Но это работает только для ido-find-file, а не для ido-switch-buffer. Буферы сортируются по свойству most recent. Я не знаю о функциональности, которая добавляет еще одно свойство сортировки поверх most recent. Таким образом, функция ido-file-extension-lessp может использоваться для сортировки списка буферов. Но два вида сортировки могут конфликтовать друг с другом.

person artscan    schedule 16.01.2013
comment
Большое спасибо, артскан. Я попытался продолжить ваше предложение, немного осмотревшись, но также не смог найти очевидного ответа для ido-switch-buffer. - person Marius Hofert; 16.01.2013
comment
Любая идея, почему это не работает для меня? Ничего не изменилось: (setq ido-file-extensions-order '(".py" ".r" ".cpp" ".tex" ".txt")? .log в папке отображается первым с ido-find-file. - person PascalVKooten; 10.10.2013
comment
Я полагаю, вы тестируете его на именах файлов длиной 1, например. a.py, a.r и т. д. В этом случае у меня тоже не работает. Если длина имени файла больше 1, например. ab.py, ab.r и т. д... все в порядке. - person artscan; 11.10.2013
comment
Из моего тестирования он сначала сортирует все до расширения файла, а затем, только если базовое имя такое же, он учитывает сортировку по расширению. - person unhammer; 11.11.2013