I use ido
for switching buffers, and it is awesome. I also have (flx-ido mode t)
in my init file.
I have run into a problem that causes me to switch to a buffer different from what I was expecting. I will explain with an example:
Say I have two buffers, EmacsBuffer
, and EightyMegabytesAndConstantlySwapping
. I switch to a different buffer, e.g. *scratch*
, and now I want to get back to EmacsBuffer
, so I do C-x b
and start typing: e m a c
... This is what I see:
Buffer: emac[sBuffer]{EightyMegabytesAndConstantlySwapping}
EmacsBuffer
As you can see, the candidate for tab-completion is EmacsBuffer
, as I would expect. However, because I have flex
enabled, the other buffer is fuzzy-matched, and so it is the candidate to immediately switch to. Since I usually am looking only at what I am typing, I see that EmacsBuffer
is the candidate for tab-completion, so I immediately hit RET
, and am surprised when it switches to EightyMegabytesAndConstantlySwapping
. How do I change this so that the immediate-switch buffer is the same as the tab-completion buffer?
I could just disable flex
, but I do find it useful, because e.g. if I don't have a buffer named EmacsBuffer
, I like that e m a c s
matches EightyMegabytesAndConstantlySwapping
.
flx-ido-mode
is to favor the longest match. I don't see a straightforward way to tweak this behavior.