unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#37447: 26.3; Commands on <delete> and <backspace>
@ 2019-09-18 11:45 Sebastian Urban
  2019-09-18 12:39 ` Eli Zaretskii
  2019-09-20  8:17 ` Sebastian Urban
  0 siblings, 2 replies; 17+ messages in thread
From: Sebastian Urban @ 2019-09-18 11:45 UTC (permalink / raw)
  To: 37447

Just a few thoughts about deleting and killing commands.

We have:
+ "Delete"
   - <deletechar> [<delete>] (delete-forward-char)
   - <C-delete> (kill-word)
   - M-DEL [<M-delete>] (backward-kill-word)

? Perhaps C-<delete> should do (backward-kill-word) and <M-delete>
   should (kill-word).  Then <M-delete> would be like 'M-d', which
   seems to be correct way.

+ "Backspace"
   - DEL [<backspace>] (delete-backward-char)
   - <C-backspace> (backward-kill-word)
   - M-DEL [M-<backspace>] (backward-kill-word)

? <C-backspace> as another (backward-kill-word) on the same button is
   useless(?), maybe change it to (backward-kill-sentence), because
   it's less typing than 'C-x DEL'?  And then (perhaps) assign 'C-x
   DEL' to new function "backward kill line" (kill-line with 0
   argument?).  OR let 'C-x DEL' backward kill sentence, and assign
   backward kill line to 'C-DEL'.

? Also perhaps rebind 'C-S-backspace' to 'C-M-backspace' for
   (kill-whole-line)?


S. U.

GNU Emacs 26.3 (build 1, x86_64-w64-mingw32) of 2019-08-29





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-18 11:45 bug#37447: 26.3; Commands on <delete> and <backspace> Sebastian Urban
@ 2019-09-18 12:39 ` Eli Zaretskii
  2019-09-18 13:18   ` Sebastian Urban
  2019-09-20  8:17 ` Sebastian Urban
  1 sibling, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2019-09-18 12:39 UTC (permalink / raw)
  To: Sebastian Urban; +Cc: 37447

> From: Sebastian Urban <mrsebastianurban@gmail.com>
> Date: Wed, 18 Sep 2019 13:45:57 +0200
> 
> We have:
> + "Delete"
>    - <deletechar> [<delete>] (delete-forward-char)
>    - <C-delete> (kill-word)
>    - M-DEL [<M-delete>] (backward-kill-word)
> 
> ? Perhaps C-<delete> should do (backward-kill-word) and <M-delete>
>    should (kill-word).  Then <M-delete> would be like 'M-d', which
>    seems to be correct way.
> 
> + "Backspace"
>    - DEL [<backspace>] (delete-backward-char)
>    - <C-backspace> (backward-kill-word)
>    - M-DEL [M-<backspace>] (backward-kill-word)
> 
> ? <C-backspace> as another (backward-kill-word) on the same button is
>    useless(?), maybe change it to (backward-kill-sentence), because
>    it's less typing than 'C-x DEL'?  And then (perhaps) assign 'C-x
>    DEL' to new function "backward kill line" (kill-line with 0
>    argument?).  OR let 'C-x DEL' backward kill sentence, and assign
>    backward kill line to 'C-DEL'.
> 
> ? Also perhaps rebind 'C-S-backspace' to 'C-M-backspace' for
>    (kill-whole-line)?

These key bindings are too old to change them in the default
configuration.  You can, of course, change them in your personal
configuration.

Thanks.





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-18 12:39 ` Eli Zaretskii
@ 2019-09-18 13:18   ` Sebastian Urban
  2019-09-19 20:31     ` Juri Linkov
  0 siblings, 1 reply; 17+ messages in thread
From: Sebastian Urban @ 2019-09-18 13:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 37447

> These key bindings are too old to change them in the default
> configuration.

So inconsistency with 'M-d' and 'M-<delete>' will stay and
'C-<backspace>' & 'M-<backspace>' doing the same thing will also stay
because of history?  I could ignore 'C-S-<backspace>', but previous
two cases should be "updated".

