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

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

Re: Disabling M-q


From: Emanuel Berg
Subject: Re: Disabling M-q
Date: Sat, 18 May 2013 12:26:07 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux)

"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"))
>> 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

-- 
Emanuel Berg - programmer (hire me! CV below)
computer projects: http://user.it.uu.se/~embe8573
internet activity: http://home.student.uu.se/embe8573


reply via email to

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