4

I've been trying to grab the output of man pages and use it in some other things. That's working OK, but linux is hyphenating the words that are at the end of a line and that's kind of irritating because when the text is reconstructed on a variable width viewing window (think HTML), the line breaks reamin split- ting up ran- dom words.

How should I do this? I saw the entry regarding MANWIDTH but I can't get it to work...

I tried:

MANWIDTH=30
man ls

-- also --

MANWIDTH=1000
man ls

No luck. I tried creating a man.conf that had MANWIDTH 30 (no "=" sign) and putting it in ~ and then tried:

man -C ~/man.conf ls

Man opens and it give me something like this:

^H1/4[{sUEy;o)||1XEQ'eo2>>vYYR%+-B
_
                                      _
AUe X...-qe>uyo{R2}Ia\fzuyv?>Oy|3+aaOGN+->ynuuLu{Ey3/4aecSYI~3[=5KVc]aem|6ME=ei2E,
>>Z-:-OT3p<<cMnUA]ColXa+-No?6 AzQakmoEyo32HaeUoEaIxfSc;@S3[&%VDaODO(C)3O}I3
$2z-II9|D5S'VIo.m-PEA9|?'YXi4eZcy}R(R)t^oyu9|d0e<N8t4a3/41A:)
oMNb"ao"OOu>EDaD&E`haUooEiw;f1C.bU-C KpAyb^92uE
o2LKAe   N}2OFSFi~MAO QA9|xT@k1/4zy$l'eAAy']CC/>>K^%T*LmI~An&qu
ot;o1/2i2(R)141L,Z o.LXniE$~R6.a5O#AEUA14UiFwY~xIpB8<<JOo(R)QoMAEnUxu$Iw&Cj3eO
fBLJ[Q^Xi-:->>(R)Eo2pm1c, _3ii<<EsCa;

So how do I get rid of those hyphenated words in the mid- dle of my man output?

cwd
  • 2,693
  • 9
  • 32
  • 47
  • "$ MANWIDTH=40 man ls" work in Ubuntu(man-db 2.5.7-2ubuntu1) – osdyng Jan 23 '11 at 20:40
  • 2
    Try export MANWIDTH=4000; man ls. You probably need to have the variable exported for ls to use it properly. – Scrivener Jan 23 '11 at 21:47
  • Have you considered using a troff to html tool since you mentioned HTML? – Zoredache Jan 23 '11 at 22:01
  • 1
    Either of the above suggestions should work. If you simply set the variable as you show in your question, it's not exported into the environment of `man`. Note that @Scrivener meant to say "for *man* to use it". – Dennis Williamson Jan 23 '11 at 22:03

3 Answers3

4

On my Debian system, man man offers the --no-hyphenation (--nh) option. The same man page also refers to MANOPT, which allows you to set the default options for any future invocation of man. Another option possibly of interest to you is --no-justification (--nj).

Putting this in your .profile (.bash_profile) would disable hyphenation and justification:

export MANOPT='--nh --nj'

However, what slightly puzzles me is why you don't use the --html flag to generate HTML directly from the man command:

export MANOPT='--html'

Chris

  • I guess this was the best answer, although I think Scrivener's comment "Try export MANWIDTH=4000; man ls. You probably need to have the variable exported for ls to use it properly." was probably the most helpful. Thanks to you both! – cwd Jan 28 '11 at 05:21
0

Edit /usr/share/tmac/doc.tmac and search for the line .de reset-args. Within that macro definition, you should see a line saying something like:

.hy \n[hyphen-flags]

Change that line to:

.hy 0

If you have any pre-generated cat manpages, you'll need to nuke those to force regeneration.

You're done. But it's global.

Phil P
  • 3,040
  • 1
  • 15
  • 19
0

I like

man zshall | fold -w 80 -s | less

where "zshall" is the man topic