But if "No." means "No." - close the bug, please.  Unless we are
waiting for more opinions.





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-18 13:18   ` Sebastian Urban
@ 2019-09-19 20:31     ` Juri Linkov
  2019-09-19 21:17       ` Drew Adams
  0 siblings, 1 reply; 17+ messages in thread
From: Juri Linkov @ 2019-09-19 20:31 UTC (permalink / raw)
  To: Sebastian Urban; +Cc: 37447

>> These key bindings are too old to change them in the default
>> configuration.
>
> So inconsistency with 'M-d' and 'M-<delete>' will stay and
> 'C-<backspace>' & 'M-<backspace>' doing the same thing will also stay
> because of history?  I could ignore 'C-S-<backspace>', but previous
> two cases should be "updated".
>
> But if "No." means "No." - close the bug, please.  Unless we are
> waiting for more opinions.

Imagine many users using the same keys for years, and now
they will start doing the opposite - a recipe for disaster.
But if a safer solution is possible, then I'd recommend
binding one of C- or M- prefixes to sexp killing commands
because their default prefix C-M- can't be used: C-M-DEL
runs system shutdown, and C-M-<backspace> kills the X server.
There is a replacement C-M-k for kill-sexp, but no key
for backward-kill-sexp.





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-19 20:31     ` Juri Linkov
@ 2019-09-19 21:17       ` Drew Adams
  2019-09-19 21:59         ` Noam Postavsky
  0 siblings, 1 reply; 17+ messages in thread
From: Drew Adams @ 2019-09-19 21:17 UTC (permalink / raw)
  To: Juri Linkov, Sebastian Urban; +Cc: 37447

> But if a safer solution is possible, then I'd recommend
> binding one of C- or M- prefixes to sexp killing commands
> because their default prefix C-M- can't be used: C-M-DEL
> runs system shutdown, and C-M-<backspace> kills the X server.
> There is a replacement C-M-k for kill-sexp, but no key
> for backward-kill-sexp.

Please don't use just `C-' or just `M-' for sexp
commands.  Please use the conventional `C-M-'.

FWIW, `C-M-k' for `kill-sexp', and `C-M-<backspace>
for `backward-kill-sexp', work on at least some
platforms, such as MS Windows. 

And for uses of Meta that are problematic for some
platforms, users can always use ESC.  E.g. `ESC C-k'
instead of `C-M-k' or `ESC C-<delete>' for
`C-M-<delete>'.  Admittedly not as handy, but usable
(and users with that problem can always rebind them).

(BTW, did you mean `C-M-<delete>' instead of `C-M-DEL'?
The latter doesn't seem to be bound by default.)





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-19 21:17       ` Drew Adams
@ 2019-09-19 21:59         ` Noam Postavsky
  2019-09-19 22:13           ` Juri Linkov
  0 siblings, 1 reply; 17+ messages in thread
From: Noam Postavsky @ 2019-09-19 21:59 UTC (permalink / raw)
  To: Drew Adams; +Cc: Sebastian Urban, 37447, Juri Linkov

Drew Adams <drew.adams@oracle.com> writes:

>> But if a safer solution is possible, then I'd recommend
>> binding one of C- or M- prefixes to sexp killing commands
>> because their default prefix C-M- can't be used: C-M-DEL
>> runs system shutdown, and C-M-<backspace> kills the X server.

> FWIW, `C-M-k' for `kill-sexp', and `C-M-<backspace>
> for `backward-kill-sexp', work on at least some
> platforms, such as MS Windows. 

FWIW, recent (since around 2007~2010 from what I see on the web) Xorg
disables C-M-<backspace> as the kill X server by default.





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-19 21:59         ` Noam Postavsky
@ 2019-09-19 22:13           ` Juri Linkov
  2019-09-21 15:41             ` Dmitry Gutov
  0 siblings, 1 reply; 17+ messages in thread
From: Juri Linkov @ 2019-09-19 22:13 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: Sebastian Urban, 37447

>>> But if a safer solution is possible, then I'd recommend
>>> binding one of C- or M- prefixes to sexp killing commands
>>> because their default prefix C-M- can't be used: C-M-DEL
>>> runs system shutdown, and C-M-<backspace> kills the X server.
>
>> FWIW, `C-M-k' for `kill-sexp', and `C-M-<backspace>
>> for `backward-kill-sexp', work on at least some
>> platforms, such as MS Windows.

