출처 : http://teamblog.joinc.co.kr/yundream/167
자주쓰는 :
B : 이전 상태
s : 창목록 보기 (스페이스로 선택)
D : 다운로드 상태 창으로 바로 가기
a : 현재 링크를 파일로 저장하기
w3m에 대해서
w3m은
lynx와 같은 텍스트 브라우저 이지만 lynx보다는 훨씬 세련되었다. lynx는 매우 가볍고 빠르며 필요한 텍스트 정보만을 보여주므로 컨텐츠에 집중할 수 있게 도와주기는 하지만 사이트가 약간만 복잡해지면 브라우징 하기가 매우 어려워 진다는 단점을 가지게 된다. 프레임이 사용되거나 조금 복잡한 테이블이 사용되면 어디가 어디인지 도통 감을 잡을 수 없다.
정보에 대한 가독성을 높이기 위해서는 필요한 텍스트만 얻어내는 것도 중요하지만 시각적으로 보기 쉽게 정보를 보여줄수 있어야 하며 사용자 친화적인 인터페이스를 제공할 수 있어야 한다.. lynx는 시각적인 면과 편리한 인터페이스를 충족시키지 못한다.
w3m은 이를테면 필요한 정보로의 집중 빠른 정보접근 시각적인면과 편리한 인터페이스를 모두 충족시킬 수 있는 매우 훌륭한 텍스트 기반 브라우저이다. 특히 정보수집을 목적으로 웹서핑을 하길 원한다면 w3m보다 훌륭한 브라우저가 없다고 감히 주장한다. 개인적으로도 컨텐츠 관리를 위한 웹서핑은 w3m을 사용한다. 특히 textarea 에서
vim을 불러와서 문서편집이 가능하다는게 정말 맘에 든다.
설치하기
왠만한
Linux 배포판은 기본적으로 포함하고 있다. 설치역시 배포판에서 제공하는 패키지 관리 프로그램을 이용하면 간단하게 설치할 수 있다. 이 문서는
Ubuntu를 기준으로 작성되었다.
실행
xterm, konsole, hanterm 같은
터미널 에뮬레이터에서
w3m을 입력하면 된다.
w3m의 특징
- 테이블 렌더링 : 위의 화면을 보면 테이블을 시각적으로 매우 깔끔하게 정리해서 보여주고 있음을 알 수 있다. 자고로 보기좋은 떡이 먹기에도 좋은 법이다.
- 프레임 렌더링 : 놀랍게도 프레임역시 화면에 표시해준다. lynx를 통해서 프레임을 사용하는 웹페이지를 브라우징해본 적이 있다면 이게 얼마나 편리한 기능인지 동감할 것이다.
- 마우스 지원 : w3m은 화면제어를 위해 ncurses를 사용하고 있으며 마우스를 지원한다. 마우스를 통해서 스크롤과 링크를 통한 이동, 입력선택 등이 가능하다.
- textarea에서의 외부편집기 지원 : w3m을 사용하는 가장 큰 이유중 하나다. Firefox나 IE의 빈약한 편집기를 통해서 textarea를 입력해본적이 있다면 그게 얼마나 짜증나는 일인지 잘 알것이다. 때문에 많은 경우 별도의 에디터 프로그램을 띄워서 내용을 작성하고 긁어 붙이는 편법을 동원한다. w3m에서는 vim와 같은 외부 프로그램을 textarea입력시 사용가능하다. 특히 wiki에서와 같이 많은 내용을 편집할 때 빛나는 기능이다.
- SSL 지원 : SSL을 기본 지원한다.
- UTF-8 지원
- vi 키지원 : vim를 주로 사용하는 유저에게는 희소식이다. 화면의 이동/찾기등의 기능이용을 vi키로 할 수 있다. 다음은 화면이동에 사용되는 대표적인 키들이다.
J | 아래 | K | 위 |
H | 오른쪽으로 | L | 왼쪽으로 |
shift+^ | 줄의 처음 | shift+$ | 줄의 마지막 |
- Tab 의 지원 : 모질라를 이용해 봤다면 Tab기능이 상당히 편리하다는데 동의 할 것이다. 여러개의 창으로 인하여 데스크탑이 지저분해지지 않으면서 간단하게 사이트사이를 이동할 수 있기 때문이다. w3m역시 Tab을 지원한다. 역시 너무 편리한 기능이다.
Tab같의 이동은 단축키와 마우스 모두를 통해서 가능하다.
joinc과 w3m은 찰떡궁함
joinc는 몇몇 매우 특별한 경우를 제외하고는 자바스크립트를 사용하지 않으며 순수하게
HTML만 을 사용해서 작성되었다. 프레임을 사용하지도 않았으며, 브라우저 독립적인 HTML테그역시 사용하지 않았다. 그러므로 익스플로어, 넷스케이프, 모질라, lynx, w3m모든 브라우저로 브라우징이 가능하며 특히 w3m을 이용하면 매우 편하게 브라우징 가능하다.
* textarea는 다음과 같이 표시된다.
* textarea에서 엔터키(혹은 마우스 클릭)를 누르면 아래와 같이 vi화면이 뜬다.
w3m 사용 메뉴얼
- 도움말을 보고 싶다면 어디에서든지 'H'를 입력하면 된다.
- SPC는 space바, C는 Ctrl을 나타낸다. 예를 들어 C-v는 Ctrl+v가 된다.
- ESC는 escape키다. ESC-v는 escape키를 누른뒤 v를 누르라는 뜻이다.
w3m MANUAL
Akinori Ito
aito@ei5sun.yz.yamagata-u.ac.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 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.
Options are as follows:
- +<line number>
- Move to the specified line.
- -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.
- -l number
- Specify line number preserved internally when reading text/plain document fron standard input. Default is 10000.
- -s
- Display documents with Shift_JIS code.
- -e
- Display documents with EUC_JP code.
- -j
- Display documents with ISO-2022-JP code.
- -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
- -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.
- -v
- visual startup mode.
- -B
- Show the bookmark.
- -bookmark file
- Specify bookmark file.
- -M
- Monochrome display mode.
- -F
- Automatically render frame.
- -S
- Squeeze blank lines.
- -X
- Upon exit, do not display preserved screen.
- -W
- Toggle wrap search mode.
- -o option=value
- Specify option. The option names and values are same as that appears in ~/.w3m/config.
- -cookie
- Process cookies.
- -no-cookie
- Don't process cookies.
- -pauth username:password
- Set username and password for (basic) proxy authentication.
- -num
- Show linenumber.
- -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.
- -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
- Don't use graphic character to draw frames.
- -no-mouse
- Don't activate mouse.
- -config file
- specify config file.
Document color
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
After invocation, you can operate w3m by one-character commands from the keyboard.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 |
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 |
^,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 |
ESC g | Go to specified line |
Z | Move to the center line |
z | Move to the center 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 |
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-g | Show current line number |
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
U | Open URL |
V | View new file |
@ | Execute shell command and load |
# | Execute shell command and browse |
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 | Delect current buffer |
RET | Go to the selected buffer |
Bookmark operation
ESC b | Load bookmark |
ESC a | Add current to bookmark |
Search
/,C-s | Search forward |
?,C-r | Search backward |
n | Search next |
N | Search previous |
C-w | Toggle wrap search mode |
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) |
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 |
Lynx-like key binding
If you have chosen `Lynx-like key binding' at the compile time, you can use the following key binding.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 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 | 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 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 | 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 |
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.left click | Move the cursor to the place pointed by the mouse cursor. If you click the cursor and it is on an anchor, follow the anchor. |
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 binding (except line-editing keymap) by describing ~/.w3m/keymap. For example, 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.
Local CGI
You can run CGI scripts using w3m, without any HTTP server. It means that w3m behaves like an HTTP server and activates CGI script, then w3m reads the output of the script and display it. The bookmark registration andhelper-app editor are realized as local CGI scripts. Using local CGI, w3m can be used as a general purpose form interface.For security reason, CGI scripts invoked by w3m must be in one of these directories.
- The directory where w3m-related files are stored (typically /usr/local/lib/w3m). This directory can be referred as $LIB.
- /cgi-bin/ directory. You can map /cgi-bin/ to any directory you like with 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. 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
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 exampleContent-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:
Content-Type: text/plain
W3m-control: GOTO http://www.yahoo.com/
This example works exactly the same way to the Location header: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.