=== modified file 'lisp/ido.el' --- lisp/ido.el 2011-08-04 00:58:07 +0000 +++ lisp/ido.el 2011-08-25 15:52:09 +0000 @@ -1533,6 +1533,7 @@ (define-key map [remap insert-file] 'ido-insert-file) (define-key map [remap list-directory] 'ido-list-directory) (define-key map [remap dired] 'ido-dired) + (define-key map [remap vc-dir] 'ido-vc-dir) (define-key map [remap find-file-other-window] 'ido-find-file-other-window) (define-key map [remap find-file-read-only-other-window] @@ -4245,6 +4246,23 @@ (ido-auto-merge-work-directories-length -1)) (ido-file-internal 'dired 'dired nil "Dired: " 'dir))) +(defun ido-vc-dir (dir &optional backend) + "Call `vc-dir' the ido way. +The directory is selected interactively by typing a substring. +For details of keybindings, see `vc-dir'." + (interactive + (list + (file-truename + (ido-read-directory-name "VC status for directory: ")) + (if current-prefix-arg + (intern + (completing-read + "Use VC backend: " + (mapcar (lambda (b) (list (symbol-name b))) + vc-handled-backends) + nil t nil nil))))) + (vc-dir dir backend)) + (defun ido-list-directory () "Call `list-directory' the ido way. The directory is selected interactively by typing a substring.