GNU bug report logs -
#46351
28.0.50; Add convenient way to bypass Eshell's own pipelining
Previous Next
Reported by: Sean Whitton <spwhitton <at> spwhitton.name>
Date: Sat, 6 Feb 2021 20:07:01 UTC
Severity: wishlist
Tags: patch
Found in version 28.0.50
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Most people who use Eshell a lot need to be aware of the limitations of
its support for shell pipelines: primarily, that all data in pipelines
has to go through Emacs buffers, and that can be slow. If you're
running pipelines which will move a lot of data, you should use a system
shell which will be more performant.
Currently, if Eshell is your primary shell, it's not particularly
convenient to switch to using an operating system shell when you're
preparing a pipeline that you know is going to move a lot of data. You
would need either to switch to a shell-mode buffer, or quote and escape
your Eshell input and put something like `bash -c' in front of it.
I think that it would be good to have a way to easily toggle Eshell's
own pipelining support on and off for particular commands. I have come
up with the attached patches. When the new functions I've defined are
enabled, you can type
!! foo | bar 'arg' >baz >>#<buffer *scratch*>
and it will be executed by Eshell as if you had typed
bash -c 'foo | bar '"'"'arg'"'"' >baz' >>#<buffer *scratch*>
The idea is that you can easily toggle Eshell's pipelining on and off as
appropriate to your needs just by adding and removing the "!!" prefix.
I think that the patches I've prepared are a clean implementation of
this feature that would be good to include in Emacs.
--
Sean Whitton
[0001-Add-eshell-restore-unexpanded-input.patch (text/x-diff, attachment)]
[0002-Add-eshell-shell-command-and-eshell-expand-to-eshell.patch (text/x-diff, attachment)]
This bug report was last modified 3 years and 114 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.