Re: New user - can't get Meta-tab to work on OS X [message #33080 is a reply to message #33078] |
Fri, 06 December 2002 00:31   |
Carsten Dominik
Messages: 45 Registered: February 1998
|
Member |
|
|
>>>> > "p" == psisquared01 <psisquared01@netscape.net> writes:
To: psisquared01@netscape.net (psisquared)
Subject: Re: New user - can't get Meta-tab to work on OS X
References: <c34328d6.0212022253.2ded13e0@posting.google.com>
From: Carsten Dominik <dominik@_DROP_THIS_science.uva.nl>
--text follows this line--
>>>> > "p" == psisquared01 <psisquared01@netscape.net> writes:
[... Meta-TAB problem with IDLWAVE on Mac OSX ...]
There are several issues here. If you are not interested in the
details, just jump to point 4.
1. The carbonized Emacs uses the Apple Command key as a Meta key.
I.e., in order to press M-q for example, you would hold down the
command key while pressing q.
This works for most key combinations, but not for M-TAB. M-TAB
(really, Command-TAB) is captured by the operating system very
early and is used to switch applications in the Dock. So M-TAB
never reaches the Emacs application!
2. There is a classic alternative on Emacs. Instead of holding down
the Meta key, one can also press (and release) ESC and then press
the wanted key. So ESC TAB is an alternative to M-TAB. Most of
the time these two are equivalent, so assigning an Emacs command to
M-TAB will make it work with both versions. For example:
(define-key global-map [(meta ?q)]
(lambda () (interactive)
(message "yes")))
will print "yes" in the echo area if you press M-q (i.e. Command-q
on the Mac) or ESC q.
3. However, the TAB key is different. Binding to M-TAB will not
always assign something to ESC-TAB as well - this seems to be
system dependent and has to do with the internal representation of
key events.
4. To make a long story short: On the Mac, you cannot have IDLWAVE
completion on M-TAB (i.e. Command-TAB). However, the following
will assign idlwave-complete to ESC TAB:
(add-hook 'idlwave-mode-hook
(lambda ()
(define-key idlwave-mode-map "\M-\C-i" 'idlwave-complete)))
JD, maybe you should just add this as an additional binding.
Hope this helps.
- Carsten
--
Carsten Dominik <dominik@astro.uva.nl> \ _ /
Sterrenkundig Instituut "Anton Pannekoek" |X| _
Kruislaan 403; NL-1098 SJ Amsterdam /| |\ _ _ _/ \
phone +31 (20) 525-7477; FAX +31 (20) 525-7484 __|o|___/ ~~ \___/ ~~~
|
|
|