Just to add tweaks that I use with already mentioned [Ido](http://www.emacswiki.org/emacs/InteractivelyDoThings): (use-package ido) (use-package ido-hacks) (use-package flx-ido) (use-package ido-vertical-mode) (ido-mode 1) (flx-ido-mode 1) (ido-hacks-mode 1) (ido-everywhere 1) (ido-vertical-mode 1) (setq ido-enable-flex-matching t ido-use-filename-at-point 'guess ido-vertical-define-keys 'C-n-C-p-up-down-left-right)) I'm also using `ace-window` to switch between buffers together with `ace-jump-mode` to *jump* between visible windows. Comes with some getting used to but worth trying. I have combined it with `key-chord-mode` and hit `so` for quick jump: (key-chord-define-global "so" 'ace-window)