From 4239d7df1f4416abcfdd8a235d94b1b9180301e2 Mon Sep 17 00:00:00 2001 From: Jeffrey Horn Date: Wed, 11 Jan 2012 18:55:58 -0500 Subject: [PATCH] Added function and key binding to use `ido` for recent files --- starter-kit-bindings.org | 13 +++++++------ starter-kit-defuns.org | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/starter-kit-bindings.org b/starter-kit-bindings.org index decade08f..3107be2b4 100644 --- a/starter-kit-bindings.org +++ b/starter-kit-bindings.org @@ -43,12 +43,13 @@ Key Bindings. ** File finding #+begin_src emacs-lisp -(global-set-key (kbd "C-x M-f") 'ido-find-file-other-window) -(global-set-key (kbd "C-x C-p") 'find-file-at-point) -(global-set-key (kbd "C-c y") 'bury-buffer) -(global-set-key (kbd "C-c r") 'revert-buffer) -(global-set-key (kbd "M-`") 'file-cache-minibuffer-complete) -(global-set-key (kbd "C-x C-b") 'ibuffer) + (global-set-key (kbd "C-x M-f") 'ido-find-file-other-window) + (global-set-key (kbd "C-x C-p") 'find-file-at-point) + (global-set-key (kbd "C-c y") 'bury-buffer) + (global-set-key (kbd "C-c r") 'revert-buffer) + (global-set-key (kbd "M-`") 'file-cache-minibuffer-complete) + (global-set-key (kbd "C-x C-b") 'ibuffer) + (global-set-key (kbd "C-x f") 'recentf-ido-find-file) #+end_src ** Window switching. (C-x o goes to the next window) diff --git a/starter-kit-defuns.org b/starter-kit-defuns.org index 6e017b4dd..f8b82f9fc 100644 --- a/starter-kit-defuns.org +++ b/starter-kit-defuns.org @@ -51,3 +51,25 @@ a lambda doesn't already exist in the list. "Enable things that are convenient across all coding buffers." (run-hooks 'starter-kit-coding-hook)) #+end_src + +#+srcname: starter-kit-recentf-ido-find-file +#+begin_src emacs-lisp + (defun recentf-ido-find-file () + "Find a recent file using Ido." + (interactive) + (let* ((file-assoc-list + (mapcar (lambda (x) + (cons (file-name-nondirectory x) + x)) + recentf-list)) + (filename-list + (remove-duplicates (mapcar #'car file-assoc-list) + :test #'string=)) + (filename (ido-completing-read "Choose recent file: " + filename-list + nil + t))) + (when filename + (find-file (cdr (assoc filename + file-assoc-list)))))) + #+end_src