all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
@ 2020-02-26 15:48 積丹尼 Dan Jacobson
  2020-02-26 16:17 ` Noam Postavsky
  0 siblings, 1 reply; 13+ messages in thread
From: 積丹尼 Dan Jacobson @ 2020-02-26 15:48 UTC (permalink / raw)
  To: 39802

On(info "(emacs) Init Rebinding")
at the end, please have the page "admit" that their is no way to unbind a key from a
local map. That would save the user a lot of guessing.
Currently the page just ends in an example of binding a key in a local
map. Users need to know it is in fact impossible to unbind them.
https://stackoverflow.com/questions/22834506/how-to-unset-a-keybinding-in-a-map-locally-to-a-mode
https://github.com/jwiegley/use-package/issues/103
emacs-version "26.3"





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-26 15:48 bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys 積丹尼 Dan Jacobson
@ 2020-02-26 16:17 ` Noam Postavsky
  2020-02-26 16:31   ` 積丹尼 Dan Jacobson
  0 siblings, 1 reply; 13+ messages in thread
From: Noam Postavsky @ 2020-02-26 16:17 UTC (permalink / raw)
  To: 積丹尼 Dan Jacobson; +Cc: 39802

積丹尼 Dan Jacobson <jidanni@jidanni.org> writes:

> On(info "(emacs) Init Rebinding")
> at the end, please have the page "admit" that their is no way to unbind a key from a
> local map.

Your terminology is a bit confusing here.  From this description I might
think that you are looking for local-unset-key (that is, "local map" ==
current major mode map, which is how the manual is using it).  But based
on the links you posted, I guess you are actually talking about the lack
of buffer-local keymap values?






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-26 16:17 ` Noam Postavsky
@ 2020-02-26 16:31   ` 積丹尼 Dan Jacobson
  2020-02-26 17:04     ` Noam Postavsky
  0 siblings, 1 reply; 13+ messages in thread
From: 積丹尼 Dan Jacobson @ 2020-02-26 16:31 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 39802

If

  C-. runs the command flyspell-auto-correct-word (found in
  flyspell-mode-map), which is an interactive compiled Lisp function in
 ‘flyspell.el’.

  It is bound to C-., C-M-i.

And the user wants to unbind it, well,
(info "(emacs) Init Rebinding")
won't break the bad news to him that it is just not possible.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-26 16:31   ` 積丹尼 Dan Jacobson
@ 2020-02-26 17:04     ` Noam Postavsky
  2020-02-26 23:22       ` 積丹尼 Dan Jacobson
  0 siblings, 1 reply; 13+ messages in thread
From: Noam Postavsky @ 2020-02-26 17:04 UTC (permalink / raw)
  To: 積丹尼 Dan Jacobson; +Cc: 39802

積丹尼 Dan Jacobson <jidanni@jidanni.org> writes:

> If
>
>   C-. runs the command flyspell-auto-correct-word (found in
>   flyspell-mode-map), which is an interactive compiled Lisp function in
>  ‘flyspell.el’.
>
>   It is bound to C-., C-M-i.
>
> And the user wants to unbind it, well,
> (info "(emacs) Init Rebinding")
> won't break the bad news to him that it is just not possible.

If I understood correctly, then

    (define-key flyspell-mode-map (kbd "C-.") nil)

