在Emacs中,我广泛使用了recentf 。 我通常调用自定义函数xsteve-ido-choose-from-recentf而不是调用find-files ,而这允许我从我的recentf文件中进行选择。
如何创建和维护最近目录的单独列表,与最近的文件列表分开? 所以,我可以调用像ido-choose-from-recent-directories这样的东西,而不是调用dired 。
In Emacs, I use recentf extensively. Rather than calling find-files, I usually call a custom function xsteve-ido-choose-from-recentf instead which allows me to choose from my recentf files.
How do I create and maintain a separate list of recent directories, separate from the list of recent files? So that instead of calling dired, I could call something like ido-choose-from-recent-directories?
最满意答案
您不需要维护一个单独的列表(这将是很多工作)。 相反,您可以从recentf列表中提取该列表。 例如
(delete-dups (mapcar (lambda (file) (if (file-directory-p file) file (file-name-directory file))) recentf-list))Pragmatic Emacs found the solution.
;; open recent directory, requires ivy (part of swiper) ;; borrows from http://stackoverflow.com/questions/23328037/in-emacs-how-to-maintain-a-list-of-recent-directories (defun bjm/ivy-dired-recent-dirs () "Present a list of recently used directories and open the selected one in dired" (interactive) (let ((recent-dirs (delete-dups (mapcar (lambda (file) (if (file-directory-p file) file (file-name-directory file))) recentf-list)))) (let ((dir (ivy-read "Directory: " recent-dirs :re-builder #'ivy--regex :sort nil :initial-input nil))) (dired dir)))) (global-set-key (kbd "C-x C-d") 'bjm/ivy-dired-recent-dirs)Here is a function to give you a list of recent directories, using ivy (part of swiper) to narrow it dynamically, and then open the selected one in dired.
Source: Open a recent directory in dired: revisited | Pragmatic Emacs
更多推荐
发布评论