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

Re: FAQ.html and MANUAL.html, was Re: fwd: Re: Re: Please review changed man-file of w3m



Markus Hiereth wrote:
>> Then since this already made a huge diff against the original I also
>> went crazy with my indenting to keep the translatable content
>> separate from the formatting.
> 
> I hope you recovered from crazyness :-) and indulge one finding of
> html2po: The tool found in line 640 one slash to miss. It transforms
> an paragraph tag into an end of paragraph tag.

Okay, revised FAQ.html attached.  I also have a revised and
re-HTMLified MANUAL.html, but it still has a few points I'm not sure
about.  Going through the original in rendered form:

> w3m MANUAL
> 
>                                                                     Akinori Ito
>                                                              aito@fw.ipsj.or.jp
> 
> Index
> 
>   • Introduction
>   • Options
>   • Document color
>   • Key binding

That's "colors", "key bindings"... the file needs a lot of trivial
number and definiteness fixes. 

>   • Lynx-like key binding
>   • Mouse operation
>   • Key customization
>   • Local CGI
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Introduction
> 
> w3m is a pager/text-based WWW browser. You can browse local documents and/or
> documents on the WWW using a terminal emulator.

That's a bit awkward, but not bad enough to need surgery.

> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Options
> 
> Command line usage is
> 
>     w3m [options] [file|URL]
> 
> If you specify filenames/URLs on command line, these documents are displayed.
> If you specify nothing, w3m reads a document from standard input and display
> it. If no filename and/or URLs are specified and standard input is tty, w3m
> terminates without displaying anything.

That needs a bit of rephrasing: "If you specify nothing, w3m will read
a document from standard input and display it. If it doesn't find a
document there either then (normally) w3m will terminate without
displaying anything."

> 
> Options are as follows:

Some are missing (e.g. -N and -6), so let's say "Options include".
They're also in a random order, but I haven't tried to fix that.
 
> +<line number>
>     Move to the specified line.

Standardise <i>parameters</i>.

> -t width
>     Specify tab width. Default is 8.
> -r
>     When displaying text/plain document, prohibit emphasis using backspace. If
>     you don't specify this option, ``A^H_'' is interpreted as underlined
>     character and ``A^HA'' as a bold character.

Standardise <q>quoted text</q>, and say that those examples are
specifically an underlined "A" and a bold "A".

> -l number
>     Specify line number preserved internally when reading text/plain document
>     fron standard input. Default is 10000.

"Specify the number of lines that should be cached while reading a
text/plain document from standard input. Default is 10,000."

(Oops, nearly missed s/from/fron/.)

> -O charset
>     Specify display/output charset.
> -I charset
>     Specify document charset.
> -T type
>     Specify document type. Without this option, document type is determined
>     from extension of a file. If the determination fails, the document is
>     regarded as text/plain.
> 
>     Example:
>     Read HTML document from standard input and display it
> 
>        cat hoge.html | w3m -T text/html
> 
>     Display HTML source
> 
>        w3m -T text/plain hoge.html

I don't know what if anything a "hoge" is, but I've replaced it with
"example.html".
 
> -m
>     Display document with Internet message mode. With this option, w3m
>     determines document type from header information. It is useful when reading
>     E-mail or NetNews messages.

Say "e-mail or Usenet news posts".

> -v
>     visual startup mode.

Is its normal startup mode "olfactory mode"?  I blame vi users for
this sort of insane terminology.  Make it "Show w3m's startup page."

> -B
>     Show the bookmark.

Confusingly wrong.  "Show w3m's bookmarks page."

> -bookmark file
>     Specify bookmark file.

Insert "a custom".

> -M
>     Monochrome display mode.
> -F
>     Automatically render frame.

Make that "HTML frames".

> -s
>     Squeeze blank lines.
> -X
>     Upon exit, do not display preserved screen.

If anything that's the reverse of the effect I get; make it "do not
reinitialize the terminal."

> -W
>     Toggle wrap search mode.

Nearly: "search wrap mode", or to spell it out "wrapping mode in
searches".

> -o option=value
>     Specify option. The option names and values are same as that appears in ~
>     /.w3m/config.

Just "are the same as in".

> -cookie
>     Process cookies.
> -no-cookie
>     Don't process cookies.
> -num
>     Show linenumber.

That makes it sound as if the status bar pops up a linenumber count.
Say "show line-numbers".

> -dump
>     Read document specified by URL and dump formatted text into standard
>     output. The width of the document become 80. This width can be overridden
>     with -cols option.

