0
|
1 * Overview
|
|
2
|
|
3 This file demonstrates simple usage of the basic Hyperbole button-action
|
|
4 types and shows how Hyperbole can support a style of self-documenting,
|
|
5 interactive files. See the glossary in the Hyperbole Manual,
|
|
6 "(hyperbole.info)Glossary", if terms used here are unfamiliar to you.
|
|
7
|
|
8 * Smart Keys
|
|
9
|
|
10 Hyperbole provides two context-sensitive keys, the Action Key and the Assist
|
|
11 Key, jointly referred to as Smart Keys. The Action Key is the shift-middle
|
|
12 mouse button on a 3-button mouse or shift-left button on a two button mouse
|
|
13 or {M-RET} on your keyboard. The Assist Key is the shift-right mouse button
|
|
14 or {C-u M-RET}. (InfoDock users may also use the middle mouse button as the
|
|
15 Action Key.)
|
|
16
|
|
17 See also the later section, <(Smart Mouse Keys)>.
|
|
18
|
|
19
|
|
20 ** Button Activation and Help
|
|
21
|
|
22 This button prints the <(factorial)> of 5 in the minibuffer when activated
|
|
23 with the Action Key. (Once you have Hyperbole installed, just press the
|
|
24 Action Key on the word, <(factorial)>.) If you instead press the Assist Key,
|
|
25 you get help for the preceding button. The help provides a summary report of
|
|
26 the button. You will see that it utilizes the 'eval-elisp' action type. You
|
|
27 can also see who created it. Try it.
|
|
28
|
|
29 Note that the create-time and mod-time are displayed using your own
|
|
30 timezone but they are stored as universal times. So if you work with
|
|
31 people at other sites, you can mix their buttons with your own within
|
|
32 the same document and see one unified view of the modification times on
|
|
33 each button. These times will also be useful for sorting buttons by
|
|
34 time when such features are provided in future Hyperbole releases.
|
|
35
|
|
36 ** Smart Scrolling
|
|
37
|
|
38 By default, the variable smart-scroll-proportional is set to t (TRUE). This
|
|
39 makes a press of the Action Key at the end of a line scroll forward, so that
|
|
40 the current line is placed at the top of the window; the Assist Key does the
|
|
41 reverse when pressed at the end of line; it places the current line at the
|
|
42 bottom of the window. This is called proportional scrolling because the
|
|
43 amount of scrolling is relative to the point's position in the window. Try
|
|
44 it and then come back here.
|
|
45
|
|
46 Alternatively, if this variable is set to nil (FALSE), the Smart Keys scroll
|
|
47 forward or backward a windowful when at the end of a line, regardless of
|
|
48 which line point is on, just as {C-v} and {M-v} do.
|
|
49
|
|
50 Let's try windowful scrolling a bit. Click this button and then practice
|
|
51 scrolling: <(toggle-scroll-proportional)>. If you prefer the default
|
|
52 proportional scrolling, click on the previous button again to restore it.
|
|
53
|
|
54 If you always want windowful scrolling, you'll have to add a setting of
|
|
55 smart-scroll-proportional to your "~/.emacs" file after the point at which
|
|
56 you load Hyperbole or else set it as part of hyperb:init-hook, which executes
|
|
57 whenever Hyperbole is loaded, e.g.:
|
|
58
|
|
59 (setq hyperb:init-hook
|
|
60 (list (function (lambda () (setq smart-scroll-proportional nil)))))
|
|
61
|
|
62
|
|
63 ** Hyperbole Menus
|
|
64
|
|
65 To display the top-level Hyperbole menu, click the Action Key anywhere
|
|
66 within this paragraph or alternatively, use {C-h h}. Clicking within the
|
|
67 paragraph, applies the default operation, given by action-key-default-function,
|
|
68 since the Action Key finds no more specialized context. The default
|
|
69 operation happens to bring up the Hyperbole menu.
|
|
70
|
|
71 {q} or {C-g} will quit from the menu without invoking any commands if you
|
|
72 just want to take a look. A menu item is selected by pressing the Action Key
|
|
73 over it or by typing its first letter in upper or lower case.
|
|
74
|
|
75 A click of the Assist Key on a menu item gives help on it.
|
|
76
|
|
77
|
|
78 ** Help Buffers
|
|
79
|
|
80 Context-sensitive Action Key help typically is bound to {C-h A}. {C-u C-h A}
|
|
81 displays the same kind of help for the Assist Key. Try it.
|
|
82
|
|
83 Any buffer whose name ends in `Help*' is presumed to be a temporary buffer
|
|
84 that one wants to inspect and then remove from view. If you click either the
|
|
85 Action or Assist Key at the end of a help buffer, the buffer is buried from
|
|
86 view and your window configuration is restored to its state prior to
|
|
87 displaying the help. If you have removed the Smart Key help buffer, bring it
|
|
88 back. Then press one of the Smart Keys at its end to remove it. Note how
|
|
89 your window configuration is restored.
|
|
90
|
|
91 Remember that this works for any help buffer, whether or not Hyperbole
|
|
92 generated it.
|
|
93
|
|
94 * Explicit Button Samples
|
|
95
|
|
96 Hyperbole is pretty forgiving about the format of explicit buttons. For
|
|
97 example, all of the following represent the same button, as long as one
|
|
98 clicks on the *first* line of the button, within the button delimiters:
|
|
99
|
|
100 <(factorial button)>
|
|
101
|
|
102 <( factorial button)>
|
|
103
|
|
104 Pam> <(factorial
|
|
105 Pam> button)>
|
|
106
|
|
107 ;; <(factorial
|
|
108 ;; button)>
|
|
109
|
|
110 /* <( factorial */
|
|
111 /* button )> */
|
|
112
|
|
113
|
|
114 If your <(Info-directory-list)> or <(Info-directory)> variables include the
|
|
115 directory that contains the online GNU Emacs manual, activation of the
|
|
116 next button will tell you about <(keyboard macros)>. Can't remember a
|
|
117 Hyperbole term? Check out the Hyperbole Manual <(glossary)>.
|
|
118
|
|
119 Here is a <(keyboard macro)> button. It displays documentation for the first
|
|
120 Emacs Lisp function that follows it, e.g. (hbut:report). You can see that a
|
|
121 button label can consist of a number of words, up to a set <(maximum
|
|
122 length)>.
|
|
123
|
|
124 A <(shell command)> button can do many things, such as display the length of
|
|
125 this file. While such commands are executing, you can perform other
|
|
126 operations. If you create a button that runs a shell command which
|
|
127 displays its own window system window, i.e. a window outside of Emacs, use
|
|
128 'exec-window-cmd' rather than 'exec-shell-cmd' as its action type.
|
|
129
|
|
130 You can link to files such as your <(.login)> file. Or directories,
|
|
131 like the <(tmp directory)>. When creating file links, if the file you
|
|
132 are linking to is loaded in a buffer, you are prompted as to whether you
|
|
133 want the link to jump to the present point in that buffer. If so, the
|
|
134 link will always jump there, so position point within the referent file
|
|
135 to take advantage of this feature. Note how a separate window is used
|
|
136 when you activate file link buttons. Most basic Hyperbole action types
|
|
137 display their results in this manner.
|
|
138
|
|
139 You can make a button an alias for another by using the 'link-to-ebut'
|
|
140 action type. This <(factorial alias)> button does whatever the earlier
|
|
141 <(factorial)> button does.
|
|
142
|
|
143 The 'link-to-mail' action type allows you to reference mail messages
|
|
144 that you have stored away. We can't demonstrate it here since we don't
|
|
145 have the mail messages that you do.
|
|
146
|
|
147 Hyperbole buttons may also be embedded within mail messages. Even
|
|
148 buttons copied into mail replies can work:
|
|
149
|
|
150 Emile said:
|
|
151 >
|
|
152 > Hyperbole is better than home baked bread but not as filling.
|
|
153 > The following sample button displays a message, <(as long as
|
|
154 > you click within its first line)>.
|
|
155
|
|
156
|
|
157 * Implicit Button Samples
|
|
158
|
|
159 ** Key Sequence Buttons
|
|
160
|
|
161 Any Emacs key sequence delimited with braces may be executed by
|
|
162 activating it as a button, for example {C-u C-p} should leave point four
|
|
163 lines above the button line. A help request upon the key sequence
|
|
164 displays the documentation for its command binding, i.e. what it does.
|
|
165 If it does not represent a bound key sequence, it will not be
|
|
166 treated as a key sequence button.
|
|
167
|
|
168 ** Implicit Path Links
|
|
169
|
|
170 Any doubly quoted pathname acts as an implicit button that either displays the
|
|
171 referenced path within a buffer, passes it to an external viewer program, or
|
|
172 runs a function that operates upon the path. These are 'pathname' implicit
|
|
173 buttons. For example, activate "README".
|
|
174
|
|
175 Most pathnames simply link to the files that they name and so are simply
|
|
176 displayed for editing. The variable 'hpath:suffixes' is a list of filename
|
|
177 suffix strings that are added to or removed from pathnames when searching for
|
|
178 a match. "So if "README.gz" existed, the pathname button "README" would
|
|
179 display it. If you use the Emacs "crypt.el" package, then compressed files
|
|
180 will be uncompressed before they are displayed. Activate "README.gz" and
|
|
181 you'll see that the README file is displayed as desired.
|
|
182
|
|
183 The variable 'hpath:display-alist' contains pairs of pathname expressions and
|
|
184 edit functions. When a pathname matches an expression, the associated edit
|
|
185 function is invoked upon the pathname.
|
|
186
|
|
187 The variable 'hpath:find-alist' determines the file suffixes which should be
|
|
188 viewed with external programs. It also specifies the associated viewer
|
|
189 program for each different window system under which Hyperbole may be run.
|
|
190 See its documentation for more details. Under the X window system, for
|
|
191 example, if you have the 'xv' program, all of the following file formats may
|
|
192 be displayed as images: gif, tiff, xbm, pm, pbm, and jpeg.
|
|
193
|
|
194 Several prefix characters may be attached to pathnames to indicate that
|
|
195 a different action should be taken when the button is activated.
|
|
196 An exclamation point prefix indicates that the full pathname should be run
|
|
197 as a non-windowed shell program. For example, try "!/bin/date".
|
|
198 An ampersand prefix means run the full pathname as a windowed program, e.g.
|
|
199 "&/usr/bin/X11/xeyes". Finally, a hyphen indicates that the filename should
|
|
200 be evaluated as an Emacs Lisp program, e.g. "-hibtypes.elc", rather than
|
|
201 displayed.
|
|
202
|
|
203 If you use the ange-ftp or efs add-on to GNU Emacs, such remote pathnames
|
|
204 will work as well. (The latest version of ange-ftp may always be obtained
|
|
205 via anonymous ftp to:
|
|
206 "/anonymous@alpha.gnu.ai.mit.edu:ange-ftp/ange-ftp.tar.gz").
|
|
207
|
|
208 Once you have *loaded* the ange-ftp or the efs package (or you use a
|
|
209 version of Emacs 19 which autoloads ange-ftp), if you are on the
|
|
210 Internet, you can click on any of the following to browse the contents
|
|
211 of the Hyperbole distribution at the XEmacs Archive (limit the amount
|
|
212 you do this so as not to deny others access to the archive):
|
|
213
|
|
214 "/anonymous@ftp.xemacs.org:pub/infodock/"
|
|
215 /anonymous@128.174.252.16:/pub/infodock/
|
|
216 /ftp.xemacs.org:pub/infodock/
|
|
217
|
|
218 You can see that for ange-ftp/efs pathnames, Hyperbole recognizes them with
|
|
219 or without the double quote delimiters. These same pathnames can be used
|
|
220 within explicit buttons which link to files or directories. The HTML
|
|
221 (HyperText Markup Language) ftp pathname format used by World-Wide-Web
|
|
222 browsers is also recognized:
|
|
223
|
|
224 "ftp://ftp.xemacs.org/pub/infodock/
|
|
225
|
|
226
|
|
227 GNU Info (filename)node references such as "(hyperbole.info)Glossary" or
|
|
228 "(emacs)Glossary", work similarly, thanks to the 'Info-node' button type.
|
|
229 Try one of the Glossary buttons above.
|
|
230
|
|
231 If you want to quickly learn how to create explicit buttons, see
|
|
232 "(hyperbole.info)Drags" and "(hyperbole.info)Menus".
|
|
233
|
|
234 So now when browsing the many documents that refer to filenames or Info
|
|
235 nodes in this way, you can just click on the name to see the contents.
|
|
236 (If a doubly quoted string references a local pathname that does not
|
|
237 exist within the file system, it will not be considered a pathname
|
|
238 button by Hyperbole.) Pathname implicit buttons provide one example of
|
|
239 how Hyperbole can improve your working environment without you having to
|
|
240 do any work at all.
|
|
241
|
|
242
|
|
243 Hyperbole provides a history command which returns you to previous button
|
|
244 locations in the reverse order of the way you traverse them. You access it
|
|
245 by selecting the Hist command from the top-level Hyperbole menu, {C-h h h}.
|
|
246 Remember this because you will want to use that command to return to this
|
|
247 DEMO later.
|
|
248
|
|
249 Now suppose you want to browse through a number of files within the
|
|
250 Hyperbole distribution. You could use the Emacs dired subsystem,
|
|
251 "(emacs)Dired", but a faster way is to note that files named MANIFEST
|
|
252 and DIR are used to summarize the files in a directory, so we can use
|
|
253 each of their entries as an implicit button (of 'dir-summary' type) to
|
|
254 take us to the file.
|
|
255
|
|
256 Let's look at "MANIFEST". Now click anywhere within a line in the MANIFEST
|
|
257 file and you see that it is displayed as expected. (Remember to use the
|
|
258 Hyperbole history command to return here.) You can get help on these buttons
|
|
259 just like any others.
|
|
260
|
|
261 Table of contents entries in "README" files act similarly. Click on "README"
|
|
262 to view that file and then click on a table of contents entry to jump to the
|
|
263 associated section in the "README" file.
|
|
264
|
|
265 ** World-Wide-Web URL Buttons
|
|
266
|
|
267 If you use the w3 World-Wide-Web browser add-on to GNU Emacs, you can browse
|
|
268 URLs (universal resource locators) from within any buffer just as you would
|
|
269 any other implicit button, once you do some initial setup.
|
|
270
|
|
271 First you must ensure that you load the Hyperbole library that supports URL
|
|
272 viewing. Either your "hsite.el" file should require hsys-w3 as part of
|
|
273 'hibtypes:begin-load-hook' or you should move point after the following line
|
|
274 and hit {C-x C-e} to evaluate it.
|
|
275
|
|
276 (progn (require 'w3) (require 'hsys-w3))
|
|
277
|
|
278 Now try using the Action Key on:
|
|
279
|
|
280 "http://www.ncsa.uiuc.edu"
|
|
281
|
|
282 ** Grep, Occurrence, Debugger and Compiler Error Buttons, and Cscope Analyzer
|
|
283 Lines
|
|
284
|
|
285 The output of 'grep -n', the UNIX line pattern matcher, can be
|
|
286 activated as buttons that jump to each matched line within its source
|
|
287 file; use {M-x grep RET}.
|
|
288
|
|
289 Compiler error messages also serve as implicit buttons that jump to
|
|
290 associated source lines; use {M-x compile RET}. GDB, DBX or XDB stack frames
|
|
291 along with GDB breakpoint listing lines also link to source lines.
|
|
292
|
|
293 {M-x occur RET} (find matches in a single buffer) and {M-x moccur RET}
|
|
294 (find matches across multiple buffers and files) also produce implicit
|
|
295 button output that displays associated source lines.
|
|
296
|
|
297 If you have the Cscope C/C++ code analyzer from the AT&T Toolchest and have
|
|
298 loaded the cscope.el library add-on for GNU Emacs, then the output lines from
|
|
299 a cscope query serve as implicit buttons which jump to associated source
|
|
300 lines. Cscope goes beyond the basic Emacs tags facility to allow you to see
|
|
301 the callers of a function and the functions called by a specific routine.
|
|
302
|
|
303 ** Annotated Bibliography Buttons
|
|
304
|
|
305 Here's a use of an annotated bibliography reference implicit button
|
|
306 which allows you to see a bibliography entry such as [Stallman 87] when
|
|
307 you activate the button between brackets.
|
|
308
|
|
309 ** Completion Buttons
|
|
310
|
|
311 Often when Emacs or Hyperbole prompts for an argument in the
|
|
312 minibuffer, a list of possible argument completions is available by
|
|
313 pressing {?}. A single Action Key press on any of these completions
|
|
314 inserts it into the minibuffer for your inspection. A second press on
|
|
315 the same completion causes it to be used as the argument value and any
|
|
316 succeeding argument prompt is then displayed. Test this technique
|
|
317 with a {C-x C-f} (find-file) and then a {?}.
|
|
318
|
|
319 ** Hyperbole Source Buttons
|
|
320
|
|
321 If you ask for help on the [Stallman 87] button, the first line of the
|
|
322 help buffer will look like this:
|
|
323
|
|
324 @loc> "DEMO"
|
|
325
|
|
326 except it will contain the full pathname of the file. If the button
|
|
327 were embedded within a buffer without an attached file, the first line
|
|
328 of the help buffer might look like:
|
|
329
|
|
330 @loc> #<buffer *scratch*>
|
|
331
|
|
332 If you click on the buffer name, the buffer will be displayed just as a
|
|
333 file buffer would. This type of implicit button is called a
|
|
334 'hyp-source' button.
|
|
335
|
|
336 You can also activate any explicit buttons shown in a help buffer.
|
|
337
|
|
338 ** UNIX Man Apropos Buttons
|
|
339
|
|
340 Below are some lines output by the UNIX 'apropos' command (with a little
|
|
341 touchup for display purposes). A button activation anywhere within such
|
|
342 a line recognizes the line as an apropos entry and tries to display the
|
|
343 man page for the entry. Try it. (If you happen to use the 'superman'
|
|
344 package which fetches man pages in the background, you'll have to wait
|
|
345 for the next version of superman which removes incompatibilities with
|
|
346 the standard man page fetch command before you can use these
|
|
347 'man-apropos' implicit buttons.)
|
|
348
|
|
349 grep, egrep, fgrep (1V) - search a file for a string or regular expression
|
|
350 rm, rmdir (1) - remove (unlink) files or directories
|
|
351 touch (1V) - update the access and modification times of a file
|
|
352 cat (1V) - concatenate and display
|
|
353
|
|
354 ** Internet Request For Comments (RFC) Document Browsing
|
|
355
|
|
356 If you are on the Internet and you have the ange-ftp or efs remote file
|
|
357 handling package for GNU Emacs, you can retrieve and browse RFC documents
|
|
358 used in Internet standard-making. Simply use the Action Key on an RFC
|
|
359 document identifier, like RFC-822. Rfc822 and rfc 822 work as well. The
|
|
360 'rfc' implicit button type provides this service. The 'hpath:rfc' variable
|
|
361 specifies the location from which to retrieve RFCs.
|
|
362
|
|
363 Once you have retrieved an RFC, an Action Key press most anywhere within a
|
|
364 line typically will produce a table of contents summary of the RFC (via the
|
|
365 'rfc-toc' implicit button type). An Action Key press on any of the table of
|
|
366 contents lines then displays that section, for easy random access browsing.
|
|
367
|
|
368 ** Site-specific Online Library Document IDs
|
|
369
|
|
370 Hyperbole offers a powerful, yet easy to use facility for building online
|
|
371 libraries through the use of the 'doc-id' implicit button type. A document id
|
|
372 is used just like a reference citation in traditional publications but
|
|
373 it actually links to the document that it references and the card catalog
|
|
374 (index) entry for the document. One can easily pass around doc ids to point
|
|
375 people to appropriate documents. For example, a mail message in response to
|
|
376 a question might say, "See [Emacs-001] for examples of what Emacs can do."
|
|
377
|
|
378 Since the format and handling of document identifiers and their index entries
|
|
379 is site-specific, document id handling is not completely configured in a
|
|
380 default Hyperbole configuration. If you wish to setup this facility for
|
|
381 site or personal use, see the DESCRIPTION section in "hib-doc-id.el" for
|
|
382 installation and use information.
|
|
383
|
|
384
|
|
385 * Smart Mouse Keys
|
|
386
|
|
387 If you use Emacs with mouse support under the X window system, NeXTstep,
|
|
388 OpenWindows, SunView, or Apollo's DM window system, Hyperbole automatically
|
|
389 configures your mouse keys for use as Smart Keys and provides additional
|
|
390 display-oriented operations as demonstrated here.
|
|
391
|
|
392 See the Hyperbole menu item, Doc/SmartKy, for a summary of all Smart Key
|
|
393 operations. For extensive details on Smart Key operation, see the Hyperbole
|
|
394 manual section, "(hyperbole.info)Smart Key Reference".
|
|
395
|
|
396 When Hyperbole is installed, a key may be bound which allows you to
|
|
397 switch between the Smart Key mouse bindings and your prior ones. `C-h w
|
|
398 hmouse-toggle-bindings RTN' should show you any key which performs this
|
|
399 command. If no key binding has been established or if you prefer one of
|
|
400 your own, simply select a key and bind it within your "~/.emacs" file.
|
|
401 For example, (global-set-key "\C-ct" 'hmouse-toggle-bindings).
|
|
402
|
|
403
|
|
404 ** Context-sensitive Help
|
|
405
|
|
406 Since the Smart Keys perform different operations in different contexts, it
|
|
407 is important to have context-sensitive help available. The earlier section
|
|
408 on Help Buffers explained how to display such help from the keyboard. The
|
|
409 same help can be displayed using the mouse by depressing the Smart Key for
|
|
410 which you want help, performing any action necessary to register a context,
|
|
411 such as a drag motion, and then pressing the other Smart Key.
|
|
412
|
|
413 Here is an example. Depress the Action Key somewhere within this paragraph
|
|
414 and while holding it down, depress the Assist Key. Then release the keys in
|
|
415 any order and the help display will pop up. It explains that there was no
|
|
416 particular matching Smart Key context, so a default operation is performed
|
|
417 (the value of the variable 'action-key-default-function' determines the
|
|
418 operation performed).
|
|
419
|
|
420 ** Scrolling to the Beginning and End of Buffers
|
|
421
|
|
422 A left to right horizontal drag of the Action Key of 5 or more characters
|
|
423 scrolls the current buffer to its end (what {M->} does by default). A right
|
|
424 to left drag of the Action Key does the opposite; it scrolls to the buffer's
|
|
425 beginning (what {M-<} does by default). Try out these operations and then
|
|
426 use the Smart Key end of line scrolling capability to return here.
|
|
427
|
|
428 ** Creating and Deleting Windows
|
|
429
|
|
430 Horizontal and vertical drags of the Assist Key within a single window can be
|
|
431 used to create and delete Emacs windows.
|
|
432
|
|
433 A horizontal drag of five or more characters from left to right creates a new
|
|
434 window by splitting the current window into two windows, one on top of the
|
|
435 other. A horizontal drag from right to left deletes the current window. A
|
|
436 vertical drag in either direction splits the current window into two
|
|
437 side-by-side windows.
|
|
438
|
|
439 Let's try these. Remember to use your Assist Key. You need only move your
|
|
440 mouse pointer a few characters to register a drag. First, split this window
|
|
441 with a left to right drag, then delete either one of the windows with a right
|
|
442 to left drag.
|
|
443
|
|
444 Now try a side-by-side window split. Drag vertically in the up or down
|
|
445 direction three or more lines to split the window and then use a right to
|
|
446 left drag to delete either one of the side-by-side windows.
|
|
447
|
|
448 ** Resizing Windows
|
|
449
|
|
450 You can easily resize Emacs windows by dragging their window separators
|
|
451 (modelines or vertical side lines) within a frame. Simply depress either
|
|
452 Smart Key on a modeline or near a window side, hold it down while you drag to
|
|
453 a new location and then release. The window separator will then jump to the
|
|
454 location of release. Basically, just drag the window separator to where you
|
|
455 want it. If you want a single window to fill an entire frame, drag its
|
|
456 modeline, and if necessary its side, to the edge of the frame.
|
|
457
|
|
458 Did you follow all that? Let's try it to be sure. First, you need at least
|
|
459 two windows, so create a new one with the drag techniques you just learned.
|
|
460 Now drag with either Smart Key from the shared window edge to a new location.
|
|
461 See how both windows change size?
|
|
462
|
|
463 Try to drag the bottom modeline. You see that you can't.
|
|
464
|
|
465 ** Swapping Buffers
|
|
466
|
|
467 Swapping buffer locations is quick and easy with Hyperbole. Simply drag
|
|
468 from one window to another with the Assist Key.
|
|
469
|
|
470 Split the current window into two, one above the other. Drag the upper
|
|
471 modeline so that one window is clearly bigger than the other. Now try
|
|
472 dragging from inside one window to another with the Assist Key.
|
|
473
|
|
474 ** Modeline Clicks
|
|
475
|
|
476 Window modelines are treated specially be Hyperbole. They are broken up into
|
|
477 three regions, each with their own Smart Key operations. The regions are:
|
|
478 the left edge, the right edge, and the middle portion (the non-edge part of
|
|
479 the modeline). The edge regions are the left or rightmost three characters
|
|
480 of the modeline, by default.
|
|
481
|
|
482 *** Switching to Another Buffer
|
|
483
|
|
484 An Action Key click in the left edge of a modeline buries the current buffer,
|
|
485 i.e. puts it on the bottom of the buffer list and removes it from view, if it
|
|
486 is not the only available buffer. An Assist Key click in the left edge of a
|
|
487 modeline unburies the bottom buffer. Repeated clicks of either key allow you
|
|
488 to cycle through buffers to get to the one you want. Try this out.
|
|
489
|
|
490 *** Displaying Documentation
|
|
491
|
|
492 An Action Key click in the right edge of a modeline displays the Info manual
|
|
493 browsing system, see "(info)". Once in Info, you can click with your Action
|
|
494 Key to follow menu items, cross references, or to jump to Info nodes
|
|
495 referenced within the top header line of a node. Try browsing a bit and
|
|
496 while in Info display context-sensitive help for both the Action and Assist
|
|
497 Keys to see all that they can do.
|
|
498
|
|
499 If you click again with the Action Key on the right edge of the window
|
|
500 displaying Info, it will hide the Info buffer. Thus, it works as a toggle to
|
|
501 display or to hide the Info buffer. Try it.
|
|
502
|
|
503 A click of the Assist Key at the right edge of a modeline toggles between
|
|
504 display and removal of a Smart Key operation summary. To remove the summary,
|
|
505 you must click on the modeline of the window displaying the summary.
|
|
506
|
|
507
|
|
508 *** Buffer Menu Display
|
|
509
|
|
510 An Action Key click in the center portion of a modeline displays a buffer
|
|
511 menu, a summary of available buffers. An Action Key click on any buffer menu
|
|
512 line then displays that buffer.
|
|
513
|
|
514 This behavior is subject to change in the future if a more useful Action Key
|
|
515 operation is found for the middle of modelines.
|
|
516
|
|
517
|
|
518 ** Saving and Restoring Window Configurations
|
|
519
|
|
520 A window configuration consists of the set of windows within a single Emacs
|
|
521 frame. This includes their locations, buffers, and scrolled positions of
|
|
522 their buffers.
|
|
523
|
|
524 Hyperbole allows you to save and restore window configurations with simple
|
|
525 diagonal mouse drags within a single window. A diagonal drag in any
|
|
526 direction of the Action Key saves the current window configuration to a ring
|
|
527 of window configurations, just like the Emacs text kill ring. (See
|
|
528 "(Emacs)Kill Ring".) Each diagonal drag in any direction of the Assist Key
|
|
529 restores a prior saved window configuration from the ring. Window
|
|
530 configurations are restored in reverse order of the way they were saved.
|
|
531 Since a ring is circular, after the oldest element is restored, the newest
|
|
532 element will again be restored and so on.
|
|
533
|
|
534 If these operations are unclear to you, just forget about them and move on.
|
|
535 They are not necessary to enjoy the rest of Hyperbole. Otherwise, give them
|
|
536 a try by creating various window configurations and then saving and restoring
|
|
537 them.
|
|
538
|
|
539 * Outliner
|
|
540
|
|
541 The Hyperbole outliner only works under GNU Emacs version 19 or higher and
|
|
542 XEmacs version 19.9 or higher. You can tell whether you are running a
|
|
543 version of Emacs which supports the outliner by hitting
|
|
544 @{@kbd{C-h h}@} to display the Hyperbole menu. If you see an
|
|
545 @code{Otl/} entry in the menu, then the outliner is available.
|
|
546 Otherwise, the outliner does not work with your version of Emacs, so
|
|
547 this section of the DEMO will not be of interest to you.
|
|
548
|
|
549 The Hyperbole outliner produces structured, autonumbered documents
|
|
550 composed of hierarchies of cells. Each cell has two identifiers, a
|
|
551 relative autonumber indicating its present position within the outline
|
|
552 and a permanent identifier suitable for use within hyperlink references
|
|
553 to the cell.
|
|
554
|
|
555 If the outliner works in your Emacs, see "kotl/EXAMPLE.kotl", an outline file
|
|
556 that explains how to operate the outliner. Use the @code{Otl/Example} menu
|
|
557 entry to display this file. Additional documentation can be found in
|
|
558 "(hyperbole.info)Outliner". "(hyperbole.info)Outliner Keys"
|
|
559 summarizes in alphabetical order the outliner commands which are bound
|
|
560 to keys.
|
|
561
|
|
562
|
|
563 * References
|
|
564
|
|
565 [Stallman 87] Stallman, Richard. GNU Emacs Manual. Free Software
|
|
566 Foundation, Cambridge: MA, March 1987.
|
|
567
|
|
568 * THE END
|