# HG changeset patch # User John Wiegley # Date 1271847658 14400 # Node ID 2db141e518248ac74eeee28224d7b65542a66c67 # Parent 3aba143264dee62ea7b381272d6970081511fa16 Added C-o keybinding to toggle use of virtual buffers * ido.el (ido-init-completion-maps): For ido-switch-buffer, C-o toggles the use of virtual buffers. (ido-buffer-internal): Guard `ido-use-virtual-buffers' global value. (ido-toggle-virtual-buffers): New function. diff -r 3aba143264de -r 2db141e51824 lisp/ChangeLog --- a/lisp/ChangeLog Tue Apr 20 23:49:28 2010 -0700 +++ b/lisp/ChangeLog Wed Apr 21 07:00:58 2010 -0400 @@ -1,3 +1,11 @@ +2010-04-21 John Wiegley + + * ido.el (ido-init-completion-maps): For ido-switch-buffer, C-o + toggles the use of virtual buffers. + (ido-buffer-internal): Guard `ido-use-virtual-buffers' global + value. + (ido-toggle-virtual-buffers): New function. + 2010-04-21 Juanma Barranquero Use `define-derived-mode'; fix window selection; doc fixes. diff -r 3aba143264de -r 2db141e51824 lisp/ido.el --- a/lisp/ido.el Tue Apr 20 23:49:28 2010 -0700 +++ b/lisp/ido.el Wed Apr 21 07:00:58 2010 -0400 @@ -1633,6 +1633,7 @@ (define-key map "\C-x\C-f" 'ido-enter-find-file) (define-key map "\C-x\C-b" 'ido-fallback-command) (define-key map "\C-k" 'ido-kill-buffer-at-head) + (define-key map "\C-o" 'ido-toggle-virtual-buffers) (set-keymap-parent map ido-common-completion-map) (setq ido-buffer-completion-map map))) @@ -2182,6 +2183,7 @@ (ido-current-directory nil) (ido-directory-nonreadable nil) (ido-directory-too-big nil) + (ido-use-virtual-buffers ido-use-virtual-buffers) (require-match (confirm-nonexistent-file-or-buffer)) (buf (ido-read-internal 'buffer (or prompt "Buffer: ") 'ido-buffer-history default require-match initial)) @@ -2705,6 +2707,16 @@ (setq ido-exit 'keep) (exit-minibuffer)))) +(defun ido-toggle-virtual-buffers () + "Toggle the use of virtual buffers. +See `ido-use-virtual-buffers' for explanation of virtual buffer." + (interactive) + (when (and ido-mode (eq ido-cur-item 'buffer)) + (setq ido-use-virtual-buffers (not ido-use-virtual-buffers)) + (setq ido-text-init ido-text) + (setq ido-exit 'refresh) + (exit-minibuffer))) + (defun ido-reread-directory () "Read current directory again. May be useful if cached version is no longer valid, but directory