comparison lisp/w3/FAQ @ 118:7d55a9ba150c r20-1b11

Import from CVS: tag r20-1b11
author cvs
date Mon, 13 Aug 2007 09:24:17 +0200
parents ec9a17fef872
children cca96a509cfe
comparison
equal deleted inserted replaced
117:578fd4947a72 118:7d55a9ba150c
1 Q: Options menu is ugly under Emacs 19 1 Q: Options menu is ugly under Emacs 19
2 A: Wait for 19.35 - this is because of a 'feature lack' in easymenu.el 2 A: Wait for 19.35 - this is because of a 'feature lack' in easymenu.el
3 3
4 Q: Animated GIFs cause XEmacs 19.14 or 20.0 to crash
5 A: There was a bug in the GIF decoding routines in XEmacs 19.14 - please
6 upgrade to XEmacs 19.15 or later.
7
4 Q: I get an error when starting up: 8 Q: I get an error when starting up:
5 Symbol's value as variable is void: widget-mouse-face 9 Symbol's function definition is void: custom-declare-group
6 A: This usually means you compiled W3 in an emacs that could not find 10 A: This usually means you compiled W3 in an emacs that could not find
7 the 'custom' package (or found an old version), but are running W3 11 the 'custom' package (or found an old version), but are running W3
8 in an emacs that find the new one. This is usually the case if you 12 in an emacs that find the new one. This is usually the case if you
9 have a recent version of GNUS installed in a non-standard place. 13 have a recent version of GNUS installed in a non-standard place.
10 14
11 Make sure that you can load the custom library when compiling 15 Make sure that you can load the custom library when compiling
12 emacs. Set the environment variable WIDGETDIR to where your custom 16 emacs. Set the environment variable WIDGETDIR to where your custom
13 library lives (ie: ~/lisp/gnus/lisp) 17 library lives (ie: ~/lisp/gnus/lisp)
18
19 Courtesy of greg stark <gsstark@mit.edu>
20 Q: How do i get Shift-Tab to go backwards on a text terminal or XTerm?
21 aka: I hate the new text widgets, I can't go through the links with n and b
22 I can go forward using TAB but how do i go backward on a terminal?
23
24 A: Not all terminals can distinguish between a shifted tab and an unshifted
25 tab at all. Tab is indicated on a text terminal by a control-i. There is no
26 such thing as capital control characters, so if the terminal is going to
27 indicate a shift-tab somehow it has to be completely differently. The most
28 appropriate thing to use is probably "backtab" which on old text terminals was
29 sometimes a separate key and Emacs is already set up to recognize
30 automatically if it exists.
31
32 Making "backtab" work involves several steps. First you have to make sure your
33 console generates some character sequence to indicate the key you want to
34 generate a "backtab". Then you have to configure termcap or terminfo to
35 recognize that key sequence. Then you may have to make your programs do useful
36 things when they get a "backtab", Emacs for example will recognize it
37 automatically but except for the Widget and W3 commands nothing is ever bound
38 it it.
39
40 Step 1 On An XTerm: XTerm obeys standard X Toolkit translations which you can
41 use to specify what character sequence Shift-Tab generates. The following X
42 Resources will cause Shift-Tab and Meta-Shift-Tab to generate reasonable
43 character sequences. You can either put this in your .Xresources or .Xdefaults
44 file, or you can put it in /usr/lib/X11/app-defaults/XTerm to make it a
45 site-wide default. (On Debian systems you should put it in
46 /etc/X11/Xresources, not the app-defaults files):
47
48 XTerm*VT100.translations: #override \
49 ~Meta Shift<Key>Tab: string(\033[Z) \n\
50 Meta Shift<Key>Tab: string(\033\033[Z) \n
51
52 I recommend these sequences, they are based on what seems to be a more or less
53 standard sequence ^[[Z for backtab.
54
55 Step 1 On Rxvt: By default Rxvt sends ^[[Z for Shift-Tab.
56 However, if Shift-Tab generates another keysym, like for example in XFree86
57 3.2 where it's bound to ISO_Left_Tab then Rxvt will just ignore it. You would
58 need to defeat this feature to make rxvt work again by doing something like:
59
60 xmodmap -e 'keysym Tab = Tab'
61
62 or adding that command to some global X configuration file (On Debian systems
63 adding ``Keysym Tab = Tab'' to /etc/X11/Xmodmap or ~/.Xmodmap is sufficient)
64
65 Step 1 On A Linux Virtual Console: on a Linux virtual console you can
66 configure what character sequences are generated by which keys using the
67 loadkeys command. Many systems are set up to run loadkeys automatically on
68 startup with some keymap file. On Debian systems this is true, the keymap file
69 is specified in /etc/kbd/config and usually lives in the
70 /usr/lib/kbd/keytables directory. You want to put something like the following
71 in your keytable file:
72
73 keycode 15 = Tab F91
74 alt keycode 15 = Meta_Tab
75 shift alt keycode 15 = F92
76
77 where keycode 15 is Tab on my keyboard (and probably any keyboard). This
78 defines Tab and Alt-Tab normally, and also defines Shift-Tab to be F91 and
79 Shift-Alt-Tab to be F92.
80
81 Then put something like this:
82 # backtab and M-backtab
83 string F91 = "\033[Z"
84 string F92 = "\033\033[Z"
85
86 later in the file. This defines what character sequence F91 (Shift-Tab) and
87 F92 (Alt-Shift-Tab) should generate. I recommend these sequences, they are
88 based on what seems to be a more or less standard sequence ^[[Z for backtab.
89
90 Step 2 On A Termcap System:
91
92 The termcap capability is kB, i'm not familiar with termcap tools, i think you
93 just need to add it to the /etc/termcap file for the terminal you're concerned
94 with as kB=\E[Z.
95
96 Step 2 On A Terminfo System:
97
98 The terminfo capability is kcbt (the long name is key_btab). You want to run
99 infocmp to generate an edittable copy of the terminal info. Add the
100 capability, then use tic to compile that information. Something like this:
101
102 infocmp $TERM > info
103 emacs info & # add kcbt=\E[Z, to the file
104 tic info
105
106 If you do this as root it should add the new definition to the system wide
107 terminfo database. If you do it as a normal user it should create a
108 ~/.terminfo database with a local terminfo info definition for that terminal.
109
110 Step 3 On Emacs:
111
112 The standard terminal initialization should recognize the backtab capability
113 automatically. To test it try C-h c Shift-Tab and see what it calls the key.
114 To bind commands to it just use [backtab] in local-set-key or global-set-key
115 as in:
116
117 (local-set-key [backtab] 'hippie-expand)
118 or
119 (global-set-key [backtab] 'hippie-expand)
120
121 In the interest of maintaining a single consistent set of key bindings between
122 X and tty emacsen you may want to make equivalent X keystroke generate
123 "backtab" as well, you can do this by doing this:
124
125 (define-key function-key-map [S-tab] [backtab])
126 or
127 (define-key function-key-map [iso-lefttab] [backtab])
128
129 To make S-tab or whatever keystroke you made generate backtab on a terminal
130 be recognized as backtab under X11 as well. You can check how Emacs recognizes
131 this keystroke currently by doing C-h c <keystroke>.
132
133