Make that "Read document specified by URL and dump page rendered as
text into standard output. An 80 column width is used unless set with
the -cols option."

> -cols width
>     Specify document width. Used with -dump option.
> -ppc count
>     Specify the number of pixels per character (default 8.0). Larger values
>     will make tables narrower.

(What no -ppl?)

> -dump_source
>     Read document specified by URL and dump the source.
> -dump_head
>     Read document specified by URL and dump headers.
> -dump_both
>     Read document specified by URL and dump headers and the source.
> -dump_extra
>     Read document specified by URL and dump extra informations, headers and the
>     source.
> -post file
>     use POST method with file content.
> -header string
>     insert string as a header.
> -no-proxy
>     Don't use proxy server.
> -no-graph
>     Use ASCII character to draw frames.
> -no-mouse
>     Don't activate mouse.
> -config file
>     specify config file.
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Document color
                ^s 
> Links and images are displayed as follows.
>                   ┌─────────────┬──────────┬───────────────┐
>                   │             │Color mode│Monochrome mode│
>                   ├─────────────┼──────────┼───────────────┤
>                   │links        │blue      │underline      │
>                   ├─────────────┼──────────┼───────────────┤
>                   │inline images│green     │reverse        │
>                   ├─────────────┼──────────┼───────────────┤
>                   │form input   │red       │reverse        │
>                   └─────────────┴──────────┴───────────────┘
> These colors can be customized using option setting command "o".
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Key binding
             ^s
> After invocation, you can operate w3m by one-character commands from the
> keyboard.

It's not even true that they're one-character.  Just make it "After
invoking w3m, you can control it with keyboard commands."

> Here's the original key-binding table. If you are using Lynx-like key bindings,
> see the Lynx-like key binding.
> 
> Page/Cursor motion
> 
> SPC,C-v          Forward page
      ^
I've consistently added a space after commas.

> b,ESC v          Backward page
> l,C-f            Cursor right
> h,C-b            Cursor left
> j,C-n            Cursor down
> k,C-p            Cursor up
> J                Roll up one line
> K                Roll down one line

s/Roll/Scroll screen/

> ^,C-a            Go to the beginning of line
> $,C-e            Go to the end of line
> w                Go to next word
> W                Go to previous word
> >                Shift screen right
> <                Shift screen left
> .                Shift screen one column right
> ,                Shift screen one column left
> g,M-<            Go to the first line
> G,M->            Go to the last line

Why does this represent "meta-foo" as "M-foo" instead of "ESC foo"
like everywhere else?

> ESC g            Go to specified line
> Z                Move to the center line
> z                Move to the center column

It took me a while to work out that z="CENTER_V" and Z="CENTER_H";
what they do is scroll the screen so that the cursor is centred
vertically or horizontally (the first can be slightly useful, the
second does nothing very intelligible in my experience).  Make it
"Center on cursor line", "Center on cursor column".

> TAB              Move to next hyperlink
> C-u,ESC TAB      Move to previous hyperlink
> [                Move to the first hyperlink
> ]                Move to the last hyperlink
> 
> Hyperlink operation
> 
> RET              Follow hyperlink
> a, ESC RET       Save link to file
> u                Peek link URL
> i                Peek image URL

How is "Peek" different from "Show"?

> I                View inline image
> ESC I            Save inline image to file
> :                Mark URL-like strings as anchors

This file repeatedly refers to "anchors", but always seems to mean the
subcategory of anchor tags that have an "href" attribute and function
as hyperlinks.  So just say "Mark URL-like strings as hyperlinks".

> ESC :            Mark Message-ID-like strings as news anchors

This is even sillier, since "news anchors" are celebrities.  Say "news
links".

> c                Peek current URL
> =                Display information about current document
> C-g              Show current line number
> C-h              View history of URL

No, "browsing history".

> F                Render frame
> M                Browse current document using external browser (use 2M and 3M
>                  to invoke second and third browser)
> ESC M            Browse link using external browser (use 2ESC M and 3ESC M to
>                  invoke second and third browser)
> 
> File/Stream operation
> 
> U                Open URL
> V                View new file

In both cases it's "open (and view) new specified X".

> @                Execute shell command and load
> #                Execute shell command and browse

I don't understand these.  I can see that they're different from
EXEC_SHELL, but what's the point, and why are there two different
versions (READ_SHELL and PIPE_SHELL)?

