我最近开始使用 ido-mode,总的来说,它非常好。但有一件事似乎特别坏,我想知道是否有一个设置(ha)埋在那里来修复它。
ido-switch-buffer 似乎并不关心隐藏的缓冲区。也就是说,如果我使用 bury-buffer,然后使用 ido-switch-buffer,第一个选择通常是我刚刚埋的那个。
有没有简单的方法解决这个问题?掩埋缓冲区的全部意义在于我不想很快再次看到它。
根据文档 ( C-h f bury-buffer
)
Put BUFFER-OR-NAME at the end of the list of all buffers.
There it is the least likely candidate for 'other-buffer' to return;
thus, the least likely buffer for C-x b to select by
default.
所以,如果你使用bury-buffer
缓冲区,它仍然可用(在列表的末尾),所以ido-switch-buffer
找到它是正常的。
如果你不想看到那个缓冲区,你应该考虑关闭它。
我无法重现这个。据我所知,在 Emacs 23 上,ido-switch-buffer 以正确的顺序列出了缓冲区。
在任何情况下,您都可以尝试 iswitchb。它有点像 ido,只是更老且更特定于缓冲区切换。如果你喜欢它,你可以使用 iswitchb 进行缓冲区切换,使用 ido 进行其他所有操作。
也无法重现这一点:当我埋藏缓冲区并ido-switch-buffer
随后调用时,埋藏的缓冲区不在开关列表的前面。
我已经做了很多 ido 自定义(让它与 dired 等一起正常工作),但我的主要 ido 设置是:
(setq ido-show-dot-for-dired t)
(setq ido-default-file-method 'samewindow)
(setq ido-default-buffer-method 'samewindow)
(setq ido-confirm-unique-completion t)
(setq ido-max-dir-file-cache 20)
我的ido.el
版本是“在 gnu.emacs.sources 上发布的 1.57 适用于 emacs 22.1 ”。
hth。
FWIW,switch-to-buffer
Emacs-24 中 (Cx b) 的默认补全行为已更改为使用子字符串匹配补全,因此其行为类似于 IDO,同时遵循“默认缓冲区不应该是我刚刚埋葬的那个”的原则”。您可以通过打开使其更加相似icomplete-mode
(这不会改变完成行为本身,但会在 minibuffer 的末尾显示完成候选)。
使用next-buffer
或previous-buffer