would work.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-26 17:04     ` Noam Postavsky
@ 2020-02-26 23:22       ` 積丹尼 Dan Jacobson
  2020-02-27 13:14         ` Noam Postavsky
  0 siblings, 1 reply; 13+ messages in thread
From: 積丹尼 Dan Jacobson @ 2020-02-26 23:22 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 39802

OK!
Please add this patch (i.e., fix the source file) to
(info "(emacs) Init Rebinding")

    For example, Texinfo mode runs the hook ‘texinfo-mode-hook’.  Here’s
-how you can use the hook to add local bindings for ‘C-c n’ and ‘C-c p’
-in Texinfo mode:
+how you can use the hook to add local bindings for ‘C-c n’ and ‘C-c p’,
+and remove one for C-c C-c x, in Texinfo mode:
 
      (add-hook 'texinfo-mode-hook
                (lambda ()
                  (define-key texinfo-mode-map "\C-cp"
                              'backward-paragraph)
                  (define-key texinfo-mode-map "\C-cn"
-                             'forward-paragraph)))
-
+                             'forward-paragraph)
+                 (define-key texinfo-mode-map "\C-c\C-cx"
+                             nil)))





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-26 23:22       ` 積丹尼 Dan Jacobson
@ 2020-02-27 13:14         ` Noam Postavsky
  2020-02-27 13:26           ` Robert Pluim
  2020-02-28  7:52           ` Eli Zaretskii
  0 siblings, 2 replies; 13+ messages in thread
From: Noam Postavsky @ 2020-02-27 13:14 UTC (permalink / raw)
  To: 積丹尼 Dan Jacobson; +Cc: 39802

[-- Attachment #1: Type: text/plain, Size: 390 bytes --]

retitle 39802 (info "(emacs) Init Rebinding") doesn't explain how to unbind local keys
tags 39802 + patch
quit

積丹尼 Dan Jacobson <jidanni@jidanni.org> writes:

> OK!
> Please add this patch (i.e., fix the source file) to
> (info "(emacs) Init Rebinding")

I think it would be useful to explain what to do outside of the example,
so I propose a slightly different patch.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 2182 bytes --]

From 980d36d8748ff4598132b704487487691e165334 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Thu, 27 Feb 2020 08:09:44 -0500
Subject: [PATCH] Explain how to unset mode bindings (Bug#39802)

* doc/emacs/custom.texi (Init Rebinding): Explain that passing nil to
define-key will unbind keys, and extend the example accordingly.
---
 doc/emacs/custom.texi | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index f39ce40931..5232ab5cc7 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1873,15 +1873,18 @@ Init Rebinding
   Language and coding systems may cause problems with key bindings for
 non-@acronym{ASCII} characters.  @xref{Init Non-ASCII}.
 
+@findex define-key
   As described in @ref{Local Keymaps}, major modes and minor modes can
-define local keymaps.  These keymaps are constructed when the mode is
-used for the first time in a session.  If you wish to change one of
-these keymaps, you must use the @dfn{mode hook} (@pxref{Hooks}).
+define local keymaps.  The function @code{define-key} can be used to
+make changes in a specific keymap.  This function can also unset keys,
+when passed @code{nil} as the binding.
 
-@findex define-key
-  For example, Texinfo mode runs the hook @code{texinfo-mode-hook}.
-Here's how you can use the hook to add local bindings for @kbd{C-c n}
-and @kbd{C-c p} in Texinfo mode:
+  Since a mode's keymaps are not constructed until it has been loaded,
+you must delay running code which modifies them until, e.g., by
+putting it no a @dfn{mode hook} (pxref{(Hooks)}).  For example,
+Texinfo mode runs the hook @code{texinfo-mode-hook}.  Here's how you
+can use the hook to add local bindings for @kbd{C-c n} and @kbd{C-c
+p}, and remove the one for @kbd{C-c C-x x} in Texinfo mode:
 
 @example
 (add-hook 'texinfo-mode-hook
@@ -1890,6 +1893,7 @@ Init Rebinding
                         'backward-paragraph)
             (define-key texinfo-mode-map "\C-cn"
                         'forward-paragraph)))
+            (define-key texinfo-mode-map "\C-c\C-xx" nil)
 @end example
 
 @node Modifier Keys
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-27 13:14         ` Noam Postavsky
@ 2020-02-27 13:26           ` Robert Pluim
  2020-02-28  7:52           ` Eli Zaretskii
  1 sibling, 0 replies; 13+ messages in thread