Reading the w3m source, I find "@" invokes getshell(), "#" invokes
getpipe(), but I still don't follow... maybe the idea is that the
second one can watch the output of a long-running process?  Nope,
using "watch date" just makes both of them hang, running a game gives
the same delayed display of output.  Any ideas?
 
> Buffer operation

This whole buffer-centric viewpoint seems pointless to me, but I'll
just complain about it here instead of trying to completely rewrite
the section.
 
> B                Back to the previous buffer

If it's for navigating through your abstract buffer stack, why isn't
there a "forward" equivalent?  It's not; it's a browser "back" button,
which can be used to backtrack through your browser history even when
you've only been following intra-page links.

> v                View HTML source

Actually this toggles HTML rendering on and off; you can even use it
to turn *on* the interpret-as-text/html mode for a plain text file. 

> s                Select buffer

This doesn't select a buffer, it offers a menu for you to select from.

> E                Edit buffer source

You don't edit the *buffer*, you edit the *original file*.

> C-l              Redraw screen

Why would I be looking for this under "Buffer operation"?

> R                Reload buffer
> S                Save buffer
> ESC s            Save source
> ESC e            Edit buffer image

A "buffer-centric" approach makes more sense here, especially if for
instance you're viewing a site made up of multiple frames: "S" saves
the whole rendered page, "ESC s" saves a sort of hypothetical
all-in-one source HTML file.

> Buffer selection mode
> 
> k, C-p           Select previous buffer
> j, C-n           Select next buffer
> D                Delect current buffer
> RET              Go to the selected buffer

How do you get into this mode?  It doesn't seem to correspond to the
popup menu you get with "s"="select buffer" (where for instance it's
"SPC", not "RET"), so what does it mean?

s/Delect/Delete/.

And meanwhile there's no mention at all of -N, and no default
keymappings to make it useful.
 
> Bookmark operation
> 
> ESC b            Load bookmark
> ESC a            Add current to bookmark

Fix the same way as last time it mentioned bookmarking.
 
> Search
> 
> /,C-s            Search forward
> ?,C-r            Search backward
> n                Search next
> N                Search previous
> C-w              Toggle wrap search mode

I'd completely forgotten that the default bindings use "N" for
"previous".
 
> Mark operation
> 
> C-SPC            Set/unset mark
> ESC p            Go to previous mark
> ESC n            Go to next mark
> "                Mark by regular expression
> 
> Miscellany
> 
> !                Execute shell command
> H                Help (load this file)

It doesn't load MANUAL.html.

> o                Set option

"Show options panel"

> C-k              Show cookie jar
> C-c              Stop
> C-z              Suspend

Hitting control-C might be expected to shoot w3m dead, whereas
"Suspend" might just mean "pause download", so say "Stop loading" and
"Suspend w3m".

> q                Quit (with confirmation, if you like)
> Q                Quit without confirmation

The "q" command is "with confirmation" whether you like it or not.
Say "(with confirmation dialog)".

> 
> Line-edit mode
          ^ing
> 
> C-f              Move cursor forward
> C-b              Move cursor backward
> C-h              Delete previous character
> C-d              Delete current character
> C-k              Kill everything after cursor
> C-u              Kill everything before cursor
> C-a              Move to the top of line
> C-e              Move to the bottom of line

s/top/beginning/, s/bottom/end/

