Some pagers also support search, which can be very useful.

On Fri, 10 Feb 2017 11:28:04 -0800
"Leander S. Harding" <l...@lsh.io> wrote:

>  Personally, I've always thought that the VTxx escape
> sequence family is missing one: enable/disable
> scroll-lock. Then, your 'pager' just consists of printing
> the scroll-lock sequences at the beginning and end of
> output and using your multiplexer's scrolling feature,
> and can be accomplished like Eric mentioned above via
> aliases easily, too.
> 
>  -Leander
> 
> On Fri, Feb 10, 2017 at 1:53 AM, hiro <23h...@gmail.com>
> wrote:
> > the problem is when i *know* stuff fill be very long,
> > but I still want to start reading from the beginning.
> > in tmux i don't know how to start scrolling from top of
> > my last command. I don't want to scroll there manually.
> > also in page i can use pgup/down in tmux i have to do
> > crazy emacs-combinations first.
> >
> > On 2/10/17, Eric Pruitt <eric.pru...@gmail.com> wrote:  
> >> On Fri, Feb 10, 2017 at 08:26:11AM +0100, robin
> >> wrote:  
> >>> I usually pipe into less whenever something overflows
> >>> the terminal height, but having to type 2>&1 to see
> >>> stderr is a bit cumbersome. In dvtm Shift-PageUp is
> >>> much easier.  
> >>
> >> I use a generic wrapper function in Bash:
> >>
> >>     #   $1  Name or path of the command to execute.
> >>     #   $2  White-space separated list of options to
> >> pass to the command #       when stdout is a TTY. If
> >> there are no TTY-dependent options #       this should
> >> be "--". #   $@  Arguments to pass to command.
> >>     #
> >>     function -paginate()
> >>     {
> >>         local errfd=1
> >>
> >>         local command="$1"
> >>         local tty_specific_args="$2"
> >>         shift 2
> >>
> >>         if [[ -t 1 ]]; then
> >>             test "$tty_specific_args" != "--" ||
> >> tty_specific_args="" test -t 2 || errfd=2
> >>             "$command" $tty_specific_args "$@"
> >> 2>&"$errfd" | less -X -F -R return
> >> 2>"${PIPESTATUS[0]/141/0}"  # Ignore SIGPIPE failures.
> >>         fi
> >>
> >>         "$command" "$@"
> >>     }
> >>
> >> Then I have around 30 aliases for various commands I
> >> use like this:
> >>
> >>     alias cat='-paginate cat --'
> >>     alias grep='-paginate grep --color=always'
> >>     alias ps='-paginate ps --cols=$COLUMNS
> >> --sort=uid,pid -N --ppid 2 -p 2'
> >>
> >> Output is only paginated when stdout is a TTY so I can
> >> still use pipes, and the less flags ensure that less
> >> will exit if the output fits on one screen. I also use
> >> tmux, but I find less to be less painful to use than
> >> copy mode in tmux when I don't need to actually copy
> >> text.
> >>
> >> Eric
> >>
> >>  
> >  
> 

Attachment: pgpaZqz0RSDm6.pgp
Description: OpenPGP digital signature

Reply via email to