Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: less with subprocess

Hello, thanks for your insights, but I think you are kind of missing the point: I am already happy with what

less -f <(find ...)

gives me in terms of ux. Of course the output is generated continuously and it is stored in ram by less, having gigabytes of ram it doesn't really matters how much output is produced.
The only upgrade I was looking for was to be able to do ctrl-c to dispose of the command even when find had not yet produced enough output to make less satisfied, the infamous one screenfull of text.
your solution to use ctrl-z is good enough for that, given that no other solution seems possibile (except for the patch proposed by Vincent, but I can only cheer for that solution for now)
I fail to understand how it would help me to create a tmpfs and make the long running process write there instead of to a pipe. If the process doesn't produce output it will still hang the shell, doesn't it?

Pier Paolo Grassi

Il giorno ven 1 ott 2021 alle ore 01:49 Dominik Vogt <dominik.vogt@xxxxxx> ha scritto:
On Thu, Sep 30, 2021 at 10:59:25PM +0200, Pier Paolo Grassi wrote:
> writing on disk it can eat away all the space I have on my device and make
> other processes that need that disk space to fail. Even if disk is cheap
> doesn't mean it's always plentifully available

If you don't want to consume disk space you could use a
ramdisk/tmpfs for the temporary files.  Less will gobble up memory
anyway if it gets tons of input, unless you give it the -b or -B

On the other hand I wonder what kind of command would generate an
awful lot of output quickly which can still be overlooked manually
in less.  I mean, if you're only interested in the first N lines
or M bytes, you can pipe the command's output through "head -n N"
or "head -c M".

  cat /dev/zero | head -c 1000000 LF

(With the global alias from an earlier message.)


So, what you really want is to put the producing command to sleep
while less is in "view" mode and wake it up when going to "follow"
mode?  That somehow contradicts your initial request:

>> I use it like this so I am able to use ctrl-c and +F inside less to move
>> around in the output already received ...
>> ... and receive the new input received in the meantime (with +F)
           ^^^^^^^     ^^^^^^^^^          ^^^^^^^^^^^^^^^


If you *don't* want to put the producing process to sleep, it
sounds a bit like "the command shall keep running and buffer the
output in a magical bag of holding while less is in 'view' mode".


If you don't want the output on disk, the only options I see are

 * either do not generate new data in the meantime
 * or store it somewhere else (memory/ramdisk, other medium)


Dominik ^_^  ^_^


Dominik Vogt

Messages sorted by: Reverse Date, Date, Thread, Author