> C-p              Fetch the previous string from the history list
> C-n              Fetch the next string from the history list
> TAB,SPC          Complete filename
> RETURN           Accept
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Lynx-like key binding
> 
> If you have chosen `Lynx-like key binding' at the compile time, you can use the
> following key binding.

I've never been the person who makes this choice.  Say "If w3m was
compiled with the <q>Lynx-like key bindings</q> option, you can use
the following key bindings."
 
> Page/Cursor motion
> 
> SPC,C-v,+        Forward page
> b,ESC v,-        Previous page
> l                Cursor right
> h                Cursor left
> j                Cursor down
> k                Cursor up
> J                Roll up one line
> K                Roll down one line
> ^                Go to the beginning of line
> $                Go to the end of line
> >                Shift screen right
> <                Shift screen left
> C-a              Go to the first line
> C-e              Go to the last line
> G                Go to the specified line
> Z                Move to the center line
> z                Move to the center column
> TAB,C-n,Down     Move to next hyperlink
> arrow
> ESC TAB,C-p,Up   Move to previous link
> arrow
> C-g              Show current page position

As above, with the addition of hyphenation for "(direction)-arrow".
And wait, that last one: is "Show current page position" the same
thing as "Show current line number" (non-Lynx-like "C-g")?
 
> Hyperlink operation
> 
> RET, C-f, Right  Follow hyperlink
> arrow
> d, ESC RET       Save link to file
> u                Peek link URL
> i                Peek image URL
> I                View inline image
> ESC I            Save inline image to file
> :                Mark URL-like strings as anchors
> ESC :            Mark Message-ID-like strings as news anchors
> c                Peek current URL
> =                Display information about current document
> C-h              View history of URL
> F                Render frame
> M                Browse current document using external browser (use 2M and 3M
>                  to invoke second and third browser)
> ESC M            Browse link using external browser (use 2ESC M and 3ESC M to
>                  invoke second and third browser)
> 
> File/Stream operation
> 
> g,U              Open URL
> V                View new file
> @                Execute shell command and load
> #                Execute shell command and browse
> 
> Buffer operation
> 
> B, C-b, Left     Back to the previous buffer
> arrow
> \                View HTML source
> s, C-h           Select buffer
> E                Edit buffer source
> C-l, C-w         Redraw screen
> R, C-r           Reload buffer
> S, p             Save buffer
> ESC s            Save source
> ESC e            Edit buffer image
> 
> Buffer selection mode
> 
> k, C-p           Select previous buffer
> j, C-n           Select next buffer
> D                Delect current buffer
> RET              Go to the selected buffer
> 
> Bookmark operation
> 
> v, ESC b         Load bookmark
> a, ESC a         Add current to bookmark
> 
> Search
> 
> /, C-s           Search forward
> n                Search next
> w                Toggle wrap search mode
> 
> Mark operation
> 
> C-SPC            Set/unset mark
> P                Go to previous mark
> N                Go to next mark
> "                Mark by regular expression
> 
> Miscellany
> 
> !                Execute shell command
> H, ?             Help (load this file)
> o                Set option
> C-k              Show cookie jar
> C-c              Stop
> C-z              Suspend
> q                Quit (with confirmation, if you like)
> Q                Quit without confirmation
> 
> Line-edit mode
> 
> C-f              Move cursor forward
> C-b              Move cursor backward
> C-h              Delete previous character
> C-d              Delete current character
> C-k              Kill everything after cursor
> C-u              Kill everything before cursor
> C-a              Move to the top of line
> C-e              Move to the bottom of line
> C-p              Fetch the previous string from the history list
> C-n              Fetch the next string from the history list
> TAB,SPC          Complete filename
> RETURN           Accept

All as previous.
 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Mouse operation
> 
> If w3m is compiled with mouse option and you are using xterm/kterm/rxvt (in
> this case, you have to set the TERM environment variable to `xterm' or
> `kterm'.) or GPM environment, you can use mouse for the navigation.

Fixed version: "If w3m is compiled with mouse support and you are
using either xterm/kterm/rxvt (in the latter case, you have to set the
TERM environment variable to <q>xterm</q> or <q>kterm</q>) or GPM, you
can use the mouse for navigation."

(I wonder if these terminals do still behave as specified here?)

> 
> left   Move the cursor to the place pointed by the mouse cursor. If you click
> click  the cursor and it is on an anchor, follow the anchor.

s/pointed/indicated/, s/anchor/(hyper)link/.

> middle Back to the previous buffer.
> click

(Buffer-centric.)

> right  Open pop-up menu. You can choose an item by clicking it.
> click
> left   Scroll document. The default behavior is to grab the document and drag
> drag   it. You can reverse the behavior (grab the window and drag it) with the
>        option setting panel.
> 
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Key customization
> 
> You can customize the key binding (except line-editing keymap) by describing ~
> /.w3m/keymap. For example,

s/by describing/in/
 
> 
>    keymap C-o NEXT_PAGE
> 
> 
> binds `NEXT_PAGE' function (normally bound to SPC and C-v) to control-o. See
> README.func for list of available functions. Original and Lynx-like keymap
> definitions are provided (keymap.default and keymap.lynx) as examples.

Needs some articles.  Trickier: on Debian those keymap files aren't
sitting in the same directory, so the links fail.

> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> 
> Local CGI
> 
> You can run CGI scripts using w3m, without any HTTP server. It means that w3m
                                                              This
> behaves like an HTTP server and activates CGI script, then w3m reads the output
                                  runs the               then reads
> of the script and display it. The bookmark registration and helper-app editor

Insert "system" after "registration"; I'm not sure what it means by
"helper-app editor".

> are realized as local CGI scripts. Using local CGI, w3m can be used as a
> general purpose form interface.

