diff options
| author | Dave Love | 2000-08-16 19:01:51 +0000 |
|---|---|---|
| committer | Dave Love | 2000-08-16 19:01:51 +0000 |
| commit | b1a92ebfab0f2a6d155cf9cc1c33babd4befccce (patch) | |
| tree | c981e69e38ff760fa98d5d18e1661722a2419f9c | |
| parent | bdb6b1e156931ddd89eb77fd53af27bdf53d2b4d (diff) | |
| download | emacs-b1a92ebfab0f2a6d155cf9cc1c33babd4befccce.tar.gz emacs-b1a92ebfab0f2a6d155cf9cc1c33babd4befccce.zip | |
(Emacs Server): emacs.bash
(Emulation): crisp, pc-bindings, pc-selection tweaks.
(Hyperlinking): Redo into subsections, &c.
(Amusements): Decipher, morse, pong, studlify
| -rw-r--r-- | man/misc.texi | 225 |
1 files changed, 167 insertions, 58 deletions
diff --git a/man/misc.texi b/man/misc.texi index bc9a913629d..a2f490af3f8 100644 --- a/man/misc.texi +++ b/man/misc.texi | |||
| @@ -1191,6 +1191,11 @@ EDITOR="emacsclient --alternate-editor vi +%d %s" | |||
| 1191 | The environment variable @var{ALTERNATE_EDITOR} has the same effect, but | 1191 | The environment variable @var{ALTERNATE_EDITOR} has the same effect, but |
| 1192 | the value of the @samp{--alternate-editor} takes precedence. | 1192 | the value of the @samp{--alternate-editor} takes precedence. |
| 1193 | 1193 | ||
| 1194 | @pindex emacs.bash | ||
| 1195 | Alternatively, the file @file{etc/emacs.bash} defines a function for | ||
| 1196 | @command{bash} which will use a running Emacs server or start one if | ||
| 1197 | none exists. | ||
| 1198 | |||
| 1194 | @menu | 1199 | @menu |
| 1195 | * Invoking emacsclient:: | 1200 | * Invoking emacsclient:: |
| 1196 | @end menu | 1201 | @end menu |
| @@ -1875,13 +1880,15 @@ editors. Standard facilities can emulate these: | |||
| 1875 | @findex crisp-mode | 1880 | @findex crisp-mode |
| 1876 | @vindex crisp-override-meta-x | 1881 | @vindex crisp-override-meta-x |
| 1877 | @findex scroll-all-mode | 1882 | @findex scroll-all-mode |
| 1878 | Turn on keybindings to emulate the CRiSP/Brief editor with @kbd{M-x | 1883 | @cindex CRiSP mode |
| 1879 | crisp-mode}. Note that this rebinds @kbd{M-x} to exit Emacs unless you | 1884 | @cindex Brief emulation |
| 1880 | change the user option @code{crisp-override-meta-x}. You can also load | 1885 | @cindex mode, CRiSP |
| 1881 | the @code{scroll-all} package to emulate CRiSP's scroll-all feature | 1886 | You can turn on keybindings to emulate the CRiSP/Brief editor with |
| 1882 | (scrolling all windows together). Do this either with @kbd{M-x | 1887 | @kbd{M-x crisp-mode}. Note that this rebinds @kbd{M-x} to exit Emacs |
| 1883 | scroll-all-mode} or set the user option @code{crisp-load-scroll-all} to | 1888 | unless you change the user option @code{crisp-override-meta-x}. You can |
| 1884 | load it along with @code{crisp-mode}. | 1889 | also use the command @kbd{M-x scroll-all-mode} or set the user option |
| 1890 | @code{crisp-load-scroll-all} to emulate CRiSP's scroll-all feature | ||
| 1891 | (scrolling all windows together). | ||
| 1885 | 1892 | ||
| 1886 | @item EDT (DEC VMS editor) | 1893 | @item EDT (DEC VMS editor) |
| 1887 | @findex edt-emulation-on | 1894 | @findex edt-emulation-on |
| @@ -1896,17 +1903,22 @@ buffers or major modes while in EDT emulation. | |||
| 1896 | 1903 | ||
| 1897 | @item `PC' bindings | 1904 | @item `PC' bindings |
| 1898 | @findex pc-bindings-mode | 1905 | @findex pc-bindings-mode |
| 1899 | @kbd{M-x pc-bindings-mode} sets up certain key bindings for `PC | 1906 | @cindex `PC' key bindings |
| 1900 | compatibility'---what people are often used to on PCs---as follows: | 1907 | The command @kbd{M-x pc-bindings-mode} sets up certain key bindings for |
| 1908 | `PC compatibility'---what people are often used to on PCs---as follows: | ||
| 1901 | @kbd{Delete} and its variants) delete forward instead of backward, | 1909 | @kbd{Delete} and its variants) delete forward instead of backward, |
| 1902 | @kbd{C-Backspace} kills backward a word (as @kbd{C-Delete} normally | 1910 | @kbd{C-Backspace} kills backward a word (as @kbd{C-Delete} normally |
| 1903 | would), @kbd{M-Backspace} does undo, @kbd{Home} and @kbd{End} move to | 1911 | would), @kbd{M-Backspace} does undo, @kbd{Home} and @kbd{End} move to |
| 1904 | beginning and end of line, @kbd{C-Home} and @kbd{C-End} move to | 1912 | beginning and end of line, @kbd{C-Home} and @kbd{C-End} move to |
| 1905 | beginning and end of buffer and @kbd{C-Escape} does @code{list-buffers}. | 1913 | beginning and end of buffer and @kbd{C-Escape} does @code{list-buffers}. |
| 1906 | 1914 | ||
| 1907 | @item PC selection mode | 1915 | @item PC Selection mode |
| 1908 | @findex pc-selection-mode | 1916 | @findex pc-selection-mode |
| 1909 | @kbd{M-x pc-selction-mode} emulates the mark, copy, cut and paste | 1917 | @cindex PC Selection minor mode |
| 1918 | @cindex mode, PC selection | ||
| 1919 | @cindex selection, `PC' | ||
| 1920 | The command @kbd{M-x pc-selction-mode} turns on a global minor mode | ||
| 1921 | which emulates the mark, copy, cut and paste | ||
| 1910 | look-and-feel of Motif programs (which is the same as the Macintosh GUI | 1922 | look-and-feel of Motif programs (which is the same as the Macintosh GUI |
| 1911 | and MS-Windows). It makes the keybindings of PC mode and also modifies | 1923 | and MS-Windows). It makes the keybindings of PC mode and also modifies |
| 1912 | the bindings of the cursor keys and the @kbd{next}, @kbd{prior}, | 1924 | the bindings of the cursor keys and the @kbd{next}, @kbd{prior}, |
| @@ -1983,72 +1995,161 @@ keybindings. | |||
| 1983 | Various modes documented elsewhere have hypertext features whereby you | 1995 | Various modes documented elsewhere have hypertext features whereby you |
| 1984 | can follow links, usually with @kbd{mouse-2} or @kbd{RET} on the text of | 1996 | can follow links, usually with @kbd{mouse-2} or @kbd{RET} on the text of |
| 1985 | the link. Info mode, Help mode and the Dired-like modes are examples. | 1997 | the link. Info mode, Help mode and the Dired-like modes are examples. |
| 1986 | The Tags facility (@pxref{Tags}) links between source files. | 1998 | The Tags facility links between uses and definitions in source files, |
| 1999 | see @ref{Tags}. Imenu provides navigation amongst items indexed in the | ||
| 2000 | current buffer, see @ref{Imenu}. Info-lookup provides mode-specific | ||
| 2001 | lookup of definitions in Info indexes, see @ref{Documentation}. | ||
| 2002 | Speedbar maintains a frame in which links to files, and locations in | ||
| 2003 | files are displayed, see @ref{Speedbar}. | ||
| 1987 | 2004 | ||
| 1988 | Other non-mode-specific facilities are available to follow links from | 2005 | Other non-mode-specific facilities described in this section enable |
| 1989 | the current buffer in a context-sensitive fashion. | 2006 | following links from the current buffer in a context-sensitive fashion. |
| 1990 | 2007 | ||
| 1991 | @table @asis | 2008 | @menu |
| 1992 | @item Browse-URL (follow URLs) | 2009 | * Browse-URL:: Following URLs. |
| 2010 | * Goto-address:: Activating URLs. | ||
| 2011 | * FFAP:: Finding files etc. at point. | ||
| 2012 | * Find-func:: Finding function and variable definitions. | ||
| 2013 | @end menu | ||
| 2014 | |||
| 2015 | @node Browse-URL | ||
| 2016 | @subsection Following URLs | ||
| 1993 | @cindex World Wide Web | 2017 | @cindex World Wide Web |
| 2018 | @cindex Web | ||
| 1994 | @findex browse-url | 2019 | @findex browse-url |
| 1995 | @findex browse-url-at-point | 2020 | @findex browse-url-at-point |
| 1996 | @findex browse-url-at-mouse | 2021 | @findex browse-url-at-mouse |
| 1997 | @vindex browse-url-browser-function | ||
| 1998 | @cindex Browse-URL | 2022 | @cindex Browse-URL |
| 1999 | @cindex URLs | 2023 | @cindex URLs |
| 2024 | |||
| 2025 | @table @kbd | ||
| 2026 | @item M-x browse-url @key{RET} @var{url} @key{ret} | ||
| 2027 | Load a URL into a Web browser. | ||
| 2028 | @end table | ||
| 2029 | |||
| 2000 | The Browse-URL package provides facilities for following URLs specifying | 2030 | The Browse-URL package provides facilities for following URLs specifying |
| 2001 | links on the World Wide Web. Usually this works by invoking a web | 2031 | links on the World Wide Web. Usually this works by invoking a web |
| 2002 | browser, but you can, for instance, invoke @code{compose-mail} from | 2032 | browser but you can, for instance, arrange to invoke @code{compose-mail} |
| 2003 | @samp{mailto:} URLs. Packages such as Gnus may make active links from | 2033 | from @samp{mailto:} URLs. Packages such as Gnus may make active links |
| 2004 | URLs themselves. Otherwise you can use @kbd{M-x browse-url} to follow a | 2034 | from URLs themselves. Otherwise you can use @kbd{M-x browse-url} to |
| 2005 | link, defaulting to the URL at point. Other commands are available | 2035 | follow a link, defaulting to the URL at point. Other commands are |
| 2006 | which you might like to bind to keys, such as @code{browse-url-at-point} | 2036 | available which you might like to bind to keys, such as |
| 2007 | and @code{browse-url-at-mouse}. | 2037 | @code{browse-url-at-point} and @code{browse-url-at-mouse}. |
| 2008 | 2038 | ||
| 2039 | @vindex browse-url-browser-function | ||
| 2009 | You can customize Browse-URL's behaviour via various options in the | 2040 | You can customize Browse-URL's behaviour via various options in the |
| 2010 | @samp{browse-url} Customize group, particularly | 2041 | @code{browse-url} Customize group, particularly |
| 2011 | @code{browse-url-browser-function}. You can invoke actions dependent on | 2042 | @code{browse-url-browser-function}. You can invoke actions dependent on |
| 2012 | the type of URL by defining @code{browse-url-browser-function} as an | 2043 | the type of URL by defining @code{browse-url-browser-function} as an |
| 2013 | association list. The package's commentary available via @kbd{C-h p} | 2044 | association list. The package's commentary available via @kbd{C-h p} |
| 2014 | provides more information. Packages with facilities for following URLs | 2045 | provides more information. Packages with facilities for following URLs |
| 2015 | generally should use Browse-URL, so customizing the Browse-URL group | 2046 | should use Browse-URL, so customizing options in the @code{browse-url} |
| 2016 | should be sufficient to determine how they all work. | 2047 | group should be sufficient to determine how they all work in that |
| 2048 | respect. | ||
| 2017 | 2049 | ||
| 2018 | @item Goto-address (activate URLs) | 2050 | @node Goto-address |
| 2051 | @subsection Activating URLs | ||
| 2019 | @findex goto-address | 2052 | @findex goto-address |
| 2020 | @cindex Goto-address | 2053 | @cindex Goto-address |
| 2021 | @cindex URLs, activating | 2054 | @cindex URLs, activating |
| 2055 | |||
| 2056 | @table @kbd | ||
| 2057 | @item M-x goto-address | ||
| 2058 | Activate URLs and e-mail addresses in the current buffer. | ||
| 2059 | @end table | ||
| 2060 | |||
| 2022 | You can arrange to activate URLs in any buffer with @kbd{M-x | 2061 | You can arrange to activate URLs in any buffer with @kbd{M-x |
| 2023 | goto-address}. It may be useful to add @code{goto-address} to hooks | 2062 | goto-address}. It may be useful to add @code{goto-address} to hooks |
| 2024 | invoked when buffers are displayed in particular modes. | 2063 | invoked when buffers are displayed in particular modes. |
| 2025 | @code{rmail-show-message-hook} is the appropriate hook if you use Rmail, | 2064 | @code{rmail-show-message-hook} is the appropriate hook if you use Rmail, |
| 2026 | or @code{mh-show-mode-hook} if you use MH. | 2065 | or @code{mh-show-mode-hook} if you use MH. |
| 2027 | 2066 | ||
| 2028 | @item FFAP (find at point) | 2067 | @node FFAP |
| 2068 | @subsection Finding Files and URLs at Point | ||
| 2029 | @findex ffap | 2069 | @findex ffap |
| 2030 | @findex find-file-at-point | 2070 | @findex find-file-at-point |
| 2031 | @findex ffap | 2071 | @findex ffap |
| 2032 | @findex ffap-bindings | 2072 | @findex ffap-dired-at-point |
| 2073 | @findex ffap-next | ||
| 2074 | @findex ffap-menu | ||
| 2033 | @cindex FFAP | 2075 | @cindex FFAP |
| 2034 | The package @samp{ffap} provides functions for finding files and URLs at | 2076 | @cindex URLs |
| 2035 | point. Specifically, @code{find-file-at-point} (abbreviated as | 2077 | @cindex finding file at point |
| 2036 | @code{ffap}) can be used as as replacement for @kbd{M-x find-file}. A | 2078 | |
| 2037 | set of default bindings can be set up by the function | 2079 | @table @kbd |
| 2038 | @code{ffap-bindings}. The package's commentary available via @kbd{C-h | 2080 | @item M-x ffap @key{RET} @var{filename} @key{RET} |
| 2039 | p} provides more information. | 2081 | Find @var{filename}, guessing a default from text around point. |
| 2040 | 2082 | @item M-x ffap-next | |
| 2041 | @item Find-func (find function and variable definitions) | 2083 | Search buffer for next file or URL, and run `ffap'. With single prefix |
| 2084 | arg, search backwards, with double arg wrap search forwards, with triple | ||
| 2085 | arg wrap search backwards. | ||
| 2086 | @item M-x ffap-menu | ||
| 2087 | Put up a menu of files and URLs mentioned in current buffer and try to | ||
| 2088 | fetch the selected one. | ||
| 2089 | @item M-x ffap-dired-at-point | ||
| 2090 | Start Dired, defaulting to file at point. | ||
| 2091 | @end table | ||
| 2092 | |||
| 2093 | The command @kbd{M-x find-file-at-point} (or @kbd{M-x ffap}) can be used | ||
| 2094 | as a replacement for @kbd{M-x find-file}. With a prefix argument it | ||
| 2095 | behaves as @kbd{M-x find-file}. Otherwise it tries to guess a default | ||
| 2096 | file or URL from the text around point. In the case of a URL, it will | ||
| 2097 | invoke @code{browse-url} rather than finding a file. This is useful for | ||
| 2098 | following references in mail or news buffers, @file{README}s, | ||
| 2099 | @file{MANIFEST}s, and so on. The @samp{ffap} package's | ||
| 2100 | commentary available via @kbd{C-h p} and the @code{ffap} Custom group | ||
| 2101 | provide details. | ||
| 2102 | |||
| 2103 | @cindex FFAP minor mode | ||
| 2104 | @findex ffap-mode | ||
| 2105 | You can turn on FFAP minor mode to make the following key bindings and | ||
| 2106 | to install hooks for using @code{ffap} in Rmail, Gnus and VM article | ||
| 2107 | buffers. | ||
| 2108 | |||
| 2109 | @table @kbd | ||
| 2110 | @item C-x C-f | ||
| 2111 | @kindex C-x C-f @r{(FFAP)} | ||
| 2112 | @kbd{find-file-at-point}; | ||
| 2113 | @item C-x 4 f | ||
| 2114 | @kindex C-x 4 f @r{(FFAP)} | ||
| 2115 | @code{ffap-other-window}, analagous to @kbd{M-x find-file-other-window}; | ||
| 2116 | @item C-x 5 f | ||
| 2117 | @kindex C-x 5 f @r{(FFAP)} | ||
| 2118 | @code{ffap-other-frame}, analagous to @kbd{M-x find-file-other-frame}; | ||
| 2119 | @item C-x d | ||
| 2120 | @kindex C-x d @r{(FFAP)} | ||
| 2121 | @code{ffap-dired-at-point}, analogous to @kbd{M-x dired}; | ||
| 2122 | @item S-mouse-3 | ||
| 2123 | @kindex S-mouse-3 @r{(FFAP)} | ||
| 2124 | @code{ffap-at-mouse} finds the file guessed from text around the position | ||
| 2125 | of a mouse click; | ||
| 2126 | @item C-S-mouse-3 | ||
| 2127 | @kindex C-S-mouse-3 @r{(FFAP)} | ||
| 2128 | @code{ffap-menu} puts up a selectable menu of files and URLs mentioned in | ||
| 2129 | the current buffer. | ||
| 2130 | @end table | ||
| 2131 | |||
| 2132 | @node Find-func | ||
| 2133 | @subsection Finding Function and Variable Definitions | ||
| 2042 | @findex find-function | 2134 | @findex find-function |
| 2043 | @findex find-function-on-key | 2135 | @findex find-function-on-key |
| 2044 | @findex find-variable | 2136 | @findex find-variable |
| 2045 | @findex auto-compression-mode | ||
| 2046 | @cindex examples of Lisp functions | 2137 | @cindex examples of Lisp functions |
| 2047 | @cindex Lisp examples | 2138 | @cindex Lisp examples |
| 2048 | @cindex Find-func | 2139 | @cindex Find-func |
| 2049 | @cindex Lisp definitions | 2140 | @cindex Lisp definitions |
| 2050 | @cindex definitions, locating in sources | 2141 | @cindex definitions, locating in sources |
| 2051 | @cindex tags | 2142 | @cindex tags |
| 2143 | |||
| 2144 | @table @kbd | ||
| 2145 | @item M-x find-function @key{RET} @var{function} @key{RET} | ||
| 2146 | Find the definition of the @var{function} at point. | ||
| 2147 | @item M-x find-variable @key{RET} @var{variable} @key{RET} | ||
| 2148 | Find the definition of the @var{variable} at point. | ||
| 2149 | @item M-x find-function-on-key @var{key} | ||
| 2150 | Find the definition of the function that @var{key} invokes. | ||
| 2151 | @end table | ||
| 2152 | |||
| 2052 | The Find-func package provides convenient facilities for finding the | 2153 | The Find-func package provides convenient facilities for finding the |
| 2053 | definitions of Emacs Lisp functions and variables. It has a somewhat | 2154 | definitions of Emacs Lisp functions and variables. It has a somewhat |
| 2054 | similar function to the Tags facility (@pxref{Tags}) but uses Emacs's | 2155 | similar function to the Tags facility (@pxref{Tags}) but uses Emacs's |
| @@ -2059,8 +2160,8 @@ the code actually running and doesn't require maintaining tags files. | |||
| 2059 | 2160 | ||
| 2060 | You need to have the Lisp source (@samp{.el}) files available on your | 2161 | You need to have the Lisp source (@samp{.el}) files available on your |
| 2061 | load path along with the compiled (@samp{.elc}) versions for this to | 2162 | load path along with the compiled (@samp{.elc}) versions for this to |
| 2062 | work. The sources may be compressed if you turn on | 2163 | work. You can use compressed source files if you turn on |
| 2063 | @samp{auto-compression-mode}. | 2164 | @code{auto-compression-mode}. |
| 2064 | 2165 | ||
| 2065 | The commands available include @kbd{M-x find-function} to find the | 2166 | The commands available include @kbd{M-x find-function} to find the |
| 2066 | definition of a named function, @kbd{find-function-on-key} to find the | 2167 | definition of a named function, @kbd{find-function-on-key} to find the |
| @@ -2072,24 +2173,6 @@ primitively in the Emacs layer implemented in C. | |||
| 2072 | Find-func is useful for finding examples of how to do things if you want | 2173 | Find-func is useful for finding examples of how to do things if you want |
| 2073 | to write an Emacs Lisp extension similar to some existing function. | 2174 | to write an Emacs Lisp extension similar to some existing function. |
| 2074 | 2175 | ||
| 2075 | @item Imenu (indexing in a buffer) | ||
| 2076 | The Imenu package provides navigation amongst items indexed in the current | ||
| 2077 | buffer. @xref{Imenu}. | ||
| 2078 | |||
| 2079 | @item Info-lookup (finding documentation of items) | ||
| 2080 | @cindex Info | ||
| 2081 | @cindex documentation lookup | ||
| 2082 | The Info-lookup package provides a major mode-sensitive facility for | ||
| 2083 | looking up definitions in Info indexes. @xref{Documentation}. | ||
| 2084 | |||
| 2085 | @item Speedbar (navigation bar) | ||
| 2086 | @findex speedbar | ||
| 2087 | @cindex browser | ||
| 2088 | Speedbar maintains a frame in which files, and locations in files are | ||
| 2089 | displayed. @xref{Speedbar}. | ||
| 2090 | |||
| 2091 | @end table | ||
| 2092 | |||
| 2093 | @node Dissociated Press, Amusements, Hyperlinking, Top | 2176 | @node Dissociated Press, Amusements, Hyperlinking, Top |
| 2094 | @section Dissociated Press | 2177 | @section Dissociated Press |
| 2095 | 2178 | ||
| @@ -2175,6 +2258,12 @@ puzzle with letters standing for digits in a code that you must | |||
| 2175 | guess---to guess a value, type a letter and then the digit you think it | 2258 | guess---to guess a value, type a letter and then the digit you think it |
| 2176 | stands for. The aim of @code{5x5} is to fill in all the squares. | 2259 | stands for. The aim of @code{5x5} is to fill in all the squares. |
| 2177 | 2260 | ||
| 2261 | @findex decipher | ||
| 2262 | @cindex ciphers | ||
| 2263 | @cindex cryptanalysis | ||
| 2264 | @kbd{M-x decipher} helps you to cryptanalyze a buffer which is encrypted | ||
| 2265 | in a simple monoalphabetic substitution cipher. | ||
| 2266 | |||
| 2178 | @findex dunnet | 2267 | @findex dunnet |
| 2179 | @kbd{M-x dunnet} runs an adventure-style exploration game, which is | 2268 | @kbd{M-x dunnet} runs an adventure-style exploration game, which is |
| 2180 | a bigger sort of puzzle. | 2269 | a bigger sort of puzzle. |
| @@ -2189,11 +2278,31 @@ unique olfactory cues from each of the four directions. | |||
| 2189 | @cindex Life | 2278 | @cindex Life |
| 2190 | @kbd{M-x life} runs Conway's `Life' cellular automaton. | 2279 | @kbd{M-x life} runs Conway's `Life' cellular automaton. |
| 2191 | 2280 | ||
| 2281 | @findex morse-region | ||
| 2282 | @findex unmorse-region | ||
| 2283 | @cindex Morse code | ||
| 2284 | @cindex --/---/.-./.../. | ||
| 2285 | @kbd{M-x morse-region} converts text in a region to Morse code and | ||
| 2286 | @kbd{M-x unmorse-region} converts it back. No cause for remorse. | ||
| 2287 | |||
| 2288 | @findex pong | ||
| 2289 | @cindex Pong game | ||
| 2290 | @kbd{M-x pong} plays an implementation of the game Pong, bouncing the | ||
| 2291 | ball off opposing bats. | ||
| 2292 | |||
| 2192 | @findex solitaire | 2293 | @findex solitaire |
| 2193 | @cindex solitaire | 2294 | @cindex solitaire |
| 2194 | @kbd{M-x solitaire} plays a game of solitaire in which you jump pegs | 2295 | @kbd{M-x solitaire} plays a game of solitaire in which you jump pegs |
| 2195 | across other pegs. | 2296 | across other pegs. |
| 2196 | 2297 | ||
| 2298 | @findex studlify-region | ||
| 2299 | @cindex StudlyCaps | ||
| 2300 | @kbd{M-x studlify-region} studlify-cases the region, that is | ||
| 2301 | |||
| 2302 | @example | ||
| 2303 | M-x stUdlIfY-RegioN stUdlIfY-CaSeS thE region. | ||
| 2304 | @end example | ||
| 2305 | |||
| 2197 | @findex tetris | 2306 | @findex tetris |
| 2198 | @cindex Tetris | 2307 | @cindex Tetris |
| 2199 | @kbd{M-x tetris} runs an implementation of the well-known Tetris game. | 2308 | @kbd{M-x tetris} runs an implementation of the well-known Tetris game. |