Подтвердить что ты не робот

"Открыть последнее" в Emacs

Имеет ли Emacs возможность открывать последние файлы (например, меню, например File > Open Recent...)?

Я знаю, что у Aquamacs для OS X есть эта функция. Но это распространено для всех версий Emacs?

4b9b3361

Ответ 1

В обычном GNU Emacs нет меню, показывающее недавно открытые файлы. Однако все команды Emacs имеют историю, включая find-file (C-x C-f). Выбор "Файл | Открыть" в меню или открытие файла с помощью emacsclient также добавляет к этой истории. После нажатия C-x C-f нажмите up и down, чтобы просмотреть историю открытых файлов.

История сохраняется между сеансами, если вы включаете сохранение сеанса с пакетом desktop.

Ответ 2

Самый идиоматический метод предоставления этой функциональности, о которой я знаю, - это использование recentf-mode (более здесь). Я включаю его в файл инициализации с помощью:

(require 'recentf)

(recentf-mode 1)

Затем он предоставляет интерактивную функцию recentf-open-files, которую я привязываю к C-x f, которая предоставляет пронумерованное меню недавно открытых файлов, которые охватывают сеансы, то есть даже если вы выключите emacs и перезапустите его, он сохранит ваш недавно открытые файлы. Вы можете привязать функцию к ускорителю с другой строкой в ​​файле инициализации, например:

(global-set-key "\C-xf" 'recentf-open-files)

(Необязательно)

Если вы широко используете Tramp, последниеf также будут отслеживать эти файлы и делать это с периодической очисткой, что может быть настоящим беспорядком, поскольку файлы удалены. Предотвратите это, поместив это в ваш файл запуска:

(setq recentf-auto-cleanup 'never)

Ответ 3

Если вы хотите сохранить историю минибуфера между вызовами emacs, вы можете поместить следующее в свой .emacs:

(savehist-mode 1)

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

Ответ 4

GNU Emacs включает в себя библиотеку recentf.el, так как Emacs 22. Просто делайте так, как указано Р.П. Диллоном.