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.