Currently I use `M-- C-M-k' as a replacement of `backward-kill-sexp'.

> FWIW, recent (since around 2007~2010 from what I see on the web) Xorg
> disables C-M-<backspace> as the kill X server by default.

I can't confirm since I'm afraid of typing these keys :)





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-18 11:45 bug#37447: 26.3; Commands on <delete> and <backspace> Sebastian Urban
  2019-09-18 12:39 ` Eli Zaretskii
@ 2019-09-20  8:17 ` Sebastian Urban
  2019-09-20  8:36   ` Eli Zaretskii
  1 sibling, 1 reply; 17+ messages in thread
From: Sebastian Urban @ 2019-09-20  8:17 UTC (permalink / raw)
  To: juri; +Cc: 37447

> Imagine many users using the same keys for years, and now
> they will start doing the opposite - a recipe for disaster.

And that's why I'm not proposing changing C-b/n/p/f to C-h/j/k/l.  But
these two cases (without C-S-<backspace>) I pointed out doesn't seem
very critical, moreover they look like a bug (with 'M-<delete>'
deleting backward instead of forward as 'M-d' does - 'C-d' does
similar thing do <delete>, so 'M-...' should also be similar) or like
a leftover from the past ('C-<backspace>') that could be reused for
something useful.

Also, there are "obsolete" functions that are removed after few
versions of Emacs, so why not do the same thing to key bindings?  They
don't change that often, so it won't be a revolution, right?  Keeping
old key bindings forever(?), especially when user can change them, is
rather strange - confusion among new users, less keys for new/other
commands, etc.  I think Emacs should have one default key per command,
older should be marked as "obsolete" and removed after 1 or 2 major
versions.

But, this is from perspective of a beginner, so...





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-20  8:17 ` Sebastian Urban
@ 2019-09-20  8:36   ` Eli Zaretskii
  2019-09-20  9:17     ` Sebastian Urban
  0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2019-09-20  8:36 UTC (permalink / raw)
  To: Sebastian Urban; +Cc: 37447, juri

> From: Sebastian Urban <mrsebastianurban@gmail.com>
> Date: Fri, 20 Sep 2019 10:17:38 +0200
> Cc: 37447@debbugs.gnu.org
> 
> Also, there are "obsolete" functions that are removed after few
> versions of Emacs, so why not do the same thing to key bindings?

Because they are not "obsolete" by any measure.  They are highly
popular key bindings that I, FWIW, am using every day.

And btw, I can never understand these arguments about changing what
Emacs does by default.  You can easily rebind the keys yourself, so
why force your personal preferences on everyone else?

> Keeping old key bindings forever(?), especially when user can change
> them, is rather strange

It's not strange, it's called stability.





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-20  8:36   ` Eli Zaretskii
@ 2019-09-20  9:17     ` Sebastian Urban
  2019-09-20  9:31       ` Eli Zaretskii
  0 siblings, 1 reply; 17+ messages in thread
From: Sebastian Urban @ 2019-09-20  9:17 UTC (permalink / raw)
  To: eliz; +Cc: 37447

> (...) They are highly popular key bindings that I, FWIW, am using
> every day.

Even 'M-<delete>' that does something opposite to 'M-d', when <delete>
and 'C-d' do the same thing?  Doesn't that bother you?  For me it's
inconsistency, but maybe there is a reason for this...

> And btw, I can never understand these arguments about changing what
> Emacs does by default.  You can easily rebind the keys yourself, so
> why force your personal preferences on everyone else?

If I would want to change 'C-a' to 'C-b' (or 'C-S-<backspace>' as
I tried, but not any more) then you are right, but not in this case.

The above example is not a change just because I like it (I don't even
use it), but rather spotting inconsistency and pointing it out.

As for 'C-<backspace>' also "no", because I was trying to reuse
something that is already there ('M-<backspace>').  But fine, someone
may use 'C-...', so I could leave it alone as well.





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-20  9:17     ` Sebastian Urban
@ 2019-09-20  9:31       ` Eli Zaretskii
  2019-09-20 10:32         ` Sebastian Urban
  0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2019-09-20  9:31 UTC (permalink / raw)
  To: Sebastian Urban; +Cc: 37447

