Re: Playground pager lsp(1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Alex,

Alejandro Colomar <alx.manpages@xxxxxxxxx> writes:

>> If you want to take a look at it: there is a branch "next" which you
>> might prefer as it closer resembles my current work.  There is a new
>> toggle "-V" that can be used to completely turn off validation.
>> 
>> I tried to assemble a Makefile that might work without a configure
>> script and attach it to the end.  A prefix /usr is the default value, if
>> your system prefers /usr/local you can use `make prefix=/usr/local
>
> The default prefix in GNU should be /usr/local
> <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>
>
>> install`.  I hope I prepared some reasonable Makefile...
>
> I'll have a look.

Perhaps, I messed up the Makefile.  Some time ago, I test-compiled lsp
on Rasbpian and CentOS and -lutil was missing.  That got fixed in
meson.build but not in the Makefile I sent you.  I'll attach a new
one -- this time as plain text ;-)

>>> If it's the first, how do you handle exit(1)?  Is it a reference, or is it
>>> just code (with the meaning exit(EXIT_FAILURE))?
>> 
>> exit(1) gets recognized as a possible reference but validation will fail.
>
> `man 'exit(1)'` works for me.  It brings the exit(1posix) page, from
> manpages-posix.

Oh yes, I didn't have the POSIX manual pages installed -- now, exit(1)
gets recognized as a reference.  Thank you.

>> No, broken references aren't marked.  Usually those unavailable
>> references make sense, e.g. if a manual page references some program
>> that not everyone uses.
>> 
>> One example that I couldn't resolve so far is a reference to
>> getconf(1) for example in fpatchconf(3).  Up to now I was not able to
>> find out which package contains getconf(1)...
>
> $ apt-file find /getconf.1
> glibc-source: /usr/src/glibc/debian/local/manpages/getconf.1
> libc-bin: /usr/share/man/man1/getconf.1.gz
> manpages-fr: /usr/share/man/fr/man1/getconf.1.gz
>
> It's in libc-bin.
>
> BTW, did you mean fpathconf(3)?

Yes, that was a typo.  I'm on Gentoo and there is no libc-bin.  But now
I have a direction to search.  Thank you, again.

>
>> 
>>>>
>>>>        •   In windowing environments lsp does complete resizes when windows
>>>>            get resized. This means it also reloads the manual page to fit the
>>>>            new window size.
>>>
>>> Good.  This I miss it in less(1) often.  Not sure if they had any strong
>>> reason to not support that.
>> 
>> Unfortunately, info(1) also doesn't do full resizes (on my system).
>> 
>>>>
>>>>        •   Search for manual pages using apropos(1); in the current most basic
>>>>            form it lists all known manual pages ready for text search and
>>>>            visiting referenced manual pages.
>>>
>>> What does it bring that `apropos * | less` can't do?  If you're going the
>>> of info(1) with full-blown system, it seems reasonable, but I never really
>>> liked all that if it's just a new terminal and a command away from me.
>> 
>> You get a pseudo-file from where you can reach any manual page on the
>> system.  Originally I thought this to help novice users but since lsp is
>> my system's PAGER I use it more often than expected.  I'm missing the
>> ability to give keywords to apropos but that's just a matter of time to
>> get fixed.
>
> I guess that's a matter of preferring navigation in some interactive
> program (to me, info(1) style), vs standalone simple commands where you
> first find what you want, then run it.
>
> I don't find that magic much more comfortable than
>
> $ apropos sysctl
> ... oh, I find many freebsd pages, let's grep them out ...
> $ apropos sysctl | grep -v freebsd
> ... hmm, let's see system ...
> $ apropos system | grep -v freebsd
> ... okay, now this shows a lot of stuff, let's remove man1 ...
> $ apropos system | grep -v -e freebsd -e '(1'
> ... I don't want systemd either ...
> $ apropos system | grep -v -e freebsd -e '(1' -e systemd
> ... let's sort by section and navigate through that list ...
> $ apropos system | grep -v -e freebsd -e '(1' -e systemd | sort -k2 | less
>
> Find some pages that may be interesting, note them down, and open
> them one by one, in different tabs, until I find I wanted to read
> proc(5), and close everything else.

As I wrote: I (also) had novice users in mind when I implented the
Apropos pseudo-file (it can also be used for verification, that's
another use of it).  I often watch novice users getting frustrated about
all the typing that is needed to get useful results.  I know, first of
all, they need to train their "keyboard abilities" but some help here
and there could perhaps help to keep them on board or minimize
frustration...

> Which brings us to a valid point Eli raised.  Some pages are an
> unreadable mess, and I think proc(5) is one of those that needs
> a big split into smaller pages such as proc_pid_attr(5).

Yes, one of the points where I thought pagers with additional
features could help...

Cheers,

Dirk

version=\"$(shell cat .version)\"
CFLAGS := $(shell pkg-config --cflags ncursesw)
CFLAGS += -DLSP_VERSION=$(version)
LDFLAGS := $(shell pkg-config --libs ncursesw)
LDFLAGS += -lutil

ifeq ($(prefix),)
	prefix := /usr/local
endif

lsp: lsp.c
	gcc $(CFLAGS) $(LDFLAGS) -o $@ $<

doc/lsp.1: doc/lsp.adoc
	a2x --doctype manpage --format manpage -a lsp-version=$(version) $<

.PHONY: uninstall install

install: lsp doc/lsp.1 doc/lsp-help.1
	install lsp $(prefix)/bin
	install doc/lsp.1 doc/lsp-help.1 $(prefix)/share/man/man1/

uninstall:
	rm $(prefix)/bin/lsp
	rm $(prefix)/share/man/man1/lsp{,-help}.1

[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux