Skip to content
Switch to other buffers, files and functions in emacs via popup
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

License GPL 2 MELPA


popup-switcher provides (yet another) convenient way to switch buffers, navigation possibility through functions/methods and any other kind of switching you like. It's easy to use and extend for custom purposes. It uses popup lib for better sense.


Add MELPA (if not yet) to your package-archives list:

(require 'package)
(add-to-list 'package-archives
             '("melpa" . ""))

Then you can install popup-switcher with the following command:

M-x package-install [RET] popup-switcher [RET]

Load popup-switcher:

(require 'popup-switcher)



Add a hotkey to psw-switch-<X> to you taste (for the full list of predefined switching functions see Usage section), e.g.:

(global-set-key [f2] 'psw-switch-buffer)

Functions/methods navigation

Uses imenu to navigate through functions/methods names via psw-switch-function.

(global-set-key [f3] 'psw-switch-function)

Maximum number of visible items

Set maximum number of visible items in popup menus

(setq psw-popup-menu-max-length 15)

Menu position

Menu opens centered with respect to fill-column by default. Set psw-popup-position variable to change horizontal positioning.

Possible values are:

  • fill-column - center relative to fill-column (default setting)
  • center - center relative to window borders
  • point - open popup at point
(setq psw-popup-position 'center)

Fuzzy matching

Non-nil psw-use-flx enables flx fuzzy matching engine for isearch in popup menus. flx-ido is required in this case, it can be installed by your favorite approach. E.g. by MEPLA: M-x package-install [RET] flx-ido [RET]

(setq psw-use-flx t)

Modified buffers marker

Non-nil psw-mark-modified-buffers means mark modified buffers with star char (*) expect special beffers like *Messages* any time you call psw-switch-buffer.

Enter to dired-mode via psw-navigate-files

(setq psw-enable-single-dot-to-navigate-files t)

Any time you run psw-navigate-files fn you can select dot . item, which opens dired-mode for current directory.


List of interactive functions:

Command Description
psw-switch-buffer switch buffers through popup menu
psw-switch-recentf switch recent files
psw-navigate-files simple file navigator
psw-switch-function switch (navigate) through functions in the current buffer (optional)
psw-switch-projectile-files switch among projectile project files list (optional)

Run M-x psw-switch-buffer [RET] (or your selected key). Type some letters from the name of buffer of interest (since isearch is enabled on start) to filter buffers list, use arrow keys and [RET] or mouse to select buffer.

When you are in menu created by psw-switch-buffer, you can kill selected buffer by pressing C-d or C-k.



Copyright © 2013-2017 Kostafey and contributors

Distributed under the General Public License 2.0+

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.