> From: Sebastian Urban <mrsebastianurban@gmail.com>
> Cc: 37447@debbugs.gnu.org
> Date: Fri, 20 Sep 2019 11:17:29 +0200
> 
> Even 'M-<delete>' that does something opposite to 'M-d', when <delete>
> and 'C-d' do the same thing?  Doesn't that bother you?

What does "C-h c M-<delete>" display?  Does that text answer your
questions, when you contrast it with what "C-h c" shows for <delete>
and C-<delete>?





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-20  9:31       ` Eli Zaretskii
@ 2019-09-20 10:32         ` Sebastian Urban
  2019-09-20 12:46           ` Eli Zaretskii
  0 siblings, 1 reply; 17+ messages in thread
From: Sebastian Urban @ 2019-09-20 10:32 UTC (permalink / raw)
  To: eliz; +Cc: 37447

 > What does "C-h c M-<delete>" display?  Does that text answer your
 > questions, when you contrast it with what "C-h c" shows for <delete>
 > and C-<delete>?

C-h c M-<delete>:
     M-DEL (translated from <M-delete>) runs the command
     backward-kill-word

C-h c <delete>:
     <deletechar> (translated from <delete>) runs the command
     delete-forward-char

C-h c C-<delete>:
     <C-delete> runs the command kill-word

I'm not sure how this could help me or how I'm suppose to understand
this.

M-<delete> doesn't run command, but is translated to 'M-DEL' that does
run the command.  M-<backspace> uses the same translation.  Couldn't
it be:
- <M-delete> runs the command kill-word
- M-DEL (translated from <C-delete>) runs the command
   backward-kill-word

Or couldn't 'C-<delete>' run command backward-kill-word directly?





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-20 10:32         ` Sebastian Urban
@ 2019-09-20 12:46           ` Eli Zaretskii
  2019-09-20 16:22             ` Sebastian Urban
  0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2019-09-20 12:46 UTC (permalink / raw)
  To: Sebastian Urban; +Cc: 37447

> Cc: 37447@debbugs.gnu.org
> From: Sebastian Urban <mrsebastianurban@gmail.com>
> Date: Fri, 20 Sep 2019 12:32:19 +0200
> 
>  > What does "C-h c M-<delete>" display?  Does that text answer your
>  > questions, when you contrast it with what "C-h c" shows for <delete>
>  > and C-<delete>?
> 
> C-h c M-<delete>:
>      M-DEL (translated from <M-delete>) runs the command
>      backward-kill-word
> 
> C-h c <delete>:
>      <deletechar> (translated from <delete>) runs the command
>      delete-forward-char
> 
> C-h c C-<delete>:
>      <C-delete> runs the command kill-word
> 
> I'm not sure how this could help me or how I'm suppose to understand
> this.

The DEL part should be your hint.  DEL is a key that deletes
_backward_.

> M-<delete> doesn't run command, but is translated to 'M-DEL' that does
> run the command.  M-<backspace> uses the same translation.  Couldn't
> it be:
> - <M-delete> runs the command kill-word
> - M-DEL (translated from <C-delete>) runs the command
>    backward-kill-word

See above.





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-20 12:46           ` Eli Zaretskii
@ 2019-09-20 16:22             ` Sebastian Urban
  0 siblings, 0 replies; 17+ messages in thread
From: Sebastian Urban @ 2019-09-20 16:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 37447

 > The DEL part should be your hint.  DEL is a key that deletes
 > _backward_.

Ok, now I'm confused even more...  I know DEL deletes backward, but in
the manual it is related to <backspace> key.  Now, I'm writing about
"Delete" key (button) that is below "Insert" and next to "End", not
about "Backspace" key.

