<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv=content-type content="text/html;charset=US-ASCII">
<title>
w3m manual
</title>
</head>
<body>
<!--
Todo:
words anchor, link, hyperlink are used with the meaning link. Decide which one shall be prefered and used throughout the documentation
-->
<!--
Todo:
Keybindigs: Check whether there are keybindings that contain SHIFT-Letter which shall be replaced with the majuscule. Having this notation all over the documentation, this shall be noted in the introduction paragraph of section "Key bindings"
-->
<!--
insertions tagged with "mh 2016-03-29" come from the latest version of manual page w3m (1)
-->
<h1>w3m MANUAL</h1>
<div align="right">
Akinori Ito<br>
aito@fw.ipsj.or.jp
</div>
<h2>Index</h2>
<ul>
<li>
<a href="#Introduction">
Introduction
</a>
</li>
<li>
<a href="#Options">
Options
</a>
</li>
<li>
<a href="#Color">
Document colors
</a>
</li>
<li>
<a href="#Key:orig">
Key bindings
</a>
</li>
<li>
<a href="#Key:lynx">
Lynx-like key bindings
</a>
</li>
<li>
<a href="#Mouse">
Mouse operation
</a>
</li>
<li>
<a href="#Key:custom">
Key customization
</a>
</li>
<li>
<a href="#LocalCGI">
Local CGI
</a>
</li>
</ul>
<hr>
<h2 id="Introduction">
Introduction
</h2>
<p>
w3m is a pager/text-based WWW browser. You can browse local
documents and/or documents on the WWW using a terminal emulator.
</p>
<hr>
<h2 id="Options">
Options
</h2>
<p>
Command line usage is
</p>
<pre>
w3m [options] [file|URL]
</pre>
<p>
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.
</p>
<p>
Options include:
</p>
<dl>
<dt>
+<i>number</i>
</dt>
<dd>
<p>
Move to the specified line-number.
</p>
</dd>
<dt>
-t <i>width</i>
<!--mh 2016-03-29 -t <i>num</i>-->
</dt>
<dd>
<p>
Specify tab width. Default is 8.
<!--mh 2016-03-29 set tab width to num columns. No effect on stdout-->
</p>
</dd>
<dt>
-r
</dt>
<dd>
<p>
When displaying text/plain documents, prohibit emphasis using
backspace. If you don't specify this option, <q>A^H_</q> is
interpreted as an underlined <q>A</q> and <q>A^HA</q> as a bold
<q>A</q>.
<!-- mh 2016-03-29
use caret notation to display special escape characters (such as ANSI escapes or nroff-style backspaces for bold and underlined characters) instead of processing them
-->
</p>
</dd>
<dt>
-l <i>number</i>
</dt>
<dd>
<p>
Specify the number of lines that should be cached while reading a
text/plain document from standard input. Default is 10,000.
</p>
</dd>
<dt>
-O <i>charset</i>
</dt>
<dd>
<p>
Specify display/output charset.
<!-- mh 2016-03-29
user defined character encoding of output data
-->
</p>
</dd>
<dt>
-I <i>charset</i>
</dt>
<dd>
<p>
Specify document charset.
<!-- mh 2016-03-29
user defined character encoding of input data
-->
</p>
</dd>
<dt>
-T <i>type</i>
</dt>
<dd>
<p>
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:
</p>
<p>
Read HTML document from standard input and display it
</p>
<pre>
cat example.html | w3m -T text/html
</pre>
<p>
Display HTML source
</p>
<pre>
w3m -T text/plain example.html
</pre>
</dd>
<dt>
-m
</dt>
<dd>
<p>
Display document using <q>Internet message mode</q>. With this
option, w3m determines document type from header information.
This is useful when reading e-mail or Usenet news posts.
<!-- mh 2016-03-29
Render the body of Usenet messages according to the header <q>Content-type</q>
-->
</p>
</dd>
<dt>
-v
</dt>
<dd>
<p>
Show w3m's startup page.
<!-- mh 2016-03-29
with no other target defined, welcome users with a built-in page
-->
</p>
</dd>
<dt>
-B
</dt>
<dd>
<p>
Show w3m's bookmarks page.
<!-- mh 2016-03-29
with no other target defined, use the bookmark page for startup
-->
</p>
</dd>
<dt>
-bookmark <i>file</i>
</dt>
<dd>
<p>
Specify a custom bookmarks file.
</p>
</dd>
<dt>
-M
</dt>
<dd>
<p>
Monochrome display mode.
<!-- mh 2016-03-29
monochrome display
-->
</p>
</dd>
<dt>
-F
</dt>
<dd>
<p>
Automatically render HTML frames.
<!-- mh 2016-03-29
render frames
-->
</p>
</dd>
<dt>
-s
</dt>
<dd>
<p>
Squeeze blank lines.
<!-- mh 2016-03-29
squeeze multiple blank lines into one
-->
</p>
</dd>
<dt>
-X
</dt>
<dd>
<p>
Upon exit, do not reinitialize the terminal.
</p>
</dd>
<dt>
-W
</dt>
<dd>
<p>
Toggle wrapping mode in searches.
<!-- mh 2016-03-29
toggle wrapping in searches
-->
</p>
</dd>
<dt>
-o <i>option</i>=<i>value</i>
</dt>
<dd>
<p>
Specify option. The available option names and values are the
same as in ~/.w3m/config.
<!-- mh 2016-03-29
modify one configuration item with an explicitly given value; without option=value, equivalent to -show-option
-->
</p>
</dd>
<dt>
-cookie
</dt>
<dd>
<p>
Process cookies.
<!-- mh 2016-03-29
use stored cookies and accept new ones
-->
</p>
</dd>
<dt>
-no-cookie
</dt>
<dd>
<p>
Don't process cookies.
<!-- mh 2016-03-29
neither use stored cookies nor accept new ones
-->
</p>
</dd>
<dt>
-num
</dt>
<dd>
<p>
Show line-numbers.
<!-- mh 2016-03-29
display each line's number
-->
</p>
</dd>
<dt>
-dump
</dt>
<dd>
<p>
Read document specified by URL and dump page rendered as text
into standard output. A width of 80 columns is used unless option
-cols sets another value.
<!-- mh 2016-03-29
dump rendered page into stdout. Set implicitly when output is directed to a file or pipe
-->
</p>
</dd>
<dt>
-cols <i>width</i>
</dt>
<dd>
<p>
Specify document width. Used with -dump option.
</p>
</dd>
<dt>
-ppc <i>count</i>
</dt>
<dd>
<p>
Specify the number of pixels per character (default 8.0). Larger
values will make tables narrower.
<!-- mh 2016-03-29
width of num pixels per character. Range of 4.0 to 32.0, default 8.0. Larger
values will make tables narrower. (Implementation not verified)
-->
</p>
</dd>
<dt>
-dump_source
</dt>
<dd>
<p>
Read document specified by URL and dump the source.
<!-- mh 2016-03-29
dump the page's source code into stdout
-->
</p>
</dd>
<dt>
-dump_head
</dt>
<dd>
<p>
Read document specified by URL and dump headers.
<!-- mh 2016-03-29
dump response of a HEAD request for a URL into stdout
-->
</p>
</dd>
<dt>
-dump_both
</dt>
<dd>
<p>
Read document specified by URL and dump headers and the source.
<!-- mh 2016-03-29
dump HEAD, and source code for a URL into stdout
-->
</p>
</dd>
<dt>
-dump_extra
</dt>
<dd>
<p>
Read document specified by URL and dump extra informations,
headers, and the source.
<!-- mh 2016-03-29
dump HEAD, source code, and extra information for a URL into
stdout
-->
</p>
</dd>
<dt>
-post <i>file</i>
</dt>
<dd>
<p>
Use POST method with file content.
<!-- mh 2016-03-29
use POST method to upload data defined in <q>file</q>. The syntax to be
used is var1=value1[&var2=value2]...
-->
</p>
</dd>
<dt>
-header <i>string</i>
</dt>
<dd>
<p>
Insert string as a header.
<!-- mh 2016-03-29
append <q>string</q> to the HTTP(S) request. Expected to match the
header syntax Variable: Value
-->
</p>
</dd>
<dt>
-no-proxy
</dt>
<dd>
<p>
Don't use proxy server.
</p>
</dd>
<dt>
-no-graph
</dt>
<dd>
<p>
Use ASCII characters to draw frames rather than graphical ones.
<!-- mh 2016-03-29
do not use graphic characters for drawing HTML table and
frame borders
-->
</p>
</dd>
<dt>
-no-mouse
</dt>
<dd>
<p>
Deactivate mouse support.
</p>
</dd>
<dt>
-config <i>file</i>
</dt>
<dd>
<p>
Specify config file.
</p>
</dd>
</dl>
<hr>
<h2 id="Color">
Document colors
</h2>
<p>
Links and images are displayed as follows.
</p>
<div align="center">
<table border="1">
<tr>
<th>
</th>
<th>
Color mode
</th>
<th>
Monochrome mode
</th>
</tr>
<tr>
<td>
links
</td>
<td>
blue
</td>
<td>
underline
</td>
</tr>
<tr>
<td>
inline images
</td>
<td>
green
</td>
<td>
reverse
</td>
</tr>
<tr>
<td>
form input
</td>
<td>
red
</td>
<td>
reverse
</td>
</tr>
</table>
</div>
<p>
These colors can be customized using the option setting command
<q>o</q>.
</p>
<hr>
<h2 id="Key:orig">
Key bindings
</h2>
<!--
TODO: reorganise this whole thing into one big table of
FUNCTIONNAME | description | default-binding | Lynxlike-binding
!-->
<p>
After invoking w3m, you can control it with keyboard commands.
</p>
<p>
Here's the original key-binding table. If you are using Lynx-like
key bindings, see <a href="#Key:lynx">the Lynx-like key
bindings</a>. Throughout, the <q>C-</q> and <q>M-</q> notations
indicate the modifiers <q>control</q> and <q>meta</q> (which can be
replaced with <q>alt</q> or ESC); on the other hand <q>2 M</q>
simply means <q>2</q> followed by <q>M</q>.
</p>
<!--
Correction:
The two equivalents to the meta-key are pressing simultaneously the ALT-key or pressing the ESC-key first and then other mentioned keys.
-->
<h3>
In-page navigation
</h3>
<table>
<tr>
<td width="100">
SPC, C-v, +, PGDN
</td>
<td>
Forward page
</td>
</tr>
<tr>
<td>
b, M-v, -, PGUP
</td>
<td>
Backward page
</td>
</tr>
<tr>
<td>
l, C-f, RIGHT
</td>
<td>
Cursor right
</td>
</tr>
<tr>
<td>
h, C-b, LEFT
</td>
<td>
Cursor left
</td>
</tr>
<tr>
<td>
j, C-n, DOWN
</td>
<td>
Cursor down
</td>
</tr>
<tr>
<td>
k, C-p, UP
</td>
<td>
Cursor up
</td>
</tr>
<tr>
<td>
J
</td>
<td>
Scroll screen up one line
</td>
</tr>
<tr>
<td>
K
</td>
<td>
Scroll screen down one line
</td>
</tr>
<tr>
<td>
^, C-a
</td>
<td>
Go to the beginning of line
</td>
</tr>
<tr>
<td>
$, C-e
</td>
<td>
Go to the end of line
</td>
</tr>
<tr>
<td>
w
</td>
<td>
Go to the next word
</td>
</tr>
<tr>
<td>
W
</td>
<td>
Go to the previous word
</td>
</tr>
<tr>
<td>
>
</td>
<td>
Shift screen right
</td>
</tr>
<tr>
<td>
<
</td>
<td>
Shift screen left
</td>
</tr>
<tr>
<td>
.
</td>
<td>
Shift screen one column right
</td>
</tr>
<tr>
<td>
,
</td>
<td>
Shift screen one column left
</td>
</tr>
<tr>
<td>
g, M-<, HOME
</td>
<td>
Go to the first line
</td>
</tr>
<tr>
<td>
G, M->, END
</td>
<td>
Go to the last line
</td>
</tr>
<tr>
<td>
M-g
</td>
<td>
Go to the specified line
</td>
</tr>
<tr>
<td>
Z
</td>
<td>
Center on cursor column
</td>
</tr>
<tr>
<td>
z
</td>
<td>
Center on cursor line
</td>
</tr>
<tr>
<td>
TAB
</td>
<td>
Move to the next hyperlink
</td>
</tr>
<tr>
<td>
C-u, M-TAB
</td>
<td>
Move to the previous hyperlink
</td>
</tr>
<tr>
<td>
[
</td>
<td>
Move to the first hyperlink
</td>
</tr>
<tr>
<td>
]
</td>
<td>
Move to the last hyperlink
</td>
</tr>
</table>
<h3>Hyperlink operation</h3>
<table>
<tr>
<td width="100">
C-j, C-m, RET
</td>
<td>
Follow hyperlink
</td>
</tr>
<tr>
<td>
a, M-RET
</td>
<td>
Save link to file
</td>
</tr>
<tr>
<td>
u
</td>
<td>
Show link URL
</td>
</tr>
<tr>
<td>
i
</td>
<td>
Show image URL
</td>
</tr>
<tr>
<td>
I
</td>
<td>
View inline image
</td>
</tr>
<tr>
<td>
M-I
</td>
<td>
Save inline image to file
</td>
</tr>
<tr>
<td>
:
</td>
<td>
Mark URL-like strings as hyperlinks
</td>
</tr>
<tr>
<td>
M-:
</td>
<td>
Mark Message-ID-like strings as links
</td>
</tr>
<tr>
<td>
c
</td>
<td>
Show current URL
</td>
</tr>
<tr>
<td>
=
</td>
<td>
Show information about current document
</td>
</tr>
<tr>
<td>
C-g
</td>
<td>
Show current position in page
</td>
</tr>
<tr>
<td>
C-h
</td>
<td>
Show browsing history
</td>
</tr>
<tr>
<td>
M
</td>
<td>
Browse current document using external browser (prefix 2 or 3 to
invoke alternate configured browsers, e.g. 3 M)
</td>
</tr>
<tr>
<td>
M-M
</td>
<td>
Browse link using external browser (prefixed as above, e.g.
3 M-M)
</td>
</tr>
</table>
<h3>
Bookmark management
</h3>
<table>
<tr>
<td width="100">
M-b
</td>
<td>
Go to the bookmarks page
</td>
</tr>
<tr>
<td>
M-a
</td>
<td>
Bookmark current page
</td>
</tr>
</table>
<h3>
File/stream operation
</h3>
<table>
<tr>
<td width="100">
U
</td>
<td>
Open new URL
</td>
</tr>
<tr>
<td>
V
</td>
<td>
Open new file
</td>
</tr>
<tr>
<td>
@
</td>
<td>
Execute shell command and view output
</td>
</tr>
<tr>
<td>
#
</td>
<td>
Execute shell command and browse output
</td>
</tr>
</table>
<h3>
Content operations
</h3>
<table>
<tr>
<td width="100">
v
</td>
<td>
Toggle viewing as text or rendered HTML
</td>
</tr>
<tr>
<td>
F
</td>
<td>
Toggle rendering HTML frames
</td>
</tr>
<tr>
<td>
C-l
</td>
<td>
Redraw screen
</td>
</tr>
<tr>
<td>
R
</td>
<td>
Reload
</td>
</tr>
<tr>
<td>
E
</td>
<td>
Edit local source
</td>
</tr>
<tr>
<td>
M-e
</td>
<td>
Edit rendered copy of page
</td>
</tr>
<tr>
<td>
M-s
</td>
<td>
Save source
</td>
</tr>
<tr>
<td>
S
</td>
<td>
Save rendered copy of page
</td>
</tr>
</table>
<h3>
Buffer/tab navigation
</h3>
<table>
<tr>
<td width="100">
B
</td>
<td>
Go back, <q>popping</q> the buffer stack
</td>
</tr>
<tr>
<td>
s
</td>
<td>
Show buffer-stack menu
</td>
</tr>
<tr>
<td>
M-t
</td>
<td>
Show tab menu
</td>
</tr>
<tr>
<td>
T
</td>
<td>
Open current page as new tab
</td>
</tr>
<tr>
<td>
C-t
</td>
<td>
Open link as new tab
</td>
</tr>
<tr>
<td>
}
</td>
<td>
Switch to next tab
</td>
</tr>
<tr>
<td>
{
</td>
<td>
Switch to previous tab
</td>
</tr>
<tr>
<td>
C-q
</td>
<td>
Close current tab
</td>
</tr>
</table>
<h3>
Search
</h3>
<table>
<tr>
<td width="100">
/
</td>
<td>
Search forward
</td>
</tr>
<tr>
<td>
?
</td>
<td>
Search backward
</td>
</tr>
<tr>
<td width="100">
C-s
</td>
<td>
Incremental search forward
</td>
</tr>
<tr>
<td>
C-r
</td>
<td>
Incremental search backward
</td>
</tr>
<tr>
<td>
n
</td>
<td>
Next match
</td>
</tr>
<tr>
<td>
N
</td>
<td>
Previous match
</td>
</tr>
<tr>
<td>
C-w
</td>
<td>
Toggle wrapping mode in searches
</td>
</tr>
</table>
<h3>
Mark management
</h3>
<table>
<tr>
<td width="100">
C-SPC
</td>
<td>
Set/unset mark
</td>
</tr>
<tr>
<td>
M-p
</td>
<td>
Go to the previous mark
</td>
</tr>
<tr>
<td>
M-n
</td>
<td>
Go to the next mark
</td>
</tr>
<tr>
<td>
"
</td>
<td>
Mark all occurrences of a regular expression
</td>
</tr>
</table>
<h3>
Miscellany
</h3>
<table>
<tr>
<td width="100">
!
</td>
<td>
Execute shell command
</td>
</tr>
<tr>
<td>
M-c
</td>
<td>
Invoke w3m function
</td>
</tr>
<tr>
<td>
H
</td>
<td>
Show help panel
</td>
</tr>
<tr>
<td>
o
</td>
<td>
Show options panel
</td>
</tr>
<tr>
<td>
C-k
</td>
<td>
Show cookie jar
</td>
</tr>
<tr>
<td>
C-c
</td>
<td>
Interrupt
</td>
</tr>
<tr>
<td>
C-z
</td>
<td>
Suspend w3m
</td>
</tr>
<tr>
<td>
q
</td>
<td>
Quit (with confirmation dialog)
</td>
</tr>
<tr>
<td>
Q
</td>
<td>
Quit without confirmation
</td>
</tr>
</table>
<!--
TODO: import leftovers from current keymap (same in both):
( UNDO
) REDO
; MARK_WORD
D DOWNLOAD_LIST
L LIST
m MOUSE_TOGGLE
r VERSION
| PIPE_BUF
M-W DICT_WORD_AT
M-c COMMAND
M-k DEFINE_KEY
M-l LIST_MENU
M-m MOVE_LIST_MENU
M-o SET_OPTION
M-u GOTO_RELATIVE
M-w DICT_WORD
M-Fn MENU
!-->
<p>
Two special operational modes exist which have built-in (not
redefinable) keymappings:
</p>
<h3>
Menu selection mode
</h3>
<table>
<tr>
<td width="100">
k, C-p, UP
</td>
<td>
Select previous item
</td>
</tr>
<tr>
<td>
j, C-n, DOWN
</td>
<td>
Select next item
</td>
</tr>
<tr>
<td>
D
</td>
<td>
Delete current item
</td>
</tr>
<tr>
<td>
SPC, RET
</td>
<td>
Go to the selected item
</td>
</tr>
</table>
<h3>
Line-editing mode
</h3>
<table>
<tr>
<td width="100">
C-f, RIGHT
</td>
<td>
Move cursor forward
</td>
</tr>
<tr>
<td>
C-b, LEFT
</td>
<td>
Move cursor backward
</td>
</tr>
<tr>
<td>
C-h, BKSPC
</td>
<td>
Delete previous character
</td>
</tr>
<tr>
<td>
C-d
</td>
<td>
Delete current character
</td>
</tr>
<tr>
<td>
C-k
</td>
<td>
Kill everything after cursor
</td>
</tr>
<tr>
<td>
C-u
</td>
<td>
Kill everything before cursor
</td>
</tr>
<tr>
<td>
C-a
</td>
<td>
Move to the beginning of line
</td>
</tr>
<tr>
<td>
C-e
</td>
<td>
Move to the end of line
</td>
</tr>
<tr>
<td>
C-p, UP
</td>
<td>
Fetch the previous string from the history list
</td>
</tr>
<tr>
<td>
C-n, DOWN
</td>
<td>
Fetch the next string from the history list
</td>
</tr>
<tr>
<td>
TAB, SPC
</td>
<td>
Try to complete filename
</td>
</tr>
<tr>
<td>
RET
</td>
<td>
Accept
</td>
</tr>
</table>
<hr>
<h2 id="Key:lynx">
Lynx-like key bindings
</h2>
<p>
If w3m was compiled with <q>Lynx-like key bindings</q>, you can use
the following key bindings.
</p>
<h3>
In-page navigation
</h3>
<table>
<tr>
<td width="100">
SPC, C-v, +
</td>
<td>
Forward page
</td>
</tr>
<tr>
<td>
b, M-v, -
</td>
<td>
Backward page
</td>
</tr>
<tr>
<td>
l
</td>
<td>
Cursor right
</td>
</tr>
<tr>
<td>
h
</td>
<td>
Cursor left
</td>
</tr>
<tr>
<td>
j
</td>
<td>
Cursor down
</td>
</tr>
<tr>
<td>
k
</td>
<td>
Cursor up
</td>
</tr>
<tr>
<td>
J
</td>
<td>
Scroll screen up one line
</td>
</tr>
<tr>
<td>
K
</td>
<td>
Scroll screen down one line
</td>
</tr>
<tr>
<td>
^
</td>
<td>
Go to the beginning of line
</td>
</tr>
<tr>
<td>
$
</td>
<td>
Go to the end of line
</td>
</tr>
<tr>
<td>
>
</td>
<td>
Shift screen right
</td>
</tr>
<tr>
<td>
<
</td>
<td>
Shift screen left
</td>
</tr>
<tr>
<td>
.
</td>
<td>
Shift screen one column right
</td>
</tr>
<tr>
<td>
,
</td>
<td>
Shift screen one column left
</td>
</tr>
<tr>
<td>
C-a, M-<
</td>
<td>
Go to the first line
</td>
</tr>
<tr>
<td>
C-e, M->
</td>
<td>
Go to the last line
</td>
</tr>
<tr>
<td>
G
</td>
<td>
Go to the specified line
</td>
</tr>
<tr>
<td>
w
</td>
<td>
Go to the next word
</td>
</tr>
<tr>
<td>
W
</td>
<td>
Go to the previous word
</td>
</tr>
<tr>
<td>
Z
</td>
<td>
Center on cursor line
</td>
</tr>
<tr>
<td>
z
</td>
<td>
Center on cursor column
</td>
</tr>
<tr>
<td>
TAB, C-n, DOWN
</td>
<td>
Move to the next hyperlink
</td>
</tr>
<tr>
<td>
M-TAB, C-p, C-u, UP
</td>
<td>
Move to the previous link
</td>
</tr>
<tr>
<td>
C-g
</td>
<td>
Show current position in page
</td>
</tr>
<tr>
<td>
[
</td>
<td>
Move to the first hyperlink
</td>
</tr>
<tr>
<td>
]
</td>
<td>
Move to the last hyperlink
</td>
</tr>
</table>
<h3>
Hyperlink operation
</h3>
<table>
<tr>
<td width="100">
C-f, C-j, C-m, RET, RIGHT
</td>
<td>
Follow hyperlink
</td>
</tr>
<tr>
<td>
d, M-RET
</td>
<td>
Save link to file
</td>
</tr>
<tr>
<td>
u
</td>
<td>
Show link URL
</td>
</tr>
<tr>
<td>
i
</td>
<td>
Show image URL
</td>
</tr>
<tr>
<td>
I
</td>
<td>
View inline image
</td>
</tr>
<tr>
<td>
M-I
</td>
<td>
Save inline image to file
</td>
</tr>
<tr>
<td>
:
</td>
<td>
Mark URL-like strings as hyperlinks
</td>
</tr>
<tr>
<td>
M-:
</td>
<td>
Mark Message-ID-like strings as news anchors
</td>
</tr>
<tr>
<td>
c
</td>
<td>
Show current URL
</td>
</tr>
<tr>
<td>
=
</td>
<td>
Show information about current document
</td>
</tr>
<tr>
<td>
C-h
</td>
<td>
Show browsing history
</td>
</tr>
<tr>
<td>
M
</td>
<td>
Browse current document using external browser (prefix 2 or 3 to
invoke alternate configured browsers, e.g. 3 M)
</td>
</tr>
<tr>
<td>
M-M
</td>
<td>
Browse link using external browser (prefixed as above, e.g.
3 M-M)
</td>
</tr>
</table>
<h3>
Bookmark management
</h3>
<table>
<tr>
<td width="100">
v, M-b
</td>
<td>
Go to the bookmarks page
</td>
</tr>
<tr>
<td>
a, M-a
</td>
<td>
Bookmark current page
</td>
</tr>
</table>
<h3>
File/stream operation
</h3>
<table>
<tr>
<td width="100">
g, U
</td>
<td>
Open new URL
</td>
</tr>
<tr>
<td>
V
</td>
<td>
Open new file
</td>
</tr>
<tr>
<td>
@
</td>
<td>
Execute shell command and view output
</td>
</tr>
<tr>
<td>
#
</td>
<td>
Execute shell command and browse output
</td>
</tr>
</table>
<h3>
Content operations
</h3>
<table>
<tr>
<td width="100">
\
</td>
<td>
Toggle viewing as text or rendered HTML
</td>
</tr>
<tr>
<td>
F
</td>
<td>
Toggle rendering HTML frames
</td>
</tr>
<tr>
<td>
C-l, C-w
</td>
<td>
Redraw screen
</td>
</tr>
<tr>
<td>
R, C-r
</td>
<td>
Reload
</td>
</tr>
<tr>
<td>
E
</td>
<td>
Edit local source
</td>
</tr>
<tr>
<td>
M-e
</td>
<td>
Edit rendered copy of page
</td>
</tr>
<tr>
<td>
M-s
</td>
<td>
Save source
</td>
</tr>
<tr>
<td>
S, p
</td>
<td>
Save rendered copy of page
</td>
</tr>
</table>
<h3>
Buffer/tab navigation
</h3>
<table>
<tr>
<td width="100">
B, C-b, LEFT
</td>
<td>
Go back, <q>popping</q> the buffer stack
</td>
</tr>
<tr>
<td>
s, C-h
</td>
<td>
Show buffer-stack menu
</td>
</tr>
<tr>
<td>
M-t
</td>
<td>
Show tab menu
</td>
</tr>
<tr>
<td>
T
</td>
<td>
Open current page as new tab
</td>
</tr>
<tr>
<td>
C-t
</td>
<td>
Open link as new tab
</td>
</tr>
<tr>
<td>
}
</td>
<td>
Switch to next tab
</td>
</tr>
<tr>
<td>
{
</td>
<td>
Switch to previous tab
</td>
</tr>
<tr>
<td>
C-q
</td>
<td>
Close current tab
</td>
</tr>
</table>
<h3>
Search
</h3>
<table>
<tr>
<td width="100">
/, C-s
</td>
<td>
Search forward
</td>
</tr>
<tr>
<td>
n
</td>
<td>
Next match
</td>
</tr>
<tr>
<td>
w
</td>
<td>
Toggle wrapping mode in searches
</td>
</tr>
</table>
<h3>
Mark management
</h3>
<table>
<tr>
<td width="100">
C-SPC
</td>
<td>
Set/unset mark
</td>
</tr>
<tr>
<td>
P
</td>
<td>
Go to the previous mark
</td>
</tr>
<tr>
<td>
N
</td>
<td>
Go to the next mark
</td>
</tr>
<tr>
<td>
"
</td>
<td>
Mark all occurrences of a regular expression
</td>
</tr>
</table>
<h3>
Miscellany
</h3>
<table>
<tr>
<td width="100">
!
</td>
<td>
Execute shell command
</td>
</tr>
<tr>
<td>
M-c
</td>
<td>
Invoke w3m function
</td>
</tr>
<tr>
<td>
H, ?
</td>
<td>
Show help panel
</td>
</tr>
<tr>
<td>
o
</td>
<td>
Show options panel
</td>
</tr>
<tr>
<td>
C-k
</td>
<td>
Show cookie jar
</td>
</tr>
<tr>
<td>
C-c
</td>
<td>
Interrupt
</td>
</tr>
<tr>
<td>
C-z
</td>
<td>
Suspend w3m
</td>
</tr>
<tr>
<td>
q
</td>
<td>
Quit (with confirmation dialog)
</td>
</tr>
<tr>
<td>
Q
</td>
<td>
Quit without confirmation
</td>
</tr>
</table>
<p>
The Lynx-like configuration leaves keymappings unchanged in the
menu-selection and line-editing modes.
</p>
<hr>
<h2 id="Mouse">
Mouse operation
</h2>
<p>
If w3m is compiled with mouse support and you are invoking w3m
either from a console with GPM or from an X terminal emulator, you
can use the mouse for navigation (in the case of rxvt, you need to
set the TERM environment variable to <q>xterm</q> or <q>kterm</q>).
</p>
<table border="0">
<tr>
<td>
left click
</td>
<td>
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.
</td>
</tr>
<tr>
<td>
middle click
</td>
<td>
Back to the previous buffer.
</td>
</tr>
<tr>
<td>
right click
</td>
<td>
Open pop-up menu. You can choose an item by clicking it.
</td>
</tr>
<tr>
<td>
left drag
</td>
<td>
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.
</td>
</tr>
</table>
<hr>
<h2 id="Key:custom">
Key customization
</h2>
<p>
You can customize the key bindings (except the line-editing keymap)
in a ~/.w3m/keymap file. For example,
</p>
<pre>
keymap C-o NEXT_PAGE
</pre>
<p>
binds the <q>NEXT_PAGE</q> function (normally bound to SPC and C-v)
to control-o. See <a href="README.func">README.func</a> for a
list of available functions. Original and Lynx-like keymap
definitions are provided (<a href="keymap.default">keymap.default</a>
and <a href="keymap.lynx">keymap.lynx</a>) as examples.
</p>
<hr>
<h2 id="LocalCGI">
Local CGI
</h2>
<p>
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. For
example, the bookmark registration system and default directory
browser are realized as local CGI scripts. Moreover, such scripts
allow w3m to be used as a form interface to acquire all kinds of
data.
</p>
<p>
For security reason, CGI scripts invoked by w3m must be in one of
the following directories:
</p>
<ul>
<li>
The directory where w3m-related files are stored (typically
/usr/local/lib/w3m). This directory can be referenced as $LIB.
</li>
<li>
The /cgi-bin/ directory. You can map /cgi-bin/ to any directory you
like in the option setting panel (the <q>Directory corresponds to
/cgi-bin</q> field). You can specify multiple paths separated by
<q>:</q>, like /usr/local/cgi-bin:/home/aito/cgi-bin. To use a
/cgi-bin/ directory, you must use a file:/cgi-bin URL as follows:
<pre>
w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi
</pre>
It is not recommended to include the current directory to this path.
</li>
</ul>
<p>
The CGI script can use the special header <q>w3m-control:</q> to
control w3m. This field can take any function (see
<a href="README.func">README.func</a>), and the specified function
is invoked after the document is displayed. For example, the CGI
output
</p>
<pre>
Content-Type: text/plain
W3m-control: BACK
</pre>
<p>
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
</p>
<pre>
Content-Type: text/plain
W3m-control: DELETE_PREVBUF
contents.....
</pre>
<p>
will override the current buffer.
</p>
<p>
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:
</p>
<pre>
Content-Type: text/plain
W3m-control: GOTO http://www.example.org/
</pre>
<p>
This example works exactly the same way as the Location header:
</p>
<pre>
Content-Type: text/plain
Location: http://www.example.org/
</pre>
<p>
Note that this header has no effect when the CGI script is invoked
through an HTTP server.
</p>
</body>
</html>