w3m is a standalone textual browser much like lynx. It runs in a terminal. emacs-w3m is an Emacs interface to w3m, so that one can browse web sites within emacs.
Note: there’s some confusion about w3 and w3m. w3 is also a web browser, completely written in elisp; it runs within Emacs, and is bundled with Xemacs.
w3m was developed by Akinori ITO. You can get it here:
The rest of this page is dedicated to setting up w3m for Emacs.
Go to the w3m options and and find the options Editor and Mailer. Use the following:
This requires GnuClient. If you only have EmacsClient, you cannot use the Mailer. For the Editor, use this:
Use SimpleWikiMode to edit w3m textarea files. This even works in the console – start Emacs in one console, and w3m in another. When you edit a textarea, switch to Emacs, when done, switch back to w3m.
Once you kill the buffer, you are living dangerously – all your stuff is deleted on the disk, it only exists in w3m. And so if you hit the back button in w3m, or quit w3m, there is not even a backup file for you.
Here is how to force it:
(add-hook 'kill-buffer-hook 'make-w3m-backup-copy)
(defun make-w3m-backup-copy ()
(when (string-match "^w3m" (buffer-name))
(write-file (concat (buffer-file-name) ".last"))))I like my w3m to look just like my ColorTheme, and I want to save myself from typing the -B all the time. I also want to be able to switch to UTF-8 at will:
This is my ~/bin/web-browser:
#! /bin/bash
GEOM="-geometry 155x55"
if [ -z "$DISPLAY" ]; then
PROG=w3m
if [ "u" == "$1" ]; then
URL=$2
else
URL=$1
fi
elif [ "u" == "$1" ]; then
PROG="xterm-utf8 -name web-browser $GEOM -bg #243 -fg NavajoWhite -e w3m-m17n"
URL=$2
else
PROG="xterm -name web-browser $GEOM -bg #342 -fg NavajoWhite -e w3m"
URL=$1
fi
if [ -z "$URL" ]; then
URL=-B
fi
$PROG $URLAnd this is my ~/bin/xterm-utf8:
#!/bin/sh
exec uxterm \
-bg '#003' \
-fn '*-unifont-*--16-*-iso10646-1' \
$*Running web-browser u [URL] will then visit URL using UTF8.
To edit this wiki using w3m make sure you enable cookies in w3m! Hit o for options and check for the following:
Cookie Settings Enable cookie processing (*)YES ( )NO Print a message when receiving a cookie (*)YES ( )NO Accept cookies (*)YES ( )NO
Next, follow this link to set the cookie.
Use ‘C-k’ to examine your cookie jar and verify that you’ve got the appropriate cookie set.