В Emacs есть команда для просмотра последнего открытого файла?
В Emacs есть команда, чтобы открыть последний открытый файл? Как visit-most-recent-file
?
Обратите внимание, что я не хочу просматривать список последних файлов, а затем выбрать один. Я хочу автоматически посетить последний открытый.
Было бы здорово посетить недавно открытый файл (которого больше нет в текущем буфере) одним нажатием клавиши. И затем сможете перейти к следующему последнему открытому файлу, снова нажав клавишу, и так далее.
Так что, нажав эту клавишу четыре раза (например, A-UP
), Я мог бы автоматически открыть четыре верхних файла в моем списке последних файлов.
Я могу вроде как сделать это, просматривая последние файлы, нажав C-x C-f UP RET
, но было бы здорово сделать это одним нажатием клавиши (например, A-UP
).
2 ответа
Построение ответа покиты,
(defun visit-most-recent-file ()
"Visits the most recently open file in `recentf-list' that is not already being visited."
(interactive)
(let ((buffer-file-name-list (mapcar 'buffer-file-name (buffer-list)))
most-recent-filename)
(dolist (filename recentf-list)
(unless (memq filename buffer-file-name-list)
(setq most-recent-filename filename)
(return)))
(find-file most-recent-filename)))
Я не очень проверял это.
Вы можете сделать это с помощью пакета latestf:
(require 'recentf)
(defvar my-recentf-counter 0)
(global-set-key (kbd "<M-up>")
(lambda ()
(interactive)
(setq my-recentf-counter (1+ my-recentf-counter))
(recentf-open-most-recent-file my-recentf-counter)))
Вы, вероятно, столкнетесь с проблемой того, что в "недавнем" списке есть файлы, которые вас не интересуют (временные файлы, которые были сохранены при выходе из Emacs). Используйте переменную latestf-exclude, чтобы исключить эти файлы из списка недавно открытых файлов.