"Using X, Y can be used" is awkward.  "Local CGI scripts allow w3m to
be used".

> 
> For security reason, CGI scripts invoked by w3m must be in one of these
> directories.

"...one of the following directories:"

> 
>   • The directory where w3m-related files are stored (typically /usr/local/lib/
>     w3m). This directory can be referred as $LIB.
                                  referenced
>   • /cgi-bin/ directory. You can map /cgi-bin/ to any directory you like with
                                                                           in the
>     option setting panel (``Directory corresponds to /cgi-bin'' field). You can
>     specify multiple paths separated by `:', like
>     /usr/local/cgi-bin:/home/aito/cgi-bin. To use /cgi-bin/ directory, you must
>     use file:/cgi-bin URL as follows:

More minor rearticlings.

> 
>      w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi
> 
>     It is not recommended to include current directory to this path.
> 
> The CGI script can use special header `w3m-control:' to control w3m. This field
> can take any function (see README.func), and the specified function is invoked
> after the document is displayed. For example, The CGI output
                                                the
> 
> Content-Type: text/plain
> W3m-control: BACK
> 
> 
> will display blank page and delete that buffer immediately. This is useful when
> you don't want to display any page after the script is invoked. The next
> example
> 
> 
> Content-Type: text/plain
> W3m-control: DELETE_PREVBUF
> 
> contents.....
> 
> will override the current buffer.
> 
> One w3m-control: header have to contain only one function, but you can include
> more than one w3m-control: lines in the HTTP header. In addition, you can
> specify an argument to GOTO function:

"Each w3m-control: header can contain only one function, but you can
include more than one w3m-control: line in the HTTP header."

> 
> 
> Content-Type: text/plain
> W3m-control: GOTO http://www.yahoo.com/

Make that example.org, here and below.

> 
> 
> This example works exactly the same way to the Location header:

s/to/as/

> 
> Content-Type: text/plain
> Location: http://www.yahoo.com/
> 
> 
> Note that this header has no effect when the CGI script is invoked through HTTP
> server.
 
There, that didn't take as long as I expec... wait, what day is this?
-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package
Title: W3M FAQ

Frequently Asked Questions and Answers about w3m

Akinori Ito
aito@fw.ipsj.or.jp
Corrected by Tom Berger <tom.be@gmx.net>

Index

General Questions, How to Get It, Required Environment

How do I pronounce w3m?

It's W-three-M. It doesn't rhyme with pteranodon.

Why is it called w3m?

It's an abbreviation of WWW-wo-Miru, which is Japanese for See the WWW. So in English the name of this browser would be something like stw3.

On which platforms does w3m work?

It runs on various versions of Unix, since version 990226 on OS/2 and since version 990303 also on MS-Windows with Cygwin32.

More recent versions have been confirmed to run on:

Where can I get more information about w3m?

At the English w3m home page.

Is there a mailing list for w3m?

There is a mailing list for developers (w3m-dev-en). Please see the w3m home page for details. You may also mail your comments to the author.

Are there any binary distributions?

So far there are only binaries for the win/cygnus32 version. Contact the author if you want to contribute binaries for other platforms.

Up to index

Compile and Install

No problem :-)

Options, Commands, Usage

w3m quits if started without parameters. What's wrong?

w3m is a pager. Therefore it just quits when invoked without any arguments. Possible arguments are:

  1. A filename or URL
  2. Pipe from standard input
  3. The -B option (show bookmark file)
  4. The -v option (visual startup)
  5. A specified HTTP_HOME or WWW_HOME variable
w3m starts with black characters on a black background. How do I change this?

When compiled with color support, w3m assumes a white background and therefore displays black characters.

You may either change the background color of your terminal (e.g. with the -bg option in a xterm) or take these steps:

Does w3m support colors?

Yes. When you run ./configure, answer the question

Let's do some configurations. Choose config option among the list.

1 - Baby model    (no color, no menu, no mouse, no cookie, no SSL)
2 - Little model  (color, menu, no mouse, no cookie, no SSL)
3 - Mouse model   (color, menu, mouse, no cookie, no SSL)
4 - Cookie model  (color, menu, mouse, cookie, no SSL)
5 - Monster model (with everything; you need openSSL library)
6 - Customize
Which?

with 2, 3, 4, or 5.

Does w3m support monochrome displays?

Yes. You may either

  1. Answer the above-mentioned configure question with 1, or
  2. Invoke w3m with the -M option, or
  3. Type o within w3m to enter the options screen and turn off color display mode.
