Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

By default, man uses less to output text. How can I tell it to just output to stdout? My terminal emulator has a scroll bar and search function and I want to use those instead of the arrow keys.

share|improve this question
    
It doesn't answer your question, but try using j, k, g, G, b, and B in less instead of the arrow keys. And of course / with n and N for searching. –  Dave Oct 29 '11 at 21:33
add comment

4 Answers

up vote 25 down vote accepted

Actually it uses whatever is specified in the MANPAGER or the PAGER environment variable.

Depending on your man implementation and version there could be also a command line switch to specify the pager.

With the man-db implementation I use all the below ways work:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

To set it permanently, just add it to your ~/.bashrc (or other initialization file used by your shell):

export MANPAGER=cat

That works with some older man implementations too, while MANOPT is man-db specific:

export MANOPT='-P cat'

(Better do not set PAGER that way. That one is used by many other applications too.)

There could be also a global configuration file. man-db has /etc/man_db.conf or /etc/manpath.config. There you can set:

DEFINE    pager    cat

But unfortunately that is taken in consideration only if neither MANPAGER nor PAGER is set.

share|improve this answer
1  
Good answer. Re: ~/.bashrc, You could also wrap the export in a conditional so it only sets the pager if it's the appropriate terminal/emulator: if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi; obviously replace xterm with the appropriate emulator. –  Kevin Oct 27 '11 at 14:23
1  
Actually, it's good and by design that manpath.config is taken into account later. Both PAGER and MANPAGER are user level, where the config file is system level. If system level would take precedence then users could not override at all. –  Paul de Vrieze Oct 29 '11 at 17:29
    
@PauldeVrieze, you are right on MANPAGER. I used the “unfortunately” word for the fact that the behavior also applies to PAGER, which is a generic setting (used by many tools) and I would prefer it to not override a specific setting (used by only one tool), even if that one is system level. –  manatwork Oct 30 '11 at 11:22
    
If you want to override a specific setting for a single tool you can always do so by creating an alias, a shell function or a wrapper script. Either of those would amount to: PAGER=cat man, for example: alias man='PAGER=cat MANPAGER=cat man' –  Paul de Vrieze Nov 1 '11 at 11:32
add comment

Simply pipe the output of man to cat?

man ls | cat   # useful use of cat
share|improve this answer
6  
Note that depending on the man implementation, that either 1) rises error, 2) displays troff format codes in the terminal, 3) removes all formatting, 4) works as expected. –  manatwork Oct 27 '11 at 12:59
1  
I've never seen it do other than 4. –  Keith Thompson Oct 30 '11 at 1:54
add comment

Another angle: Similar to Tony's answer.

You can also redirect man output into a file and view it with your favorite text editor or even add bookmarks, comments, etc. to it.

man bash  > bashman.txt

I have a copy of the bash man page as well as just the sections on bash flow control and bash test flags saved as text files in my bin directory so I can load them right into my text editor (kate) for reference while I'm writing bash scripts.

share|improve this answer
add comment

Try these commands to generate man output without a pager.

  • man ls | cat (generated fixed width)

  • man -P cat ls (generated variable width)

I was on a GNU linux system

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.