Hi Pierre,

Pierre Neidhardt <ambre...@gmail.com> writes:

> Maxim Cournoyer <maxim.courno...@gmail.com> writes:
>
>>> - Perform transactions (install/remove) over multiple packages.
>>
>> To be fair, I think you can already accomplish this using emacs-guix by
>> separating with commas multiple package names :).
>
> Can you explain?  I don't know how to do that.

Sure! It's briefly covered in the Emacs-Guix info manual, in the 'Popup
Interface' section:

--8<---------------cut here---------------start------------->8---
So ‘M-x guix’ command provides a top-level popup interface for all
available guix commands.  When you select an option, you’ll be prompted
for a value in the minibuffer.  Many values have completions, so don’t
hesitate to press ‘<TAB>’ key.  Multiple values (for example, packages
or lint checkers) should be separated by commas.
--8<---------------cut here---------------end--------------->8---

A concrete example would look like:

1. Start Emacs
2. M-x guix
3. p
4. =i
5. emacs-helm,emacs-ivy ENT

You can tab-complete any package names entered at step 5. above.

> The point of the Helm interface is that it allows to "batch select"
> multiple packages.  I don't think that emacs-guix can do that.

You are right, it doesn't scale like this; one would have to resort
using 'guix package -A=some-regexp', calling `guix package -i' on each
element.

> For instance, if I want to install all Emacs packages except, say,
> emacs-guix (haha! :p) then I would
>
> - M-x helm-system-packages
> - "emacs"
> - M-a
> - "emacs-guix"
> - C-space
> - <f2>
>
> In other words, it scales well with big loads of packages.

Neat! Thanks for sharing.

Maxim

Reply via email to