From: Robert Pluim @ 2020-02-27 13:26 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 39802, 積丹尼 Dan Jacobson

>>>>> On Thu, 27 Feb 2020 08:14:56 -0500, Noam Postavsky <npostavs@gmail.com> said:

The text looks good, except for...

    Noam> -@findex define-key
    Noam> -  For example, Texinfo mode runs the hook @code{texinfo-mode-hook}.
    Noam> -Here's how you can use the hook to add local bindings for @kbd{C-c n}
    Noam> -and @kbd{C-c p} in Texinfo mode:
    Noam> +  Since a mode's keymaps are not constructed until it has been loaded,
    Noam> +you must delay running code which modifies them until, e.g., by
    Noam> +putting it no a @dfn{mode hook} (pxref{(Hooks)}).  For example,
                      ^^
                      
Robert





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-27 13:14         ` Noam Postavsky
  2020-02-27 13:26           ` Robert Pluim
@ 2020-02-28  7:52           ` Eli Zaretskii
  2020-02-28  8:48             ` Phil Sainty
  2020-02-28 10:04             ` Noam Postavsky
  1 sibling, 2 replies; 13+ messages in thread
From: Eli Zaretskii @ 2020-02-28  7:52 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 39802, jidanni

> From: Noam Postavsky <npostavs@gmail.com>
> Date: Thu, 27 Feb 2020 08:14:56 -0500
> Cc: 39802@debbugs.gnu.org
> 
> +@findex define-key
>    As described in @ref{Local Keymaps}, major modes and minor modes can
> -define local keymaps.  These keymaps are constructed when the mode is
> -used for the first time in a session.  If you wish to change one of
> -these keymaps, you must use the @dfn{mode hook} (@pxref{Hooks}).
> +define local keymaps.  The function @code{define-key} can be used to
> +make changes in a specific keymap.  This function can also unset keys,
> +when passed @code{nil} as the binding.

This loses useful information in the sentence that starts with "These
keymaps".

Otherwise I'm okay with the proposed change.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-28  7:52           ` Eli Zaretskii
@ 2020-02-28  8:48             ` Phil Sainty
  2020-02-28 12:30               ` 積丹尼 Dan Jacobson
  2020-02-28 10:04             ` Noam Postavsky
  1 sibling, 1 reply; 13+ messages in thread
From: Phil Sainty @ 2020-02-28  8:48 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 39802, Noam Postavsky, jidanni

Perhaps my answer at https://stackoverflow.com/a/13966287/324105
also provides some helpful wording?  (It can be appropriated for
the manual if it's useful.)

-Phil






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-28  7:52           ` Eli Zaretskii
  2020-02-28  8:48             ` Phil Sainty
@ 2020-02-28 10:04             ` Noam Postavsky
  2020-02-28 12:56               ` Eli Zaretskii
  1 sibling, 1 reply; 13+ messages in thread
From: Noam Postavsky @ 2020-02-28 10:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 39802, jidanni

Eli Zaretskii <eliz@gnu.org> writes:

>>    As described in @ref{Local Keymaps}, major modes and minor modes can
>> -define local keymaps.  These keymaps are constructed when the mode is
>> -used for the first time in a session.

> This loses useful information in the sentence that starts with "These
> keymaps".

I moved that information to the next paragraph:
 
    +  Since a mode's keymaps are not constructed until it has been loaded,

(I think "until it has been loaded" is more accurate than "used for the
first time", since the file can be loaded without actually using the
mode defined within.)





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-28  8:48             ` Phil Sainty
@ 2020-02-28 12:30               ` 積丹尼 Dan Jacobson
  0 siblings, 0 replies; 13+ messages in thread
From: 積丹尼 Dan Jacobson @ 2020-02-28 12:30 UTC (permalink / raw)
  To: Phil Sainty; +Cc: Noam Postavsky, 39802

>>>>> "PS" == Phil Sainty <psainty@orcon.net.nz> writes:
PS> Perhaps my answer at https://stackoverflow.com/a/13966287/324105
PS> also provides some helpful wording?  (It can be appropriated for
PS> the manual if it's useful.)

So maybe the patch should say "in addition to
(define-key ...-map ... nil)
one can use
(local-set-key ... ... ...)"
I suppose. But maybe it is "less powerful" but I don't know.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-28 10:04             ` Noam Postavsky
@ 2020-02-28 12:56               ` Eli Zaretskii
  2020-03-04  3:13                 ` Noam Postavsky
  0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2020-02-28 12:56 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 39802, jidanni

