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)?

Jeffrey Bauer
  • 881
  • 1
  • 10
  • 23
  • There is a Filter package list option, you can invoke it by pressing f or the function package-menu-filter. – programking Nov 12 '14 at 02: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! – Jeffrey Bauer Nov 12 '14 at 02:23
  • Oh, sorry I couldn't of been of more assistance. – programking Nov 12 '14 at 02:24
  • 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 '14 at 02:54
  • 3
    Jeff Bauer: If you update to Emacs 24.4 that f key filter function will be available. – phils Nov 12 '14 at 03:48
  • 2
    f is only for filtering on keyword, not status. – dgtized Nov 12 '14 at 07:47

3 Answers3

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.

TomRoche
  • 632
  • 4
  • 21
stsquad
  • 4,651
  • 29
  • 45
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)))
waymondo
  • 1,384
  • 11
  • 16
2

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.

kotchwane
  • 513
  • 2
  • 12