On Fri, Mar 30, 2018 at 01:57:43AM +0200, Ingo Schwarze wrote: > Hi Paul, > > Theo de Raadt wrote on Thu, Mar 29, 2018 at 04:17:14PM -0600: > > piroft@ wrote: > > >> Is there any reason why manpage text does not resize nicely > >> with <80 columns xterms? > > I want to avoid excessive magic. > > By the way, actually, the default width is 78, not 80. > By tradition. > > >> Is it because of less(1)? > > No. less(1) always wraps and re-wraps its input file to fit the > terminal width. Of course, it preserves existing line breaks, it > only adds new ones, and it adds the new ones after the last character > that fits on each line, possibly in the middle of words and numbers. > > > Can I do anything to fix this? > > Yes. > > When you want a manpage to exactly fill the available terminal width, > you can use an alias like this: > > $ alias wman='man -Owidth=$COLUMNS' # or > $ alias wman='man -Owidth=$((COLUMNS-2))' > > Of course, if you change the terminal width while man(1) is open, > you will have to do: q Ctrl-p <enter> to reformat. > > I do *NOT* want to add SIGWINCH signal handling to man(1) to abort > less(1), reformat, and respawn less(1) in that case. That kind of > magic would be over the top, and SIGWINCH is an abomination in the > first place. > > If you are in the habit of always using 65-column terminals on a given > machine, this is another option: > > # echo output width 64 >> /etc/man.conf > > I *could* maybe teach man(1) to honour $COLUMN by default when > starting up in interactive mode, but i did not do so for the following > reasons: > > * Many people are using terminals wider than 80 columns, but > texts get hard to read when much wider than that. Very long > lines become hard to follow. (That's why newspapers usually > have columns of even less than 80 characters, but they don't > have as much indentation as manual pages either.)
I'm not asking for this feature but CSS has max-width for cases like this in HTML. It always fills the width until the maximum. > * Nowadays, i guess that terminals narrower than 80 columns > have become seriously rare, so there is not very widespread > benefit for that case. > * Even if someone does use a narrower terminal, formatting will > be somewhat poor with the matching -Owidth. Some text, in > particular literal displays, will still overflow and wrap in > less(1), and text with large indentations will become > ridiculously narrow. > One thing jmc@ does is trying to make sure that pages do not > only read well, but also look visually nice, and much of that > work is optimized for the default -Owidth=78. > So even for narrower terminals, i'd rather leave the decision > to the user. > * Setting up an alias as explained above is quite easy. > > What i could maybe do is recognize "-Owidth=auto" and "output width > auto" in man.conf(5) and use $COLUMNS in that case, but even that > would require some additional code, and so far, i didn't notice > much demand. > > > It is pre-formatted. > > Only in the sense than man(1) completes the formatting before it > forks and executes less(1). Only the manual pages of 25 (out of > 9900) ports are still preformatted at port build time, and none in > the base system and Xenocara are preformatted at system build time. > > Yours, > Ingo > -- Juan Francisco Cantero Hurtado http://juanfra.info