help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Disabling M-q


From: B. T. Raven
Subject: Re: Disabling M-q
Date: Sat, 18 May 2013 12:44:13 -0500
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120907 Thunderbird/15.0.1


> "B. T. Raven" <btraven@nihilo.net> writes:
> 
>>> A friend asked how to disable M-q. My first thought was:
>>>     (local-unset-key (kbd "\M-q"))

This was the original question. Should M be escaped in a string here?
Did you try the vector description of "M-q"? I notice that (kbd <key>...
returns a specific vector but the vector [(meta q)] just evaluates to
itself. Have you tried:

(define-key (current-local-map) [(meta q)] nil)

??


>>> or
>>>     (local-set-key (kbd "M-q") nil)
>>>
>>> But both did not work. I am now using:
>>>     (local-set-key (kbd "M-q") "")
>>>
>>> and this works. Is this the best way, or is there a better way?
>>
>> How about either
>>
>> (global-unset-key [(meta q)]
>>
>> or
>>
>> (local-unset-key [(meta q)]
> 
> I wrote a couple of lines you can experiment with. Use `C-h w' for the
> functions and `C-x C-e' to change keybinding.
> 
> The local binding will shadow the global. If the global is shadowed,
> it won't report any key on `C-h w'. But, as soon as you unset the
> local, or set it to the nils, the global is back on. When the local is
> set to the empty string, the shadow is on (i.e., the global is off)
> only this "shadow" doesn't do anything.
> 
> Like I said, play around with it.
> 
> (defun test-message-local  () (interactive) (message "local check"))
> (defun test-message-global () (interactive) (message "global check"))
> (global-unset-key (kbd "C-M-w")) ; either unset both
> (local-unset-key  (kbd "C-M-w"))
> (global-set-key   (kbd "C-M-w") 'test-message-global) ; test C-h w here
> (local-set-key    (kbd "C-M-w") 'test-message-local)  ; shadows global
> (local-set-key    (kbd "C-M-w")  nil) ; these four - global *on*
> (local-set-key    (kbd "C-M-w") 'nil)
> (local-set-key    (kbd "C-M-w")  ())
> (local-set-key    (kbd "C-M-w") '())
> (local-set-key    (kbd "C-M-w") "")   ; this - local "nothing" shadow
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]