So, to write it as simple as possible, on keyboard 'C-d' deletes char
forward, so does 'Delete' button.  'M-d' kills word forward, so I'm
expecting 'M-Delete' will do the same, but instead it kills backward
because it's translated to 'M-DEL'...





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2019-09-19 22:13           ` Juri Linkov
@ 2019-09-21 15:41             ` Dmitry Gutov
  0 siblings, 0 replies; 17+ messages in thread
From: Dmitry Gutov @ 2019-09-21 15:41 UTC (permalink / raw)
  To: Juri Linkov, Noam Postavsky; +Cc: Sebastian Urban, 37447

On 20.09.2019 1:13, Juri Linkov wrote:

>> FWIW, recent (since around 2007~2010 from what I see on the web) Xorg
>> disables C-M-<backspace> as the kill X server by default.
> 
> I can't confirm since I'm afraid of typing these keys :)

I can confirm, and I tried and failed to use this combination to kill 
Xorg a couple of years ago. Just once :)





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2017-11-24 19:28 ` Noam Postavsky
@ 2022-03-23 13:30   ` Lars Ingebrigtsen
  2022-03-23 14:35     ` Drew Adams
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2022-03-23 13:30 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: Devon Sean McCullough, 37447, 29430

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> Seems to be on purpose, bindings.el:1236:
>
> ;;; These are dangerous in various situations,
> ;;; so let's not encourage anyone to use them.
> ;;;(define-key global-map [C-M-delete] 'backward-kill-sexp)
> ;;;(define-key global-map [C-M-backspace] 'backward-kill-sexp)

I've now reinstated the bindings, since X stopped killing itself if you
hit those keys decades ago (in all mainstream configurations).

The merged bug report discussed moving some of other related keys
around, and the conclusions was that we don't want to do that, so I'm
closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#37447: 26.3; Commands on <delete> and <backspace>
  2022-03-23 13:30   ` bug#37447: 26.3; Commands on <delete> and <backspace> Lars Ingebrigtsen
@ 2022-03-23 14:35     ` Drew Adams
  0 siblings, 0 replies; 17+ messages in thread
From: Drew Adams @ 2022-03-23 14:35 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Noam Postavsky
  Cc: Devon Sean McCullough, 37447@debbugs.gnu.org,
	29430@debbugs.gnu.org

> > ;;; These are dangerous in various situations,
> > ;;; so let's not encourage anyone to use them.
> > ;;;(define-key global-map [C-M-delete] 'backward-kill-sexp)
> > ;;;(define-key global-map [C-M-backspace] 'backward-kill-sexp)
> 
> I've now reinstated the bindings, since X stopped killing itself if you
> hit those keys decades ago (in all mainstream configurations).

[C-M-delete] is problematic for MS Windows, no?





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

end of thread, other threads:[~2022-03-23 14:35 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-18 11:45 bug#37447: 26.3; Commands on <delete> and <backspace> Sebastian Urban
2019-09-18 12:39 ` Eli Zaretskii
2019-09-18 13:18   ` Sebastian Urban
2019-09-19 20:31     ` Juri Linkov
2019-09-19 21:17       ` Drew Adams
2019-09-19 21:59         ` Noam Postavsky
2019-09-19 22:13           ` Juri Linkov
2019-09-21 15:41             ` Dmitry Gutov
2019-09-20  8:17 ` Sebastian Urban
2019-09-20  8:36   ` Eli Zaretskii
2019-09-20  9:17     ` Sebastian Urban
2019-09-20  9:31       ` Eli Zaretskii
2019-09-20 10:32         ` Sebastian Urban
2019-09-20 12:46           ` Eli Zaretskii
2019-09-20 16:22             ` Sebastian Urban
  -- strict thread matches above, loose matches on Subject: below --
2017-11-24 19:12 bug#29430: 26.0.90; C-M-backspace is undefined Devon Sean McCullough
2017-11-24 19:28 ` Noam Postavsky
2022-03-23 13:30   ` bug#37447: 26.3; Commands on <delete> and <backspace> Lars Ingebrigtsen
2022-03-23 14:35     ` Drew Adams

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).