> From: Noam Postavsky <npostavs@gmail.com>
> Cc: 39802@debbugs.gnu.org,  jidanni@jidanni.org
> Date: Fri, 28 Feb 2020 05:04:57 -0500
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >>    As described in @ref{Local Keymaps}, major modes and minor modes can
> >> -define local keymaps.  These keymaps are constructed when the mode is
> >> -used for the first time in a session.
> 
> > This loses useful information in the sentence that starts with "These
> > keymaps".
> 
> I moved that information to the next paragraph:
>  
>     +  Since a mode's keymaps are not constructed until it has been loaded,

I saw it, but that "Since" strikes me as "a bolt out of the blue",
because no text before that explained or mentioned this fact.  Leaving
that sentence in place will then go a long way towards making the
"Since" part crystal clear.

IOW, in this and similar cases, repetition facilitates understanding,
and should not be avoided, because we are dealing with something that
won't necessarily be evident to the reader.

> (I think "until it has been loaded" is more accurate than "used for the
> first time", since the file can be loaded without actually using the
> mode defined within.)

I'm okay with rephrasing the original sentence along these lines.  But
I think we should not remove it entirely.  (Obviously, this is a minor
point.)

Thanks.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys
  2020-02-28 12:56               ` Eli Zaretskii
@ 2020-03-04  3:13                 ` Noam Postavsky
  0 siblings, 0 replies; 13+ messages in thread
From: Noam Postavsky @ 2020-03-04  3:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 39802, jidanni

tags 39802 fixed
close 39802 27.1
quit

Eli Zaretskii <eliz@gnu.org> writes:

> I saw it, but that "Since" strikes me as "a bolt out of the blue",
> because no text before that explained or mentioned this fact.  Leaving
> that sentence in place will then go a long way towards making the
> "Since" part crystal clear.
>
> IOW, in this and similar cases, repetition facilitates understanding,
> and should not be avoided, because we are dealing with something that
> won't necessarily be evident to the reader.

Okay, I see what you mean.  I put that sentence back in (with "used"
changed to "loaded") and pushed to emacs-27.

[1: 60418a1ab2]: 2020-03-03 22:04:48 -0500
  Explain how to unset mode bindings (Bug#39802)
  https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=60418a1ab21b86cb2d46470ae187e74a25d33212





^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-03-04  3:13 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-26 15:48 bug#39802: (info "(emacs) Init Rebinding") needs to say it is impossible to unbind local keys 積丹尼 Dan Jacobson
2020-02-26 16:17 ` Noam Postavsky
2020-02-26 16:31   ` 積丹尼 Dan Jacobson
2020-02-26 17:04     ` Noam Postavsky
2020-02-26 23:22       ` 積丹尼 Dan Jacobson
2020-02-27 13:14         ` Noam Postavsky
2020-02-27 13:26           ` Robert Pluim
2020-02-28  7:52           ` Eli Zaretskii
2020-02-28  8:48             ` Phil Sainty
2020-02-28 12:30               ` 積丹尼 Dan Jacobson
2020-02-28 10:04             ` Noam Postavsky
2020-02-28 12:56               ` Eli Zaretskii
2020-03-04  3:13                 ` Noam Postavsky

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.