comparison man/misc.texi @ 69737:cd14e584d88e

Many cleanups. (beginning): Add to summary of topics. (Shell): Put eshell xref at the end. Remove eshell from table. (Thumbnails): New node.
author Richard M. Stallman <rms@gnu.org>
date Fri, 31 Mar 2006 15:32:20 +0000
parents dc2d5a6655a3
children 2a84440a03fb 482dfed28bee
comparison
equal deleted inserted replaced
69736:5b3262d81466 69737:cd14e584d88e
7 7
8 This chapter contains several brief topics that do not fit anywhere 8 This chapter contains several brief topics that do not fit anywhere
9 else: reading netnews, running shell commands and shell subprocesses, 9 else: reading netnews, running shell commands and shell subprocesses,
10 using a single shared Emacs for utilities that expect to run an editor 10 using a single shared Emacs for utilities that expect to run an editor
11 as a subprocess, printing hardcopy, sorting text, narrowing display to 11 as a subprocess, printing hardcopy, sorting text, narrowing display to
12 part of the buffer, editing double-column files and binary files, saving 12 part of the buffer, editing double-column files and binary files,
13 an Emacs session for later resumption, emulating other editors, and 13 saving an Emacs session for later resumption, following hyperlinks,
14 various diversions and amusements. 14 browsing images, emulating other editors, and various diversions and
15 amusements.
15 16
16 @end iftex 17 @end iftex
17 18
18 @ifnottex 19 @ifnottex
19 @raisesections 20 @raisesections
47 @end menu 48 @end menu
48 49
49 @node Buffers of Gnus 50 @node Buffers of Gnus
50 @subsection Gnus Buffers 51 @subsection Gnus Buffers
51 52
52 As opposed to most normal Emacs packages, Gnus uses a number of 53 Unlike most Emacs packages, Gnus uses several buffers to display
53 different buffers to display information and to receive commands. The 54 information and to receive commands. The three Gnus buffers users use
54 three buffers users spend most of their time in are the @dfn{group 55 most are the @dfn{group buffer}, the @dfn{summary buffer} and the
55 buffer}, the @dfn{summary buffer} and the @dfn{article buffer}. 56 @dfn{article buffer}.
56 57
57 The @dfn{group buffer} contains a list of groups. This is the first 58 The @dfn{group buffer} contains a list of newsgroups. This is the
58 buffer Gnus displays when it starts up. It normally displays only the 59 first buffer Gnus displays when it starts up. It normally displays
59 groups to which you subscribe and that contain unread articles. Use 60 only the groups to which you subscribe and that contain unread
60 this buffer to select a specific group. 61 articles. Use this buffer to select a specific group.
61 62
62 The @dfn{summary buffer} lists one line for each article in a single 63 The @dfn{summary buffer} lists one line for each article in a single
63 group. By default, the author, the subject and the line number are 64 group. By default, the author, the subject and the line number are
64 displayed for each article, but this is customizable, like most aspects 65 displayed for each article, but this is customizable, like most aspects
65 of Gnus display. The summary buffer is created when you select a group 66 of Gnus display. The summary buffer is created when you select a group
66 in the group buffer, and is killed when you exit the group. Use this 67 in the group buffer, and is killed when you exit the group. Use this
67 buffer to select an article. 68 buffer to select an article.
68 69
69 The @dfn{article buffer} displays the article. In normal Gnus usage, 70 The @dfn{article buffer} displays the article. In normal Gnus usage,
70 you don't select this buffer---all useful article-oriented commands work 71 you see this buffer but you don't select it---all useful
71 in the summary buffer. But you can select the article buffer, and 72 article-oriented commands work in the summary buffer. But you can
72 execute all Gnus commands from that buffer, if you want to. 73 select the article buffer, and execute all Gnus commands from that
74 buffer, if you want to.
73 75
74 @node Gnus Startup 76 @node Gnus Startup
75 @subsection When Gnus Starts Up 77 @subsection When Gnus Starts Up
76 78
77 At startup, Gnus reads your @file{.newsrc} news initialization file 79 At startup, Gnus reads your @file{.newsrc} news initialization file
109 Select articles from the summary buffer. Each article selected is 111 Select articles from the summary buffer. Each article selected is
110 displayed in the article buffer in a large window, below the summary 112 displayed in the article buffer in a large window, below the summary
111 buffer in its small window. 113 buffer in its small window.
112 @end enumerate 114 @end enumerate
113 115
114 Each Gnus buffer has its own special commands; however, the meanings 116 Each Gnus buffer has its own special commands; the meanings of any
115 of any given key in the various Gnus buffers are usually analogous, even 117 given key in the various Gnus buffers are usually analogous, even if
116 if not identical. Here are commands for the group and summary buffers: 118 not identical. Here are commands for the group and summary buffers:
117 119
118 @table @kbd 120 @table @kbd
119 @kindex q @r{(Gnus Group mode)} 121 @kindex q @r{(Gnus Group mode)}
120 @findex gnus-group-exit 122 @findex gnus-group-exit
121 @item q 123 @item q
312 314
313 Emacs has commands for passing single command lines to inferior shell 315 Emacs has commands for passing single command lines to inferior shell
314 processes; it can also run a shell interactively with input and output 316 processes; it can also run a shell interactively with input and output
315 to an Emacs buffer named @samp{*shell*} or run a shell inside a terminal 317 to an Emacs buffer named @samp{*shell*} or run a shell inside a terminal
316 emulator window. 318 emulator window.
317
318 There is a shell implemented entirely in Emacs, documented in a separate
319 manual. @xref{Top,Eshell,Eshell, eshell, Eshell: The Emacs Shell}.
320 319
321 @table @kbd 320 @table @kbd
322 @item M-! @var{cmd} @key{RET} 321 @item M-! @var{cmd} @key{RET}
323 Run the shell command line @var{cmd} and display the output 322 Run the shell command line @var{cmd} and display the output
324 (@code{shell-command}). 323 (@code{shell-command}).
331 You can then give commands interactively. 330 You can then give commands interactively.
332 @item M-x term 331 @item M-x term
333 Run a subshell with input and output through an Emacs buffer. 332 Run a subshell with input and output through an Emacs buffer.
334 You can then give commands interactively. 333 You can then give commands interactively.
335 Full terminal emulation is available. 334 Full terminal emulation is available.
336 @item M-x eshell
337 @findex eshell
338 Start the Emacs shell.
339 @end table 335 @end table
336
337 @kbd{M-x eshell} invokes a shell implemented entirely in Emacs. It
338 is documented in a separate manual. @xref{Top,Eshell,Eshell, eshell,
339 Eshell: The Emacs Shell}.
340 340
341 @menu 341 @menu
342 * Single Shell:: How to run one shell command and return. 342 * Single Shell:: How to run one shell command and return.
343 * Interactive Shell:: Permanent shell taking input via Emacs. 343 * Interactive Shell:: Permanent shell taking input via Emacs.
344 * Shell Mode:: Special Emacs commands used with permanent shell. 344 * Shell Mode:: Special Emacs commands used with permanent shell.
377 377
378 If the shell command line ends in @samp{&}, it runs asynchronously. 378 If the shell command line ends in @samp{&}, it runs asynchronously.
379 For a synchronous shell command, @code{shell-command} returns the 379 For a synchronous shell command, @code{shell-command} returns the
380 command's exit status (0 means success), when it is called from a Lisp 380 command's exit status (0 means success), when it is called from a Lisp
381 program. You do not get any status information for an asynchronous 381 program. You do not get any status information for an asynchronous
382 command, since it hasn't finished yet. 382 command, since it hasn't finished yet when @code{shell-command} returns.
383 383
384 @kindex M-| 384 @kindex M-|
385 @findex shell-command-on-region 385 @findex shell-command-on-region
386 @kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but 386 @kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but
387 passes the contents of the region as the standard input to the shell 387 passes the contents of the region as the standard input to the shell
388 command, instead of no input. If a numeric argument is used, meaning 388 command, instead of no input. With a numeric argument, meaning insert
389 insert the output in the current buffer, then the old region is deleted 389 the output in the current buffer, it deletes the old region and the
390 first and the output replaces it as the contents of the region. It 390 output replaces it as the contents of the region. It returns the
391 returns the command's exit status when it is called from a Lisp program. 391 command's exit status, like @kbd{M-!}.
392 392
393 One use for @kbd{M-|} is to run @code{gpg} to see what keys are in 393 One use for @kbd{M-|} is to run @code{gpg} to see what keys are in
394 the buffer. For instance, if the buffer contains a GPG key, type 394 the buffer. For instance, if the buffer contains a GPG key, type
395 @kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents 395 @kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents to
396 to the @code{gpg} program. That program will ignore everything except 396 the @code{gpg} program. That program will ignore everything except
397 the encoded keys, and will output a list of the keys it contains. 397 the encoded keys, and will output a list of the keys the buffer
398 contains.
398 399
399 @vindex shell-file-name 400 @vindex shell-file-name
400 Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify the 401 Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify
401 shell to use. This variable is initialized based on your @env{SHELL} 402 the shell to use. This variable is initialized based on your
402 environment variable when Emacs is started. If the file name does not 403 @env{SHELL} environment variable when Emacs is started. If the file
403 specify a directory, the directories in the list @code{exec-path} are 404 name is relative, Emacs searches the directories in the list
404 searched; this list is initialized based on the environment variable 405 @code{exec-path}; this list is initialized based on the environment
405 @env{PATH} when Emacs is started. Your @file{.emacs} file can override 406 variable @env{PATH} when Emacs is started. Your @file{.emacs} file
406 either or both of these default initializations.@refill 407 can override either or both of these default initializations.
407 408
408 Both @kbd{M-!} and @kbd{M-|} wait for the shell command to complete, 409 Both @kbd{M-!} and @kbd{M-|} wait for the shell command to complete,
409 unless you end the command with @samp{&} to make it asynchronous. To 410 unless you end the command with @samp{&} to make it asynchronous. To
410 stop waiting, type @kbd{C-g} to quit; that terminates the shell 411 stop waiting, type @kbd{C-g} to quit; that terminates the shell
411 command with the signal @code{SIGINT}---the same signal that @kbd{C-c} 412 command with the signal @code{SIGINT}---the same signal that @kbd{C-c}
412 normally generates in the shell. Emacs waits until the command 413 normally generates in the shell. Emacs then waits until the command
413 actually terminates. If the shell command doesn't stop (because it 414 actually terminates. If the shell command doesn't stop (because it
414 ignores the @code{SIGINT} signal), type @kbd{C-g} again; this sends 415 ignores the @code{SIGINT} signal), type @kbd{C-g} again; this sends
415 the command a @code{SIGKILL} signal which is impossible to ignore. 416 the command a @code{SIGKILL} signal which is impossible to ignore.
416 417
417 Asynchronous commands ending in @samp{&} feed their output into 418 Asynchronous commands ending in @samp{&} feed their output into
420 421
421 To specify a coding system for @kbd{M-!} or @kbd{M-|}, use the command 422 To specify a coding system for @kbd{M-!} or @kbd{M-|}, use the command
422 @kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}. 423 @kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}.
423 424
424 @vindex shell-command-default-error-buffer 425 @vindex shell-command-default-error-buffer
425 Error output from the command is normally intermixed with the regular 426 Error output from these commands is normally intermixed with the
426 output. If you set the variable 427 regular output. But if the variable
427 @code{shell-command-default-error-buffer} to a string, which is a buffer 428 @code{shell-command-default-error-buffer} has a string as value, and
428 name, error output is inserted before point in the buffer of that name. 429 it's the name of a buffer, @kbd{M-!} and @kbd{M-|} insert error output
430 before point in that buffer.
429 431
430 @node Interactive Shell 432 @node Interactive Shell
431 @subsection Interactive Inferior Shell 433 @subsection Interactive Inferior Shell
432 434
433 @findex shell 435 @findex shell
454 456
455 To make multiple subshells, you can invoke @kbd{M-x shell} with a 457 To make multiple subshells, you can invoke @kbd{M-x shell} with a
456 prefix argument (e.g. @kbd{C-u M-x shell}), which will read a buffer 458 prefix argument (e.g. @kbd{C-u M-x shell}), which will read a buffer
457 name and create (or reuse) a subshell in that buffer. You can also 459 name and create (or reuse) a subshell in that buffer. You can also
458 rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely}, then 460 rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely}, then
459 create a new @samp{*shell*} buffer using plain @kbd{M-x shell}. All the 461 create a new @samp{*shell*} buffer using plain @kbd{M-x shell}.
460 subshells in different buffers run independently and in parallel. 462 Subshells in different buffers run independently and in parallel.
461 463
462 @vindex explicit-shell-file-name 464 @vindex explicit-shell-file-name
463 @cindex environment variables for subshells 465 @cindex environment variables for subshells
464 @cindex @env{ESHELL} environment variable 466 @cindex @env{ESHELL} environment variable
465 @cindex @env{SHELL} environment variable 467 @cindex @env{SHELL} environment variable
477 @var{shellname} is the name of the file that the shell was loaded 479 @var{shellname} is the name of the file that the shell was loaded
478 from. For example, if you use bash, the file sent to it is 480 from. For example, if you use bash, the file sent to it is
479 @file{~/.emacs_bash}. 481 @file{~/.emacs_bash}.
480 482
481 To specify a coding system for the shell, you can use the command 483 To specify a coding system for the shell, you can use the command
482 @kbd{C-x @key{RET} c} immediately before @kbd{M-x shell}. You can also 484 @kbd{C-x @key{RET} c} immediately before @kbd{M-x shell}. You can
483 specify a coding system after starting the shell by using @kbd{C-x 485 also change the coding system for a running subshell by typing
484 @key{RET} p} in the shell buffer. @xref{Communication Coding}. 486 @kbd{C-x @key{RET} p} in the shell buffer. @xref{Communication
487 Coding}.
485 488
486 @cindex @env{EMACS} environment variable 489 @cindex @env{EMACS} environment variable
487 Unless the environment variable @env{EMACS} is already defined, 490 Unless the environment variable @env{EMACS} is already defined,
488 Emacs defines it in the subshell, with value @code{t}. A shell script 491 Emacs defines it in the subshell, with value @code{t}. A shell script
489 can check this variable to determine whether it has been run from an 492 can check this variable to determine whether it has been run from an
503 @table @kbd 506 @table @kbd
504 @item @key{RET} 507 @item @key{RET}
505 @kindex RET @r{(Shell mode)} 508 @kindex RET @r{(Shell mode)}
506 @findex comint-send-input 509 @findex comint-send-input
507 At end of buffer send line as input; otherwise, copy current line to 510 At end of buffer send line as input; otherwise, copy current line to
508 end of buffer and send it (@code{comint-send-input}). When a line is 511 end of buffer and send it (@code{comint-send-input}). Copying a line
509 copied, any prompt at the beginning of the line (text output by 512 in this way omits any prompt at the beginning of the line (text output
510 programs preceding your input) is omitted. @xref{Shell Prompts}, for 513 by programs preceding your input). @xref{Shell Prompts}, for how
511 how Shell mode recognizes prompts. 514 Shell mode recognizes prompts.
512 515
513 @item @key{TAB} 516 @item @key{TAB}
514 @kindex TAB @r{(Shell mode)} 517 @kindex TAB @r{(Shell mode)}
515 @findex comint-dynamic-complete 518 @findex comint-dynamic-complete
516 Complete the command name or file name before point in the shell buffer 519 Complete the command name or file name before point in the shell buffer
2183 @findex wordstar-mode 2186 @findex wordstar-mode
2184 @kbd{M-x wordstar-mode} provides a major mode with WordStar-like 2187 @kbd{M-x wordstar-mode} provides a major mode with WordStar-like
2185 key bindings. 2188 key bindings.
2186 @end table 2189 @end table
2187 2190
2188 @node Hyperlinking, Dissociated Press, Emulation, Top 2191 @node Hyperlinking, Thumbnails, Emulation, Top
2189 @section Hyperlinking and Navigation Features 2192 @section Hyperlinking and Navigation Features
2190 2193
2191 @cindex hyperlinking 2194 @cindex hyperlinking
2192 @cindex navigation 2195 @cindex navigation
2193 Various modes documented elsewhere have hypertext features so that 2196 Various modes documented elsewhere have hypertext features so that
2349 @kindex C-S-Mouse-3 @r{(FFAP)} 2352 @kindex C-S-Mouse-3 @r{(FFAP)}
2350 Display a menu of files and URLs mentioned in current buffer, then 2353 Display a menu of files and URLs mentioned in current buffer, then
2351 find the one you select (@code{ffap-menu}). 2354 find the one you select (@code{ffap-menu}).
2352 @end table 2355 @end table
2353 2356
2354 @node Dissociated Press, Amusements, Hyperlinking, Top 2357 @node Thumbnails, Dissociated Press, Hyperlinking, Top
2358 @section Viewing Images as Thumbnails
2359 @cindex tumme mode
2360 @cindex thumbnails
2361
2362 Tumme is a facility for browsing image files. It provides viewing
2363 of the original file, either as a thumbnail or in full size, inside
2364 Emacs or in an external viewer.
2365
2366 To enter Tumme, type @kbd{M-x tumme}. It prompts for a directory;
2367 specify one that has images files. This creates thumbnails for all
2368 the images in that directory, and displays them all in the ``thumbnail
2369 buffer''. This takes a long time if the directory contains many image
2370 files, and it won't operate if the number of image files exceeds
2371 @code{tumme-show-all-from-dir-max-files}.
2372
2373 @kindex C-t d @r{(Tumme)}
2374 @findex tumme-display-thumbs
2375 You can also enter Tumme through Dired. Mark the image files you
2376 want to look at, using @kbd{m} as usual, then type @kbd{C-t d}
2377 (@code{tumme-display-thumbs}). This too creates and switches to
2378 a buffer containing thumbnails, corresponding to the marked files.
2379
2380 With point in the thumbnail buffer, type @kbd{RET}
2381 (@code{tumme-display-thumbnail-original-image}) to display a sized
2382 version of it in another window. This sizes the image to fit the
2383 window. Use the arrow keys to move around in the buffer. For easy
2384 browing, type @kbd{SPC} (@code{tumme-display-next-thumbnail-original})
2385 to advance and display the next image. Typing @kbd{DEL}
2386 (@code{tumme-display-previous-thumbnail-original}) backs up to the
2387 previous thumbnail and displays that instead.
2388
2389 @vindex tumme-external-viewer
2390 To view and the image in its original size, either provide a prefix
2391 argument (@kbd{C-u}) before pressing @kbd{RET}, or type @kbd{C-@key{RET}}
2392 (@code{tumme-thumbnail-display-external}) to display the image in an
2393 external viewer. You must first configure
2394 @code{tumme-external-viewer}.
2395
2396 You can delete images through Tumme also. Type @kbd{d}
2397 (@code{tumme-flag-thumb-original-file}) to flag the image file for
2398 deletion in the Dired buffer. You can also delete the thumbnail image
2399 from the thumbnail buffer with @kbd{C-d} (@code{tumme-delete-char}).
2400
2401 More advanced features include @dfn{image tags}, which are metadata
2402 used to categorize image files. The tags are stored in a plain text
2403 file.
2404 @c ??? What is the file name?
2405
2406 To tag image files, mark them in the dired buffer and type @kbd{C-t
2407 t} (@code{tumme-tag-files}). You will be prompted for a tag. To mark
2408 files having a certain tag, type @kbd{C-t f}
2409 (@code{tumme-mark-tagged-files}). After marking image files with a
2410 certain tag, you can use @kbd{C-t d} to view them.
2411
2412 @c ??? Remove what? The tag?
2413 You can also tag a file from the thumbnail buffer by typing @kbd{t
2414 t} and remove it by typing @kbd{t r}. There is also a special ``tag''
2415 called ``comment'' for each file (it is not a tag in the exact same
2416 sense as the other tags, it is handled slightly different). That is
2417 used to enter a comment or description about the image. You comment a
2418 file from the thumbnail buffer by typing @kbd{c}. You will be
2419 prompted for a comment. Type @kbd{C-t c} to add a comment from Dired
2420 (@code{tumme-dired-comment-files}).
2421
2422 Tumme also provides simple image manipulation. In the thumbnail
2423 buffer, type @kbd{L} to rotate the original image 90 degrees anti
2424 clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This
2425 rotation is lossless, and uses an external utility called JpegTRAN.
2426
2427 @node Dissociated Press, Amusements, Thumbnails, Top
2355 @section Dissociated Press 2428 @section Dissociated Press
2356 2429
2357 @findex dissociated-press 2430 @findex dissociated-press
2358 @kbd{M-x dissociated-press} is a command for scrambling a file of text 2431 @kbd{M-x dissociated-press} is a command for scrambling a file of text
2359 either word by word or character by character. Starting from a buffer of 2432 either word by word or character by character. Starting from a buffer of
2374 one run of consecutive words or characters and the start of the next. 2447 one run of consecutive words or characters and the start of the next.
2375 That is, if it has just output `president' and then decides to jump 2448 That is, if it has just output `president' and then decides to jump
2376 to a different point in the file, it might spot the `ent' in `pentagon' 2449 to a different point in the file, it might spot the `ent' in `pentagon'
2377 and continue from there, producing `presidentagon'.@footnote{This 2450 and continue from there, producing `presidentagon'.@footnote{This
2378 dissociword actually appeared during the Vietnam War, when it was very 2451 dissociword actually appeared during the Vietnam War, when it was very
2379 appropriate.} Long sample texts produce the best results. 2452 appropriate. Bush has made it appropriate again.} Long sample texts
2453 produce the best results.
2380 2454
2381 @cindex againformation 2455 @cindex againformation
2382 A positive argument to @kbd{M-x dissociated-press} tells it to operate 2456 A positive argument to @kbd{M-x dissociated-press} tells it to operate
2383 character by character, and specifies the number of overlap characters. A 2457 character by character, and specifies the number of overlap characters. A
2384 negative argument tells it to operate word by word and specifies the number 2458 negative argument tells it to operate word by word, and specifies the number
2385 of overlap words. In this mode, whole words are treated as the elements to 2459 of overlap words. In this mode, whole words are treated as the elements to
2386 be permuted, rather than characters. No argument is equivalent to an 2460 be permuted, rather than characters. No argument is equivalent to an
2387 argument of two. For your againformation, the output goes only into the 2461 argument of two. For your againformation, the output goes only into the
2388 buffer @samp{*Dissociation*}. The buffer you start with is not changed. 2462 buffer @samp{*Dissociation*}. The buffer you start with is not changed.
2389 2463
2390 @cindex Markov chain 2464 @cindex Markov chain
2391 @cindex ignoriginal 2465 @cindex ignoriginal
2392 @cindex techniquitous 2466 @cindex techniquitous
2393 Dissociated Press produces nearly the same results as a Markov chain 2467 Dissociated Press produces results fairly like those of a Markov
2394 based on a frequency table constructed from the sample text. It is, 2468 chain based on a frequency table constructed from the sample text. It
2395 however, an independent, ignoriginal invention. Dissociated Press 2469 is, however, an independent, ignoriginal invention. Dissociated Press
2396 techniquitously copies several consecutive characters from the sample 2470 techniquitously copies several consecutive characters from the sample
2397 between random choices, whereas a Markov chain would choose randomly for 2471 between random choices, whereas a Markov chain would choose randomly
2398 each word or character. This makes for more plausible sounding results, 2472 for each word or character. This makes for more plausible sounding
2399 and runs faster. 2473 results, and runs faster.
2400 2474
2401 @cindex outragedy 2475 @cindex outragedy
2402 @cindex buggestion 2476 @cindex buggestion
2403 @cindex properbose 2477 @cindex properbose
2404 @cindex mustatement 2478 @cindex mustatement
2405 @cindex developediment 2479 @cindex developediment
2406 @cindex userenced 2480 @cindex userenced
2407 It is a mustatement that too much use of Dissociated Press can be a 2481 It is a mustatement that too much use of Dissociated Press can be a
2408 developediment to your real work. Sometimes to the point of outragedy. 2482 developediment to your real work, sometimes to the point of outragedy.
2409 And keep dissociwords out of your documentation, if you want it to be well 2483 And keep dissociwords out of your documentation, if you want it to be well
2410 userenced and properbose. Have fun. Your buggestions are welcome. 2484 userenced and properbose. Have fun. Your buggestions are welcome.
2411 2485
2412 @node Amusements, Customization, Dissociated Press, Top 2486 @node Amusements, Customization, Dissociated Press, Top
2413 @section Other Amusements 2487 @section Other Amusements
2427 2501
2428 @findex blackbox 2502 @findex blackbox
2429 @findex mpuz 2503 @findex mpuz
2430 @findex 5x5 2504 @findex 5x5
2431 @cindex puzzles 2505 @cindex puzzles
2432 @kbd{M-x blackbox}, @kbd{M-x mpuz} and @kbd{M-x 5x5} are kinds of puzzles. 2506 @kbd{M-x blackbox}, @kbd{M-x mpuz} and @kbd{M-x 5x5} are puzzles.
2433 @code{blackbox} challenges you to determine the location of objects 2507 @code{blackbox} challenges you to determine the location of objects
2434 inside a box by tomography. @code{mpuz} displays a multiplication 2508 inside a box by tomography. @code{mpuz} displays a multiplication
2435 puzzle with letters standing for digits in a code that you must 2509 puzzle with letters standing for digits in a code that you must
2436 guess---to guess a value, type a letter and then the digit you think it 2510 guess---to guess a value, type a letter and then the digit you think it
2437 stands for. The aim of @code{5x5} is to fill in all the squares. 2511 stands for. The aim of @code{5x5} is to fill in all the squares.