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 > >> > >> > > >
pgpaZqz0RSDm6.pgp
Description: OpenPGP digital signature