Re: [dev] [ubase] pager

From: Leander S. Harding <lsh_AT_lsh.io>
Date: Fri, 10 Feb 2017 12:08:21 -0800

Search is indispensably useful and needful overall for general command
output, which is why it should be implemented with a powerful/good ui
at the multiplexer/TE layer, so that you're not maintaining two or
more search facilities with similar-but-slightly-differing features.

This though leads me toward the implementation of a suckless
scrollback+select/yank/urlpick/etc handler that comes with a 'pager'
util that just toggles its scroll-lock state like this. Like an even
more suckless dvtm with the one extra feature that's on my mind right
now. :)

On Fri, Feb 10, 2017 at 11:31 AM, Mattias Andrée <maandree_AT_kth.se> wrote:
> Some pagers also support search, which can be very useful.
>
> On Fri, 10 Feb 2017 11:28:04 -0800
> "Leander S. Harding" <lsh_AT_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 <23hiro_AT_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.pruitt_AT_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 "--". # $_AT_ 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 "$_AT_"
>> >> 2>&"$errfd" | less -X -F -R return
>> >> 2>"${PIPESTATUS[0]/141/0}" # Ignore SIGPIPE failures.
>> >> fi
>> >>
>> >> "$command" "$_AT_"
>> >> }
>> >>
>> >> 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
>> >>
>> >>
>> >
>>
>
Received on Fri Feb 10 2017 - 21:08:21 CET

This archive was generated by hypermail 2.3.0 : Fri Feb 10 2017 - 21:12:20 CET