18

When I'm in the package manager (M-x package-list-packages), I'd like to quickly navigate to my installed packages.

emacs packages

There are literally thousands of packages marked as available, installed, or built-in, but all of the navigation appears to be line-by-line. Is this an oversight with the package manager or am I overlooking something obvious (aside from basic string search, of course)?

6
  • There is a Filter package list option, you can invoke it by pressing f or the function package-menu-filter. Nov 12, 2014 at 2:08
  • @KingShimkus: I'm running the standard package manager that comes with emacs 24.3.1 which doesn't appear to have package-menu-filter, but thanks for the heads up!
    – Jeff Bauer
    Nov 12, 2014 at 2:23
  • 2
    If you find that some feature, whether convenience or vital, is missing or wrong in the Emacs package system, consider reporting it for improvement, using M-x report-emacs-bug. (That is for enhancement requests, as well as bugs.)
    – Drew
    Nov 12, 2014 at 2:54
  • 3
    Jeff Bauer: If you update to Emacs 24.4 that f key filter function will be available.
    – phils
    Nov 12, 2014 at 3:48
  • 2
    f is only for filtering on keyword, not status.
    – dgtized
    Nov 12, 2014 at 7:47

3 Answers 3

11

I tend to end up using occur (or more specifically helm-swoop) to narrow down my choices.

However you can also use paradox, which extends the functionality of the basic package manager. This include S x sorting options as well as single key next and status. It also has its own filter options: notably, f u will narrow down to all packages affected by an upgrade.

3

Here's another option, if you just want to use completing-read (perhaps with ido via ido-everywhere or ido-ubiquitous) to quickly open an installed package outside of the package list:

(defun open-package ()
  (interactive)
  (let* ((packages (mapcar 'symbol-name (mapcar 'car package-alist)))
         (package (completing-read "Open package: " packages nil t)))
    (find-library package)))
1

In recent versions of Emacs, you can access the package view with M-x list-packages. You can then filter the packages:

  • by upgradable with / u;
  • by any other status (available, dependency, disabled, etc) with / s;
  • by name with / n;
  • by description with / d;

And then clear the filter with / /.

The invoked commands are all in the package-menu-filter-* family, which you can explore for more options.

So to answer the original question, the way to display all installed packages is: / s installed RET.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.