2009-02-25 71 views
2

我最近开始使用ido-mode,总体而言,它非常好用。但有一件事情似乎特别破碎,我想知道是否有一个设置(哈)埋在那里修复它。ido-switch-buffer and bury-buffer

ido-switch-buffer似乎不关心隐藏的缓冲区。也就是说,如果我使用埋葬缓冲区,然后使用ido-switch-buffer,那么第一个选择通常就是我刚埋下来的那个。

有没有简单的方法呢?掩埋缓冲区的关键在于我不想再次看到它。

+0

你能否提供重建步骤?我有一个如何解决这个问题的想法,但不能重现问题。 – 2009-03-09 21:42:00

回答

2

Acording到文档(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找到它。

如果你不想看到那个缓冲区,你应该考虑关闭它。

+1

没错。这只适用于切换到缓冲区(内置C-x b)。 ido-switch-buffer(ido-mode的C-x b)似乎忽略了这个顺序,并且经常把它放在第一位。我想让ido-switch-buffer的完成,以及切换到缓冲区的埋入知识。 – Ken 2009-02-26 18:02:51

0

使用next-bufferprevious-buffer

0

我不能重现此。在Emacs 23上,据我所知,ido-switch-buffer以正确的顺序列出缓冲区。

无论如何,你可以试试iswitchb来代替。它有点像ido,只有更老,更专用于缓冲切换。如果你喜欢它,你可以使用iswitchb进行缓冲区切换,并使用ido进行其他操作。

0

无法重现这一点:当我埋葬一个缓冲区,然后调用ido-switch-buffer后,隐藏的缓冲区不在开关列表的前面。

我已经做了相当多的IDO定制(得到它与dired等运作良好),但我的主要伊多设置是:

(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版本是“ 1.57发布GNU。 emacs.sources适用于emacs 22.1“。

hth。

0

FWIW,Emacs-24中的默认完成行为switch-to-buffer(Cx b)已更改为使用子字符串匹配完成,因此其行为与IDO类似,但遵守“默认缓冲区不应该为我刚刚埋葬的那个“。您可以通过打开icomplete-mode(它不会更改完成行为本身,但在小型缓冲区末尾显示完成候选项)使其更加类似。