How do I shift the display?

You can shift the display by moving the cursor to the edge of the screen. You may also use the >/< or ./, keys.

Another idea would be adjusting the xterm with the -geometry option (e.g. something like xterm -geometry 110x45 -bg white -name w3m -e w3m -B).

How do I move from anchor to anchor?

You can move to the next anchor using TAB. ESC TAB moves the cursor to the previous anchor.

Graphical browsers display a word red, but w3m doesn't. Why?

w3m doesn't support the HTML COLOR="..." attribute. It wouldn't be impossible to implement this, but I think it would make documents more difficult to read.

How do I change the color of anchor/image/form links?

Type o within w3m to get the options screen. You can change these settings there.

w3m doesn't seem to use the variable EDITOR. Why?

Go to the options screen using the o key. Any entry in the Editor field will override the environment variable.

If you want to use the editor specified by EDITOR, blank the field and press [OK].

How do I quit a search or URL text input?

Clear input text using Ctrl-u and hit RETURN.

Up to index

Questions about WWW usage

How do I fill in forms with w3m?

Form input fields are displayed in red (or reverse). Move the cursor to them and hit RETURN. Then,

Seems like w3m is slower than some other browsers. Why?

w3m renders a HTML document in two passes. Therefore it doesn't start to display the document until it has finished reading it.

Most other browsers display the document before having read the whole page, and therefore seem faster.

Loading time doesn't decrease when loading a previously seen page.

w3m doesn't have its own cache. Therefore, it reads the document from the server each time it accesses it. If possible, use a cache server.

How do I download a linked file?

Use a (or d with Lynx-like keybindings) or ESC RET. If you want to download an inline image, use ESC I.

How do I specify a proxy server?

Set the environment variable HTTP_PROXY or use the option setting panel (o key). For example, if you want to use port 8000 of proxy.example.org, specify

    http://proxy.example.org:8000/
w3m freezes when I invoke an external browser.

Enter w3m's option screen using the o key and specify

    firefox %s &

(if you are using Firefox).

How do I change the default image viewer?

By default w3m uses xv to view images. If you want to change it into, let's say, display, add the following line to ~/.w3m/mailcap or /etc/mailcap.

image/*; display %s

You can specify external viewers of other file types as well:

image/*;                     display %s
application/postscript;      ghostview %s
application/x-dvi;           xdvi %s
How do I enter a URL?

Type SHIFT-U

w3m appends a URL to the former one even when I clear the line with Ctrl-u. What should I do?

Enter the complete adress, e.g. http://www.slashdot.org.

Up to index

Miscellaneous

What is w3m's configuration file?

It is ~/.w3m/config.

With this file, you can adjust w3m's behavior by changing the values of options whose effects are described in the option setting panel. Each line contains one option setting, consisting of an option name and its value with a space as a separator.

What are these w3mxxxx files in my ~/.w3m directory for?

These are temporary files used by w3m when reading documents from a WWW server. They are not cache files and are usually deleted when w3m is terminated. If any temp files are left behind, please remove them yourself.

Up to index

Title: w3m manual

w3m MANUAL

Akinori Ito
aito@fw.ipsj.or.jp

Index


Introduction

w3m is a pager/text-based WWW browser. You can browse local documents and/or documents on the WWW using a terminal emulator.


Options

Command line usage is

    w3m [options] [file|URL]

If you specify filenames/URLs on the command line, these documents are displayed. If you specify nothing, w3m will read a document from standard input and display it. If it doesn't find a document there either then (normally) w3m will terminate without displaying anything.

Options include:

+number

Move to the specified line-number.

-t width

Specify tab width. Default is 8.

-r

When displaying text/plain documents, prohibit emphasis using backspace. If you don't specify this option, A^H_ is interpreted as an underlined A and A^HA as a bold A.

-l number

Specify the number of lines that should be cached while reading a text/plain document from standard input. Default is 10,000.

-O charset

Specify display/output charset.

-I charset

Specify document charset.

-T type

Specify document type. Without this option, document type is determined from the extension of a file. If the determination fails, the document is regarded as text/plain. For example:

Read HTML document from standard input and display it

   cat example.html | w3m -T text/html

Display HTML source

   w3m -T text/plain example.html
-m

Display document using Internet message mode. With this option, w3m determines document type from header information. This is useful when reading e-mail or Usenet news posts.

-v

Show w3m's startup page.

-B

Show w3m's bookmarks page.

-bookmark file

Specify a custom bookmarks file.

-M

Monochrome display mode.

-F

Automatically render HTML frames.

-s

Squeeze blank lines.

-X

Upon exit, do not reinitialize the terminal.

-W

Toggle wrapping mode in searches.

-o option=value

Specify option. The available option names and values are the same as in ~/.w3m/config.

-cookie

Process cookies.

-no-cookie

Don't process cookies.

-num

Show line-numbers.

-dump

Read document specified by URL and dump page rendered as text into standard output. An 80 column width is used unless set with the -cols option.

-cols width

Specify document width. Used with -dump option.

-ppc count

Specify the number of pixels per character (default 8.0). Larger values will make tables narrower.

-dump_source

Read document specified by URL and dump the source.

-dump_head

Read document specified by URL and dump headers.

-dump_both

Read document specified by URL and dump headers and the source.

-dump_extra

Read document specified by URL and dump extra informations, headers, and the source.

-post file

Use POST method with file content.

-header string

Insert string as a header.

-no-proxy

Don't use proxy server.

-no-graph

Use ASCII characters to draw frames rather than graphical ones.

-no-mouse

Deactivate mouse support.

-config file

Specify config file.


Document colors

Links and images are displayed as follows.

  Color mode Monochrome mode
links blue underline
inline images green reverse
form input red reverse

These colors can be customized using the option setting command o.


Key bindings

After invoking w3m, you can control it with keyboard commands.

Here's the original key-binding table. If you are using Lynx-like key bindings, see the Lynx-like key bindings.

Page/Cursor motion

SPC, C-v Forward page
b, ESC v Backward page
l, C-f Cursor right
h, C-b Cursor left
j, C-n Cursor down
k, C-p Cursor up
J Scroll screen up one line
K Scroll screen down one line
^, C-a Go to the beginning of line
$, C-e Go to the end of line
w Go to next word
W Go to previous word
> Shift screen right
< Shift screen left
. Shift screen one column right
, Shift screen one column left
g, ESC < Go to the first line
G, ESC > Go to the last line
ESC g Go to specified line
Z Center on cursor column
z Center on cursor line
TAB Move to next hyperlink
C-u, ESC TAB Move to previous hyperlink
[ Move to the first hyperlink
] Move to the last hyperlink

Hyperlink operation

RET Follow hyperlink
a, ESC RET Save link to file
u Show link URL
i Show image URL
I View inline image
ESC I Save inline image to file
: Mark URL-like strings as hyperlinks
ESC : Mark Message-ID-like strings as news links
c Show current URL
= Show information about current document
C-g Show current line number
C-h Show browsing history
F Render HTML frames
M Browse current document using external browser (use 2M and 3M to invoke second and third browser)
ESC M Browse link using external browser (use 2ESC M and 3ESC M to invoke second and third browser)

File/Stream operation

U Open new URL
V Open new file
@ Execute shell command and view output
# Execute shell command and browse output

Buffer operation

B Back to the previous buffer
v View HTML source
s Select buffer
E Edit buffer source
C-l Redraw screen
R Reload buffer
S Save buffer
ESC s Save source
ESC e Edit buffer image

Buffer selection mode

k, C-p Select previous buffer
j, C-n Select next buffer
D Delete current buffer
RET Go to the selected buffer

Bookmark operation

ESC b Go to bookmarks page
ESC a Bookmark current page

Search

/, C-s Search forward
?, C-r Search backward
n Search next
N Search previous
C-w Toggle wrapping mode in searches

Mark operation

C-SPC Set/unset mark
ESC p Go to previous mark
ESC n Go to next mark
" Mark by regular _expression_

Miscellany

! Execute shell command
H Show help
o Show options panel
C-k Show cookie jar
C-c Stop loading
C-z Suspend w3m
q Quit (with confirmation dialog)
Q Quit without confirmation

Line-editing mode

C-f Move cursor forward
C-b Move cursor backward
C-h Delete previous character
C-d Delete current character
C-k Kill everything after cursor
C-u Kill everything before cursor
C-a Move to the beginning of line
C-e Move to the end of line
C-p Fetch the previous string from the history list
C-n Fetch the next string from the history list
TAB, SPC Complete filename
RET Accept

Lynx-like key bindings

If w3m was compiled with Lynx-like key bindings, you can use the following key bindings.

Page/Cursor motion

SPC, C-v, + Forward page
b, ESC v, - Backward page
l Cursor right
h Cursor left
j Cursor down
k Cursor up
J Scroll screen up one line
K Scroll screen down one line
^ Go to the beginning of line
$ Go to the end of line
> Shift screen right
< Shift screen left
C-a Go to the first line
C-e Go to the last line
G Go to the specified line
Z Center on cursor line
z Center on cursor column
TAB, C-n, Down-arrow Move to next hyperlink
ESC TAB, C-p, Up-arrow Move to previous link
C-g Show current page position

Hyperlink operation

RET, C-f, Right-arrow Follow hyperlink
d, ESC RET Save link to file
u Show link URL
i Show image URL
I View inline image
ESC I Save inline image to file
: Mark URL-like strings as hyperlinks
ESC : Mark Message-ID-like strings as news anchors
c Show current URL
= Show information about current document
C-h Show browsing history
F Render HTML frames
M Browse current document using external browser (use 2M and 3M to invoke second and third browser)
ESC M Browse link using external browser (use 2ESC M and 3ESC M to invoke second and third browser)

File/Stream operation

g, U Open new URL
V Open new file
@ Execute shell command and view output
# Execute shell command and browse output

Buffer operation

B, C-b, Left-arrow Back to the previous buffer
\ View HTML source
s, C-h Select buffer
E Edit buffer source
C-l, C-w Redraw screen
R, C-r Reload buffer
S, p Save buffer
ESC s Save source
ESC e Edit buffer image

Buffer selection mode

k, C-p Select previous buffer
j, C-n Select next buffer
D Delete current buffer
RET Go to the selected buffer

Bookmark operation

v, ESC b Go to bookmarks page
a, ESC a Bookmark current page

Search

/, C-s Search forward
n Search next
w Toggle wrapping mode in searches

Mark operation

C-SPC Set/unset mark
P Go to previous mark
N Go to next mark
" Mark by regular _expression_

Miscellany

! Execute shell command
H, ? Show help
o Show options panel
C-k Show cookie jar
C-c Stop loading
C-z Suspend w3m
q Quit (with confirmation dialog)
Q Quit without confirmation

Line-editing mode

C-f Move cursor forward
C-b Move cursor backward
C-h Delete previous character
C-d Delete current character
C-k Kill everything after cursor
C-u Kill everything before cursor
C-a Move to the beginning of line
C-e Move to the end of line
C-p Fetch the previous string from the history list
C-n Fetch the next string from the history list
TAB, SPC Complete filename
RETURN Accept

Mouse operation

If w3m is compiled with mouse support and you are using either xterm/kterm/rxvt (in the latter case, you have to set the TERM environment variable to xterm or kterm) or GPM, you can use the mouse for navigation.

left click Move the cursor to the place indicated by the mouse cursor. If you click the cursor and it is on a hyperlink, follow the link.
middle click Back to the previous buffer.
right click Open pop-up menu. You can choose an item by clicking it.
left drag Scroll document. The default behavior is to grab the document and drag it. You can reverse the behavior (grab the window and drag it) with the option setting panel.

Key customization

You can customize the key bindings (except the line-editing keymap) in a ~/.w3m/keymap file. For example,


   keymap C-o NEXT_PAGE

binds the NEXT_PAGE function (normally bound to SPC and C-v) to control-o. See README.func for a list of available functions. Original and Lynx-like keymap definitions are provided (keymap.default and keymap.lynx) as examples.


Local CGI

You can run CGI scripts using w3m, without any HTTP server. This means that w3m behaves like an HTTP server and runs the CGI script, then reads the output of the script and displays it. The bookmark registration system and helper-app editor are realized as local CGI scripts. Local CGI scripts allow w3m to be used as a general purpose form interface.

For security reason, CGI scripts invoked by w3m must be in one of the following directories:

The CGI script can use the special header w3m-control: to control w3m. This field can take any function (see README.func), and the specified function is invoked after the document is displayed. For example, the CGI output


Content-Type: text/plain
W3m-control: BACK

will display a blank page and delete that buffer immediately. This is useful when you don't want to display any page after the script is invoked. The next example


Content-Type: text/plain
W3m-control: DELETE_PREVBUF

contents.....

will override the current buffer.

Each w3m-control: header can contain only one function, but you can include more than one w3m-control: line in the HTTP header. In addition, you can specify an argument to the GOTO function:


Content-Type: text/plain
W3m-control: GOTO http://www.example.org/

This example works exactly the same way as the Location header:


Content-Type: text/plain
Location: http://www.example.org/

Note that this header has no effect when the CGI script is invoked through an HTTP server.


Reply to: