* Concern about new binding. [not found] <20210202134950.vybbpf3iewbymfjo.ref@Ergus> @ 2021-02-02 13:49 ` Ergus 2021-02-02 15:21 ` Kévin Le Gouguec ` (4 more replies) 0 siblings, 5 replies; 294+ messages in thread From: Ergus @ 2021-02-02 13:49 UTC (permalink / raw) To: emacs-devel Hi: In a recent commit I see that the C-x g binding was taken for revert-buffer. I suppose this should have been discussed previously, unless I don't find the thread... but I have some concerns about this. 1) In general `C-x g` is used by magit; I know this is not a priority (cause magit is an external package), but magit is a very popular package. 2) In some threads before we have discussed that relative short combinations must be reserved to maps in order to economize them... 3) In spite of revert-buffer is a very useful command it is useless in many conditions like when auto-revert-mode is enable... so maybe it makes sense to bind it to something longer (ex: C-x g r)?? There are more commands that could be set in a map inside C-x g IMHO: toggle-read-only revert-buffer-with-fine-grain something to enable/disable font-lock etc This way instead of limiting; could open a big spot to set useful commands. I understand that longer commands are harder to discover, but hopefully we could have which-key in the next release? I hope I am writing this soon enough that the author could consider revert this change maybe with something more "general" does it makes sense?? Best, Ergus. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Concern about new binding. 2021-02-02 13:49 ` Concern about new binding Ergus @ 2021-02-02 15:21 ` Kévin Le Gouguec 2021-02-02 18:47 ` Óscar Fuentes 2021-02-03 5:52 ` Richard Stallman 2021-02-02 16:28 ` [External] : " Drew Adams ` (3 subsequent siblings) 4 siblings, 2 replies; 294+ messages in thread From: Kévin Le Gouguec @ 2021-02-02 15:21 UTC (permalink / raw) To: Ergus; +Cc: emacs-devel Ergus <spacibba@aol.com> writes: > I suppose this should have been discussed previously, unless I don't > find the thread... See bug#46151. IIUC the initial request was to have a way to revert shell output buffers; somewhere along the way the usefulness of a global binding for revert-buffer was brought up, various options were discussed, a decision was taken, and here we are. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 15:21 ` Kévin Le Gouguec @ 2021-02-02 18:47 ` Óscar Fuentes 2021-02-02 18:53 ` Eli Zaretskii 2021-02-02 22:07 ` [External] : " Drew Adams 2021-02-03 5:52 ` Richard Stallman 1 sibling, 2 replies; 294+ messages in thread From: Óscar Fuentes @ 2021-02-02 18:47 UTC (permalink / raw) To: emacs-devel Kévin Le Gouguec <kevin.legouguec@gmail.com> writes: > Ergus <spacibba@aol.com> writes: > >> I suppose this should have been discussed previously, unless I don't >> find the thread... > > See bug#46151. > > IIUC the initial request was to have a way to revert shell output > buffers; somewhere along the way the usefulness of a global binding for > revert-buffer was brought up, various options were discussed, a decision > was taken, and here we are. The title of that bug report is "Set revert-buffer-function in shell command output buffers", no hint about discussing global keybindings. So the effective policy is that either one reads each and every message in emacs-bugs (which probably requires too much time even for some of the most active emacs developers and would be a waste of time for the most part) or be left excluded from such debates. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 18:47 ` Óscar Fuentes @ 2021-02-02 18:53 ` Eli Zaretskii 2021-02-02 19:00 ` Óscar Fuentes ` (2 more replies) 2021-02-02 22:07 ` [External] : " Drew Adams 1 sibling, 3 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-02 18:53 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Tue, 02 Feb 2021 19:47:41 +0100 > > So the effective policy is that either one reads each and every message > in emacs-bugs (which probably requires too much time even for some of > the most active emacs developers and would be a waste of time for the > most part) or be left excluded from such debates. There are more sophisticated possibilities than just these two extremities. Text processing and tagging is a well developed discipline these days, and Emacs is an ideal environment for that. If you cannot afford reading everything, but still want to be involved in discussing stuff that matters to you, how about setting up filters for that? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 18:53 ` Eli Zaretskii @ 2021-02-02 19:00 ` Óscar Fuentes 2021-02-02 19:16 ` Eli Zaretskii 2021-02-02 19:07 ` Dmitry Gutov 2021-02-05 5:46 ` Richard Stallman 2 siblings, 1 reply; 294+ messages in thread From: Óscar Fuentes @ 2021-02-02 19:00 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Óscar Fuentes <ofv@wanadoo.es> >> Date: Tue, 02 Feb 2021 19:47:41 +0100 >> >> So the effective policy is that either one reads each and every message >> in emacs-bugs (which probably requires too much time even for some of >> the most active emacs developers and would be a waste of time for the >> most part) or be left excluded from such debates. > > There are more sophisticated possibilities than just these two > extremities. Text processing and tagging is a well developed > discipline these days, and Emacs is an ideal environment for that. If > you cannot afford reading everything, but still want to be involved in > discussing stuff that matters to you, how about setting up filters for > that? I have no idea about how to effectively implement those filters, apart from implementing an advanced A.I., but then I would prefer dedicating the next 30 years of my life to something else. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 19:00 ` Óscar Fuentes @ 2021-02-02 19:16 ` Eli Zaretskii 2021-02-02 20:03 ` Óscar Fuentes 2021-02-02 22:14 ` [External] : " Drew Adams 0 siblings, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-02 19:16 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Tue, 02 Feb 2021 20:00:14 +0100 > > I have no idea about how to effectively implement those filters, apart > from implementing an advanced A.I., but then I would prefer dedicating > the next 30 years of my life to something else. Well, then maybe someone will volunteer to do this job for you and others, and call people's attention to discussions on the bug list that might interest you and others. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 19:16 ` Eli Zaretskii @ 2021-02-02 20:03 ` Óscar Fuentes 2021-02-02 22:14 ` [External] : " Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Óscar Fuentes @ 2021-02-02 20:03 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> I have no idea about how to effectively implement those filters, apart >> from implementing an advanced A.I., but then I would prefer dedicating >> the next 30 years of my life to something else. > > Well, then maybe someone will volunteer to do this job for you and > others, and call people's attention to discussions on the bug list > that might interest you and others. That would be a remarkable project indeed, because often I don't know that a topic is relevant to me until I see it popping out in some forum. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-02 19:16 ` Eli Zaretskii 2021-02-02 20:03 ` Óscar Fuentes @ 2021-02-02 22:14 ` Drew Adams 2021-02-03 3:35 ` Eli Zaretskii 1 sibling, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-02 22:14 UTC (permalink / raw) To: Eli Zaretskii, Óscar Fuentes; +Cc: emacs-devel@gnu.org > > I have no idea about how to effectively implement those filters, > apart > > from implementing an advanced A.I., but then I would prefer > dedicating > > the next 30 years of my life to something else. > > Well, then maybe someone will volunteer to do this job for you and > others, and call people's attention to discussions on the bug list > that might interest you and others. This seems like a cop-out, to me. To me, the solution is for bug discussions to be managed (particularly by anyone who intends to actually make some change to Emacs) to stop and move some more general discussion, which has moved beyond the OP, to emacs-devel. Oscar's point was that the OP request was limited, and the result of the bug thread was to make a much wider-ranging change to Emacs, not a _necessary_ change to fix the specific bug. The right way to handle that (IMO) would have been to move that wider discussion to emacs-devel. Let the discussion here decide what changes, if any, to make. At least expose more eyeballs to the wider question at hand. (That's happening now - for this one, but the changes were already made, without wider discussion.) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-02 22:14 ` [External] : " Drew Adams @ 2021-02-03 3:35 ` Eli Zaretskii 2021-02-03 4:44 ` Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 3:35 UTC (permalink / raw) To: Drew Adams; +Cc: ofv, emacs-devel > From: Drew Adams <drew.adams@oracle.com> > CC: "emacs-devel@gnu.org" <emacs-devel@gnu.org> > Date: Tue, 2 Feb 2021 22:14:02 +0000 > > > > I have no idea about how to effectively implement those filters, > > apart > > > from implementing an advanced A.I., but then I would prefer > > dedicating > > > the next 30 years of my life to something else. > > > > Well, then maybe someone will volunteer to do this job for you and > > others, and call people's attention to discussions on the bug list > > that might interest you and others. > > This seems like a cop-out, to me. The Emacs developers are volunteers doing this job on their own free time and as much as their resources allow. When there's something the community would like to be done that the developers cannot afford doing, it is customary to call for volunteers to fill that niche. That's the spirit in Free Software projects developed by volunteers, and there's nothing wrong with that, certainly not something that deserves derogatory remarks such as the one above. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 3:35 ` Eli Zaretskii @ 2021-02-03 4:44 ` Drew Adams 2021-02-03 5:36 ` Eli Zaretskii 2021-02-05 5:46 ` Richard Stallman 0 siblings, 2 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 4:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv@wanadoo.es, emacs-devel@gnu.org > > > > I have no idea about how to effectively implement > > > > those filters, apart from implementing an advanced > > > > A.I., but then I would prefer dedicating > > > > the next 30 years of my life to something else. > > > > > > Well, then maybe someone will volunteer to do this job for you and > > > others, and call people's attention to discussions on the bug list > > > that might interest you and others. > > > > This seems like a cop-out, to me. > > The Emacs developers are volunteers doing this job on their own free > time and as much as their resources allow. When there's something the > community would like to be done that the developers cannot afford > doing, it is customary to call for volunteers to fill that niche. > That's the spirit in Free Software projects developed by volunteers, > and there's nothing wrong with that, certainly not something that > deserves derogatory remarks such as the one above. You quoted out of context and went off on something else. My point was that, instead of relying on _anyone_ doing the suggested new job, it should be everyone's job in a bug-thread to move a discussion to emacs-devel if it ranges beyond the bug/improvement in question (and if it's to be continued at all), and especially if it seems to be leading toward a choice of whether to make wider changes. Not having everyone accept _that_ responsibility, and instead expecting some designated person to alone be responsible for calling emacs-devel attention to bug-list discussions that might be of interest, would seem to be a cop-out, yes - by all of us. And in particular by anyone in a bug thread who might be tempted to go ahead and make changes wider than the bug. Let's please try not to change big things in bug threads anymore. There's nothing derogatory, toward anyone, in what I wrote. Quite the contrary. Let's all assume this responsibility, and not push it onto some new role. I called for us to manage bug threads in this regard, and not just expect some dedicated town-crier to alert emacs-devel. Let's together try to move discussion to emacs-devel when it goes beyond a particular bug and starts discussing wider possible changes. That's the problem to solve: move relevant discussion to emacs-devel. You proposed designating someone to be responsible for that. I said that would seem to be a cop-out; we should all be responsible, and in particular anyone considering making a change wider than what the bug calls for. Emacs-devel is the right place to discuss possible changes that are big. More eyeballs, more ideas, more corrections. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 4:44 ` Drew Adams @ 2021-02-03 5:36 ` Eli Zaretskii 2021-02-03 16:03 ` Drew Adams 2021-02-05 5:46 ` Richard Stallman 1 sibling, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 5:36 UTC (permalink / raw) To: Drew Adams; +Cc: ofv@wanadoo.es, emacs-devel@gnu.org On February 3, 2021 6:44:01 AM GMT+02:00, Drew Adams <drew.adams@oracle.com> wrote: > > > > > Well, then maybe someone will volunteer to do this job for you > and > > > > others, and call people's attention to discussions on the bug > list > > > > that might interest you and others. > > > > > > This seems like a cop-out, to me. > > > > The Emacs developers are volunteers doing this job on their own free > > time and as much as their resources allow. When there's something > the > > community would like to be done that the developers cannot afford > > doing, it is customary to call for volunteers to fill that niche. > > That's the spirit in Free Software projects developed by volunteers, > > and there's nothing wrong with that, certainly not something that > > deserves derogatory remarks such as the one above. > > You quoted out of context and went off on something else. > > My point was that, instead of relying on _anyone_ > doing the suggested new job, it should be everyone's > job in a bug-thread to move a discussion to emacs-devel > if it ranges beyond the bug/improvement in question (and > if it's to be continued at all), and especially if it > seems to be leading toward a choice of whether to make > wider changes. IME, there's no "we" in volunteer based Free Software projects such as this one. Saying "we should do this-and-that" or "this-and-that should be everyone's job" has only one consequence: that no one will do it. The only way it could work is to interpret "we" as meaning the head maintainers. I thought you were using this only sensible meaning of "we", and responded to that. But if you believe that just saying "we should" will get the thing done, then you have said that already, and so we should simply wait for it to happen, because "we all" will do it. Right? ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 5:36 ` Eli Zaretskii @ 2021-02-03 16:03 ` Drew Adams 2021-02-03 16:37 ` Stefan Monnier 2021-02-03 17:02 ` Eli Zaretskii 0 siblings, 2 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv@wanadoo.es, emacs-devel@gnu.org > > My point was that, instead of relying on _anyone_ > > doing the suggested new job, it should be everyone's > > job in a bug-thread to move a discussion to emacs-devel > > if it ranges beyond the bug/improvement in question (and > > if it's to be continued at all), and especially if it > > seems to be leading toward a choice of whether to make > > wider changes. > > IME, there's no "we" in volunteer based Free Software projects such as > this one. Saying "we should do this-and-that" or "this-and-that should > be everyone's job" has only one consequence: that no one will do it. Currently, someone _is_ doing something. Someone is making changes that range beyond the needs/request of particular bug/improvement reported. That's what should be fixed, IMO. Let's stop doing that. Instead of just making some such wide-ranging change, start a discussion on emacs-devel. Anyone in a bug discussion can do that. And it _especially_ behooves anyone who's thinking about instead just making a change without such wider discussion. Designating a single volunteer to follow all bug threads, and signal to emacs-devel whenever s?he thinks the wider list is relevant, is (IMO) not too likely to help. But if you as maintainer think that that's the solution, go for it. There's a _problem_. I don't think what you proposed sounds like a great solution. I'll be happy to be proven wrong. The point is to fix the problem, somehow. I suggested instead that those _actually_ participating in a given bug thread monitor themselves - that bug discussion - and DTRT: 1. Don't just make a wider change. 2. Do start a discussion on emacs-devel about the wider question. > The only way it could work is to interpret "we" as meaning the head > maintainers. I thought you were using this only sensible meaning of > "we", and responded to that. > > But if you believe that just saying "we should" will get the thing > done, then you have said that already, and so we should simply wait for > it to happen, because "we all" will do it. Right? IMO, it starts by #1: those who've been making wide changes in bug threads refrain from doing that. And yes, #2: everyone in bug threads start to think more about not making such changes, and instead moving wide discussions to emacs-devel. Just one opinion. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 16:03 ` Drew Adams @ 2021-02-03 16:37 ` Stefan Monnier 2021-02-03 17:02 ` Eli Zaretskii 1 sibling, 0 replies; 294+ messages in thread From: Stefan Monnier @ 2021-02-03 16:37 UTC (permalink / raw) To: Drew Adams; +Cc: ofv@wanadoo.es, Eli Zaretskii, emacs-devel@gnu.org > Currently, someone _is_ doing something. I'm so glad someone is, indeed. Stefan ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 16:03 ` Drew Adams 2021-02-03 16:37 ` Stefan Monnier @ 2021-02-03 17:02 ` Eli Zaretskii 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 17:02 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel > From: Drew Adams <drew.adams@oracle.com> > CC: "ofv@wanadoo.es" <ofv@wanadoo.es>, > "emacs-devel@gnu.org" > <emacs-devel@gnu.org> > Date: Wed, 3 Feb 2021 16:03:32 +0000 > > > IME, there's no "we" in volunteer based Free Software projects such as > > this one. Saying "we should do this-and-that" or "this-and-that should > > be everyone's job" has only one consequence: that no one will do it. > > Currently, someone _is_ doing something. > Someone is making changes that range > beyond the needs/request of particular > bug/improvement reported. The prerogative to decide whether some solution is or isn't within the needs of a problem belongs to the maintainers. If you want to be part of this decision-making process, please volunteer to join the maintenance team. Otherwise, you will have to trust us to make those decisions. > That's what should be fixed, IMO. Let's > stop doing that. Instead of just making > some such wide-ranging change, start a > discussion on emacs-devel. I'm okay with someone -- anyone -- starting a discussion on emacs-devel about anything being discussed on the bug list. Just don't expect Lars and myself to do it every time -- or even most of the time. We have too much on our plates to afford doing this additional job, which we consider much less important than actually working on the issues. > I suggested instead that those _actually_ > participating in a given bug thread monitor > themselves - that bug discussion - and DTRT: > > 1. Don't just make a wider change. > 2. Do start a discussion on emacs-devel > about the wider question. Once again, these decisions are our prerogative. Your suggestions are noted, but are unlikely to be implemented, unless someone volunteers to start these discussions when people think they should be started. This has been said already, time and again, so please stop reiterating the same unfair demands, and instead consider helping us more, especially where you are motivated to help -- in making more discussions on emacs-devel. > > But if you believe that just saying "we should" will get the thing > > done, then you have said that already, and so we should simply wait for > > it to happen, because "we all" will do it. Right? > > IMO, it starts by #1: those who've been > making wide changes in bug threads refrain > from doing that. We won't! Your demands are out of line. We are here to develop Emacs, and we will continue doing that as best as we can, unless the community thinks we are doing harm, in which case the community should simply ask us to step down. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 4:44 ` Drew Adams 2021-02-03 5:36 ` Eli Zaretskii @ 2021-02-05 5:46 ` Richard Stallman 2021-02-05 7:54 ` Eli Zaretskii 2021-02-05 16:55 ` Drew Adams 1 sibling, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-05 5:46 UTC (permalink / raw) To: Drew Adams; +Cc: ofv, eliz, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > My point was that, instead of relying on _anyone_ any one person, I think that means. > doing the suggested new job, it should be everyone's > job in a bug-thread to move a discussion to emacs-devel > if it ranges beyond the bug/improvement in question (and > if it's to be continued at all), and especially if it > seems to be leading toward a choice of whether to make > wider changes. I think this shoula also apply to considering a feature that would be an incompatibility, or would voilate established conventions and patterns. Incompatibilities include changing the behavior of a series of keys which isn't erroneous (for instance, C-x o o or C-x o ,). An example of violating a pattern is defining C-x followed by a capital letter to mean something different from the corresponding lower-case letter. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 5:46 ` Richard Stallman @ 2021-02-05 7:54 ` Eli Zaretskii 2021-02-05 10:04 ` Robert Pluim 2021-02-05 16:55 ` Drew Adams 1 sibling, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 7:54 UTC (permalink / raw) To: rms; +Cc: ofv, drew.adams, emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: eliz@gnu.org, ofv@wanadoo.es, emacs-devel@gnu.org > Date: Fri, 05 Feb 2021 00:46:12 -0500 > > I think this shoula also apply to considering a feature > that would be an incompatibility, or would voilate > established conventions and patterns. > > Incompatibilities include changing the behavior of a series of keys > which isn't erroneous (for instance, C-x o o or C-x o ,). > > An example of violating a pattern is defining C-x followed by a > capital letter to mean something different from the corresponding > lower-case letter. I think keeping these patterns could be a good idea, but if we want these patterns not to be violated, we need to document them first. Right now, none of these two patterns are documented (AFAICT), and at least for me it was a surprise to learn that they are patterns we are supposed to try not to break. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 7:54 ` Eli Zaretskii @ 2021-02-05 10:04 ` Robert Pluim 2021-02-05 11:34 ` Eli Zaretskii ` (3 more replies) 0 siblings, 4 replies; 294+ messages in thread From: Robert Pluim @ 2021-02-05 10:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, rms, drew.adams, emacs-devel >>>>> On Fri, 05 Feb 2021 09:54:49 +0200, Eli Zaretskii <eliz@gnu.org> said: >> Incompatibilities include changing the behavior of a series of keys >> which isn't erroneous (for instance, C-x o o or C-x o ,). >> >> An example of violating a pattern is defining C-x followed by a >> capital letter to mean something different from the corresponding >> lower-case letter. Eli> I think keeping these patterns could be a good idea, but if we want Eli> these patterns not to be violated, we need to document them first. Eli> Right now, none of these two patterns are documented (AFAICT), and at Eli> least for me it was a surprise to learn that they are patterns we are Eli> supposed to try not to break. I can understand why we should avoid changing C-x o o behaviour, but what's the rationale for the capital letter after C-x rule? Itʼs not like Iʼm likely to type a capital by mistake (and eg edebug already doesnʼt follow this rule, since it binds 'C-x X <letter>' commands). Robert ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 10:04 ` Robert Pluim @ 2021-02-05 11:34 ` Eli Zaretskii 2021-02-05 18:27 ` Drew Adams ` (2 subsequent siblings) 3 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 11:34 UTC (permalink / raw) To: Robert Pluim; +Cc: rms, emacs-devel > From: Robert Pluim <rpluim@gmail.com> > Cc: rms@gnu.org, ofv@wanadoo.es, drew.adams@oracle.com, emacs-devel@gnu.org > Date: Fri, 05 Feb 2021 11:04:24 +0100 > > I can understand why we should avoid changing C-x o o behaviour, but > what's the rationale for the capital letter after C-x rule? Itʼs not > like Iʼm likely to type a capital by mistake (and eg edebug already > doesnʼt follow this rule, since it binds 'C-x X <letter>' commands). Richard explained that up-thread; perhaps he could expand his explanation. I believe it has to do with the possibility that you hold the Shift key knowing that it won't matter. In any case, if we decide we want to keep this rule, we will explain its rationale in the manual. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 10:04 ` Robert Pluim 2021-02-05 11:34 ` Eli Zaretskii @ 2021-02-05 18:27 ` Drew Adams 2021-02-07 5:33 ` Richard Stallman 2021-02-07 5:59 ` Yuri Khan 3 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:27 UTC (permalink / raw) To: Robert Pluim, Eli Zaretskii Cc: ofv@wanadoo.es, rms@gnu.org, emacs-devel@gnu.org > what's the rationale for the capital letter > after C-x rule? Itʼs not like Iʼm likely to > type a capital by mistake (and eg edebug already > doesnʼt follow this rule, since it binds > 'C-x X <letter>' commands). I too see no good reason for making a rule about capital letters - so far. I think all letters should be handled the same. So I think it should be OK to define both `C-x f' and `C-x F', `C-x l' and `C-x L', etc. And it should be OK to define any such sequences as prefix keys. I don't think we've heard arguments yet as to why this shouldn't be the case. (And as you point out, there are already many such lower-and-upper examples, at least across 3rd-party code.) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 10:04 ` Robert Pluim 2021-02-05 11:34 ` Eli Zaretskii 2021-02-05 18:27 ` Drew Adams @ 2021-02-07 5:33 ` Richard Stallman 2021-02-07 13:22 ` Robert Pluim 2021-02-07 18:44 ` Drew Adams 2021-02-07 5:59 ` Yuri Khan 3 siblings, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-07 5:33 UTC (permalink / raw) To: Robert Pluim; +Cc: ofv, eliz, drew.adams, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I can understand why we should avoid changing C-x o o behaviour, but > what's the rationale for the capital letter after C-x rule? I think the reason is the simplicity of C-x -- that users should not have to remember one meaning for C-x a and one for C-x A, one for C-x b and one for C-x B, and so on. That's not a super-important reason. It would not be a terrible loss to eliminate that rule. And if there were only one capital letter with a special meaning after C-x, that would not be a great cost. But I don't think it would remain just one for very long. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-07 5:33 ` Richard Stallman @ 2021-02-07 13:22 ` Robert Pluim 2021-02-07 14:54 ` Ergus 2021-02-07 18:44 ` Drew Adams 1 sibling, 1 reply; 294+ messages in thread From: Robert Pluim @ 2021-02-07 13:22 UTC (permalink / raw) To: Richard Stallman; +Cc: ofv, eliz, drew.adams, emacs-devel >>>>> On Sun, 07 Feb 2021 00:33:08 -0500, Richard Stallman <rms@gnu.org> said: Richard> [[[ To any NSA and FBI agents reading my email: please consider ]]] Richard> [[[ whether defending the US Constitution against all enemies, ]]] Richard> [[[ foreign or domestic, requires you to follow Snowden's example. ]]] >> I can understand why we should avoid changing C-x o o behaviour, but >> what's the rationale for the capital letter after C-x rule? Richard> I think the reason is the simplicity of C-x -- that users should not Richard> have to remember one meaning for C-x a and one for C-x A, one for C-x Richard> b and one for C-x B, and so on. To me C-x a and C-x A (or rather C-x-S a) are different key strokes the same way C-x a and C-x b are, but I guess itʼs possible others see things differently. Richard> That's not a super-important reason. It would not be a terrible loss Richard> to eliminate that rule. And if there were only one capital letter Richard> with a special meaning after C-x, that would not be a great cost. Richard> But I don't think it would remain just one for very long. I think youʼre right there: 26 new possible keymaps, luxury! Robert ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-07 13:22 ` Robert Pluim @ 2021-02-07 14:54 ` Ergus 0 siblings, 0 replies; 294+ messages in thread From: Ergus @ 2021-02-07 14:54 UTC (permalink / raw) To: Robert Pluim; +Cc: Richard Stallman, ofv, eliz, drew.adams, emacs-devel On Sun, Feb 07, 2021 at 02:22:53PM +0100, Robert Pluim wrote: > >I think youʼre right there: 26 new possible keymaps, luxury! > Yes!, but please, let's economize them as much as possible ;p >Robert > ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-07 5:33 ` Richard Stallman 2021-02-07 13:22 ` Robert Pluim @ 2021-02-07 18:44 ` Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-07 18:44 UTC (permalink / raw) To: rms@gnu.org, Robert Pluim Cc: ofv@wanadoo.es, eliz@gnu.org, emacs-devel@gnu.org > > I can understand why we should avoid changing C-x o o behaviour, > > but what's the rationale for the capital letter after C-x rule? > > I think the reason is the simplicity of C-x -- that users should not > have to remember one meaning for C-x a and one for C-x A, one for C-x > b and one for C-x B, and so on. I can understand that. That reason is a bit similar to why `case-fold-search' is t by default, I guess. And it could be considered similar to what we do wrt "shift translation" - (elisp) `Key Sequence Input'. On the other hand, the argument about needing to _remember_ is not too strong IMO. (That's perhaps especially the case nowadays, with better, including incremental, help with key bindings.) If there are separate bindings for `C-x a' and `C-x A', I think it's pretty much always the case (and I expect likely always will be the case) that the `C-x a' binding was introduced first to Emacs, and it will likely be bound to the more commonly used of the two commands. And a user who uses either and expects the other will soon enough discover the existence of both, I think. There are a limited number of easy-to-use keys. I favor allowing both upper- and lowercase keys in this context, even keys that Emacs binds by default. (Just one opinion.) > That's not a super-important reason. It would not be a terrible loss > to eliminate that rule. And if there were only one capital letter > with a special meaning after C-x, that would not be a great cost. > But I don't think it would remain just one for very long. I too don't think there would remain just one for long. But I also don't think having multiple such is an important problem/inconvenience. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 10:04 ` Robert Pluim ` (2 preceding siblings ...) 2021-02-07 5:33 ` Richard Stallman @ 2021-02-07 5:59 ` Yuri Khan 3 siblings, 0 replies; 294+ messages in thread From: Yuri Khan @ 2021-02-07 5:59 UTC (permalink / raw) To: Robert Pluim Cc: Óscar Fuentes, Eli Zaretskii, Richard Stallman, Drew Adams, Emacs developers On Fri, 5 Feb 2021 at 17:06, Robert Pluim <rpluim@gmail.com> wrote: > what's the rationale for the capital letter after C-x rule? Itʼs not > like Iʼm likely to type a capital by mistake (and eg edebug already > doesnʼt follow this rule, since it binds 'C-x X <letter>' commands). A practical reason could be Caps Lock. When it’s on, Ctrl+X still produces C-x, but the following letter key produces a capital character. Having C-x X different from C-x x would introduce a modal error where all bindings suddenly change depending on Caps Lock. (This is another manifestation of the wrongness of binding sequences of _characters_ rather than _keys_. But that’s what we are stuck with because of backward compatibility with terminals and terminal emulators.) ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 5:46 ` Richard Stallman 2021-02-05 7:54 ` Eli Zaretskii @ 2021-02-05 16:55 ` Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 16:55 UTC (permalink / raw) To: rms@gnu.org; +Cc: ofv@wanadoo.es, eliz@gnu.org, emacs-devel@gnu.org > > My point was that, instead of relying on _anyone_ > > any one person, I think that means. Yes, that's what I meant. Thx. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 18:53 ` Eli Zaretskii 2021-02-02 19:00 ` Óscar Fuentes @ 2021-02-02 19:07 ` Dmitry Gutov 2021-02-02 19:14 ` Eli Zaretskii 2021-02-05 5:46 ` Richard Stallman 2 siblings, 1 reply; 294+ messages in thread From: Dmitry Gutov @ 2021-02-02 19:07 UTC (permalink / raw) To: Eli Zaretskii, Óscar Fuentes; +Cc: emacs-devel On 02.02.2021 20:53, Eli Zaretskii wrote: > There are more sophisticated possibilities than just these two > extremities. Text processing and tagging is a well developed > discipline these days, and Emacs is an ideal environment for that. If > you cannot afford reading everything, but still want to be involved in > discussing stuff that matters to you, how about setting up filters for > that? That implies reading email inside Emacs. Not everyone can do that. And also a significant amount of work for setting this up, duplicated by everybody. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 19:07 ` Dmitry Gutov @ 2021-02-02 19:14 ` Eli Zaretskii 0 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-02 19:14 UTC (permalink / raw) To: Dmitry Gutov; +Cc: ofv, emacs-devel > Cc: emacs-devel@gnu.org > From: Dmitry Gutov <dgutov@yandex.ru> > Date: Tue, 2 Feb 2021 21:07:47 +0200 > > On 02.02.2021 20:53, Eli Zaretskii wrote: > > There are more sophisticated possibilities than just these two > > extremities. Text processing and tagging is a well developed > > discipline these days, and Emacs is an ideal environment for that. If > > you cannot afford reading everything, but still want to be involved in > > discussing stuff that matters to you, how about setting up filters for > > that? > > That implies reading email inside Emacs. Not everyone can do that. No, not necessarily. There are text-processing and indexing tools outside of Emacs. > And also a significant amount of work for setting this up, duplicated by > everybody. If you want to be intimately involved in development decisions, there's always some price to pay. It should be expected. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 18:53 ` Eli Zaretskii 2021-02-02 19:00 ` Óscar Fuentes 2021-02-02 19:07 ` Dmitry Gutov @ 2021-02-05 5:46 ` Richard Stallman 2021-02-05 7:11 ` Sean Whitton 2021-02-05 8:02 ` Eli Zaretskii 2 siblings, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-05 5:46 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > There are more sophisticated possibilities than just these two > extremities. Text processing and tagging is a well developed > discipline these days, and Emacs is an ideal environment for that. Has anyone tried actually doing this? I don't know of a way. I read mail with Rmail. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 5:46 ` Richard Stallman @ 2021-02-05 7:11 ` Sean Whitton 2021-02-05 12:36 ` Dmitry Gutov 2021-02-07 5:33 ` Richard Stallman 2021-02-05 8:02 ` Eli Zaretskii 1 sibling, 2 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-05 7:11 UTC (permalink / raw) To: rms, Eli Zaretskii; +Cc: ofv, emacs-devel Hello, On Fri 05 Feb 2021 at 12:46AM -05, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > There are more sophisticated possibilities than just these two > > extremities. Text processing and tagging is a well developed > > discipline these days, and Emacs is an ideal environment for that. > > Has anyone tried actually doing this? I don't know of a way. > I read mail with Rmail. Yes, you can do it with notmuch and its Emacs interface, notmuch.el. You can do whatever you want. For example, I have an elisp function to mute (== any new messages to the thread are marked as read immediately) all unread threads I haven't touched, but avoid muting threads where I read messages, so I'll see new messages that later come into those threads. That's just one example; if you're willing to write the elisp you can probably make it happen. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 7:11 ` Sean Whitton @ 2021-02-05 12:36 ` Dmitry Gutov 2021-02-05 18:31 ` [External] : " Drew Adams 2021-02-07 5:33 ` Richard Stallman 1 sibling, 1 reply; 294+ messages in thread From: Dmitry Gutov @ 2021-02-05 12:36 UTC (permalink / raw) To: Sean Whitton, rms, Eli Zaretskii; +Cc: ofv, emacs-devel On 05.02.2021 09:11, Sean Whitton wrote: > You can do whatever you want. For example, I have an elisp function to > mute (== any new messages to the thread are marked as read immediately) > all unread threads I haven't touched, but avoid muting threads where I > read messages, so I'll see new messages that later come into those > threads. That's just one example; if you're willing to write the elisp > you can probably make it happen. The common objection here is that bug#46151 started about one thing (upon which a number of people would be willing to mute it), but then concluded with something pretty different. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 12:36 ` Dmitry Gutov @ 2021-02-05 18:31 ` Drew Adams 0 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:31 UTC (permalink / raw) To: Dmitry Gutov, Sean Whitton, rms@gnu.org, Eli Zaretskii Cc: ofv@wanadoo.es, emacs-devel@gnu.org > The common objection here is that bug#46151 started about one thing > (upon which a number of people would be willing to mute it), but then > concluded with something pretty different. Exactly. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 7:11 ` Sean Whitton 2021-02-05 12:36 ` Dmitry Gutov @ 2021-02-07 5:33 ` Richard Stallman 2021-02-07 18:19 ` Sean Whitton 2021-02-12 9:29 ` Jean Louis 1 sibling, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-07 5:33 UTC (permalink / raw) To: Sean Whitton; +Cc: ofv, eliz, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > You can do whatever you want. For example, I have an elisp function to > mute (== any new messages to the thread are marked as read immediately) > all unread threads I haven't touched, but avoid muting threads where I > read messages, so I'll see new messages that later come into those > threads. That's just one example; if you're willing to write the elisp > you can probably make it happen. How would I direct notmuch to recognize all messages which were sent to bug-gnu-emacs but not emacs-devel, and propose a change in the Emacs user interface? The second criterion seems to require humanlike understanding, not text processing. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 5:33 ` Richard Stallman @ 2021-02-07 18:19 ` Sean Whitton 2021-02-08 3:43 ` Richard Stallman 2021-02-12 9:29 ` Jean Louis 1 sibling, 1 reply; 294+ messages in thread From: Sean Whitton @ 2021-02-07 18:19 UTC (permalink / raw) To: rms; +Cc: ofv, eliz, emacs-devel Hello Richard, On Sun 07 Feb 2021 at 12:33AM -05, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > You can do whatever you want. For example, I have an elisp function to > > mute (== any new messages to the thread are marked as read immediately) > > all unread threads I haven't touched, but avoid muting threads where I > > read messages, so I'll see new messages that later come into those > > threads. That's just one example; if you're willing to write the elisp > > you can probably make it happen. > > How would I direct notmuch to recognize all messages which were sent > to bug-gnu-emacs but not emacs-devel, and propose a change in the > Emacs user interface? The second criterion seems to require > humanlike understanding, not text processing. notmuch has a system for committing tags on messages under a namespace to a git repository. So any contributor could tag a message as "emacs:interface_change" and then your local notmuch would be configured to include messages tagged with that in the same view as emacs-devel messages. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 18:19 ` Sean Whitton @ 2021-02-08 3:43 ` Richard Stallman 2021-02-08 5:41 ` Matt Armstrong 2021-02-08 6:11 ` Sean Whitton 0 siblings, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-08 3:43 UTC (permalink / raw) To: Sean Whitton; +Cc: ofv, eliz, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > notmuch has a system for committing tags on messages under a namespace > to a git repository. So any contributor could tag a message as > "emacs:interface_change" and then your local notmuch would be configured > to include messages tagged with that in the same view as emacs-devel > messages. For such a repo to operate, it would have to be used by a community. If enough people use it, it could do its job. How would I fetch new messages from that repo so as to actually read them? (I am not sure what notmuch is.) -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 3:43 ` Richard Stallman @ 2021-02-08 5:41 ` Matt Armstrong 2021-02-08 6:06 ` Sean Whitton 2021-02-09 6:03 ` Richard Stallman 2021-02-08 6:11 ` Sean Whitton 1 sibling, 2 replies; 294+ messages in thread From: Matt Armstrong @ 2021-02-08 5:41 UTC (permalink / raw) To: Richard Stallman; +Cc: ofv, eliz, emacs-devel, Sean Whitton Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > notmuch has a system for committing tags on messages under a namespace > > to a git repository. So any contributor could tag a message as > > "emacs:interface_change" and then your local notmuch would be configured > > to include messages tagged with that in the same view as emacs-devel > > messages. > > For such a repo to operate, it would have to be used by a community. > If enough people use it, it could do its job. > > How would I fetch new messages from that repo so as to actually read > them? > > (I am not sure what notmuch is.) I think to understand this sufficiently well, one must understand notmuch's basic design. (notmuch is under the GPL and I believe it is run as a GNU project -- when I submitted patches they asked me for FSF papers -- but don't hold me to that) At its core notmuch is a search engine over an email store. The email store must be one file per message, stored on the local disk. Notmuch "crawls" that and maintains a database that supports fast retrieval much like a search engine does. On top of this there are email clients -- initially just for Emacs, others followed. The searches can query over the message body, the usual header fields, and a set of user specified tags. This architecture is fast enough that no server needs to run -- it operates as a command line utility, where each search is a separate invocation. I am omitting many subleties the sake of brevity. Notmuch is popular among people who prefer processing their email with tags/labels, instead of folders. In notmuch, a message's tags are primary, and its location on disk is secondary (but it, too, can be a search criteria if desired). Because notmuch supports custom tags on messages, it can also be used to keep track of arbitrary states associated with messages, such as read, unread, flagged, etc. In addition to this, the user can use (mostly) arbitrary strings as tags. With this flexibility it is not a stretch to imagine a user treating their notmuch mail store as a bug database. From there, you could also imagine https://debbugs.gnu.org/ re-written to use notmuch to store its state. This leads me to https://notmuchmail.org/nmbug/ -- which is effectively just that. The notmuch project uses itself to manage its own bug database. Developers interact with the database using notmuch, change state by modifying tags on messages, and synchronize those tags using a synchronization approach built on top of git. For this to work well, individuals need: a) a full local copy of the email history for the bug system. b) a current copy of the tags (the bug db metadata) The primary difference between this notmuch base bug database and Emacs' current debbugs is distributed git vs a central server. Which brings me to: if the point is to make certain kinds of bugs more discoverable, adding that feture to debbugs is another option. For example, if the bugs tagged "interface change" were interesting, debbugs could send updates for such bugs to an "interface change" mailing list that interested people could subscribe to. Personally, I think these ideas are okay to contemplate, but I suspect these approaches are more work than the benefits they bring. In all projects I've ever worked on there has never been a clear algorithm for separating what should and should not be discussed in a broader audience, and the core maintainers are constantly having to balancing the need to just make a decision vs. the desire to cultivate an inclusive decision making process. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 5:41 ` Matt Armstrong @ 2021-02-08 6:06 ` Sean Whitton 2021-02-08 15:14 ` Eli Zaretskii 2021-02-08 17:56 ` Matt Armstrong 2021-02-09 6:03 ` Richard Stallman 1 sibling, 2 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-08 6:06 UTC (permalink / raw) To: Matt Armstrong, Richard Stallman; +Cc: ofv, eliz, emacs-devel Hello Matt, Thank you for your message -- there are however a few misunderstandings which I'll try to clear up. On Sun 07 Feb 2021 at 09:41PM -08, Matt Armstrong wrote: > (notmuch is under the GPL and I believe it is run as a GNU project -- > when I submitted patches they asked me for FSF papers -- but don't hold > me to that) It is not an FSF project. There is no copyright assignment. > From there, you could also imagine https://debbugs.gnu.org/ re-written > to use notmuch to store its state. This leads me to > https://notmuchmail.org/nmbug/ -- which is effectively just that. The > notmuch project uses itself to manage its own bug database. Developers > interact with the database using notmuch, change state by modifying tags > on messages, and synchronize those tags using a synchronization approach > built on top of git. > > For this to work well, individuals need: > > a) a full local copy of the email history for the bug system. > b) a current copy of the tags (the bug db metadata) No, individuals definitely do not require a full local copy of everything stored in the bug system for nmbug to work. You do need the git repository containing all the tags, but it is fine to only have some of the messages (e.g. only recent messages). I suggest thinking of the nmbug tagging as independent of debbugs state, at least to begin with. I think they're mostly solving different problems. > Which brings me to: if the point is to make certain kinds of bugs more > discoverable, adding that feture to debbugs is another option. For > example, if the bugs tagged "interface change" were interesting, debbugs > could send updates for such bugs to an "interface change" mailing list > that interested people could subscribe to. Well, you'd have to have debbugs mail the entire bug log to that mailing list at the point at which it gets tagged, which seems a bit awkward. The nmbug approach does not involve sending any messages in order to communicate a tagging of the thread. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 6:06 ` Sean Whitton @ 2021-02-08 15:14 ` Eli Zaretskii 2021-02-08 18:00 ` Sean Whitton 2021-02-08 17:56 ` Matt Armstrong 1 sibling, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-08 15:14 UTC (permalink / raw) To: Sean Whitton; +Cc: ofv, matt, rms, emacs-devel > From: Sean Whitton <spwhitton@spwhitton.name> > Date: Sun, 07 Feb 2021 23:06:25 -0700 > Cc: ofv@wanadoo.es, eliz@gnu.org, emacs-devel@gnu.org > > > Which brings me to: if the point is to make certain kinds of bugs more > > discoverable, adding that feture to debbugs is another option. For > > example, if the bugs tagged "interface change" were interesting, debbugs > > could send updates for such bugs to an "interface change" mailing list > > that interested people could subscribe to. > > Well, you'd have to have debbugs mail the entire bug log to that mailing > list at the point at which it gets tagged, which seems a bit awkward. That shouldn't be necessary: we have Gnus and Rmail commands to download the entire bug DB as a series of folders, and thereafter the messages can be manipulated locally. See the debbugs package in ELPA. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 15:14 ` Eli Zaretskii @ 2021-02-08 18:00 ` Sean Whitton 0 siblings, 0 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-08 18:00 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, matt, rms, emacs-devel Hello, On Mon 08 Feb 2021 at 05:14PM +02, Eli Zaretskii wrote: >> From: Sean Whitton <spwhitton@spwhitton.name> >> Date: Sun, 07 Feb 2021 23:06:25 -0700 >> Cc: ofv@wanadoo.es, eliz@gnu.org, emacs-devel@gnu.org >> >> > Which brings me to: if the point is to make certain kinds of bugs more >> > discoverable, adding that feture to debbugs is another option. For >> > example, if the bugs tagged "interface change" were interesting, debbugs >> > could send updates for such bugs to an "interface change" mailing list >> > that interested people could subscribe to. >> >> Well, you'd have to have debbugs mail the entire bug log to that mailing >> list at the point at which it gets tagged, which seems a bit awkward. > > That shouldn't be necessary: we have Gnus and Rmail commands to > download the entire bug DB as a series of folders, and thereafter the > messages can be manipulated locally. See the debbugs package in ELPA. Ah thanks. I wrote some integration between debbugs and notmuch.el for use in the Debian project, but it's not very good, and perhaps I can replace it with some of that code. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 6:06 ` Sean Whitton 2021-02-08 15:14 ` Eli Zaretskii @ 2021-02-08 17:56 ` Matt Armstrong 1 sibling, 0 replies; 294+ messages in thread From: Matt Armstrong @ 2021-02-08 17:56 UTC (permalink / raw) To: Sean Whitton; +Cc: ofv, eliz, Richard Stallman, emacs-devel Sean Whitton <spwhitton@spwhitton.name> writes: > Hello Matt, > > Thank you for your message -- there are however a few misunderstandings > which I'll try to clear up. [...] Thank you for the clarifications. [...] > No, individuals definitely do not require a full local copy of > everything stored in the bug system for nmbug to work. You do need the > git repository containing all the tags, but it is fine to only have > some of the messages (e.g. only recent messages). It may be useful to step away from discussing mechanism, and discuss the problem and use case. The problem statement as I understand it is this: a person wishes to monitor Emacs development by subscribing to emacs-devel. They also wish to know of "interesting" discussions taking place in Emacs bug reports. Today, the practical options are: a) personally subscribe to bug-gnu-emacs and either read every email or write sophisticated filters tuned to their personal interests (this is the "AI" problem). b) rely on the people conducting the bug discussions to move the discussion to emacs-devel when "appropriate." This is a manual process. I don't yet see a consensus that mechanism (b) has been inadequate as a whole, but exploring alternatives can't hurt. > I suggest thinking of the nmbug tagging as independent of debbugs > state, at least to begin with. I think they're mostly solving > different problems. Ok. I see your point and agree. >> Which brings me to: if the point is to make certain kinds of bugs >> more discoverable, adding that feture to debbugs is another option. >> For example, if the bugs tagged "interface change" were interesting, >> debbugs could send updates for such bugs to an "interface change" >> mailing list that interested people could subscribe to. > > Well, you'd have to have debbugs mail the entire bug log to that > mailing list at the point at which it gets tagged, which seems a bit > awkward. The nmbug approach does not involve sending any messages in > order to communicate a tagging of the thread. I don't think debbugs necessarily needs to email the entire history of the bug to emacs-devel. If it simply supported a way to cc'd bug emails from that point forward, to emacs-devel, that could be sufficient to hold the desired discussions in a broader context. A benefit to modifying debbugs is that it is a minimal change to existing workflows. A solution based on notmuch has the drawback that people must use notmuch. I think that may be too much to ask, for too little benefit (in this specific use case -- I think notmuch itself is great). ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 5:41 ` Matt Armstrong 2021-02-08 6:06 ` Sean Whitton @ 2021-02-09 6:03 ` Richard Stallman 2021-02-09 16:22 ` Eli Zaretskii 1 sibling, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-09 6:03 UTC (permalink / raw) To: Matt Armstrong; +Cc: ofv, eliz, emacs-devel, spwhitton [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Thank you (and Sean Whitton) for explaining notmuch to me. > Which brings me to: if the point is to make certain kinds of bugs more > discoverable, adding that feture to debbugs is another option. For > example, if the bugs tagged "interface change" were interesting, debbugs > could send updates for such bugs to an "interface change" mailing list > that interested people could subscribe to. I see an important advantage in that approach: each person does not have to switch to using notmuch as per normal way of reading mail. If enough people make a habit of tagging interface change proposals in that data base, it would be a reliable way of finding those messages. I would use it that way. The drawback for me of switching to notmuch for my incoming mail is that my incoming mail would be a lot bigger that way. I currently saye inbox files, so I have hundreds of incoming messages in one file. One directory which covers almost 1000 days from Aug 2017 to Feb 2020 is 13gig. With one message per file it could be several times that size. (Can anyone tell me an easy way to split an inbox file into separate messages one per file? I will test it and see how much bigger it gets.) However, doing this only for bug-gnu-emacs mail, and only for the last month or so, would not cause disk space problem. That approach should be feasible. It would still depend on various participants to mark feature proposals in the bug dataase. Forwarding a message to emacs-devel to move those threads there is just as easy as tagging it. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-09 6:03 ` Richard Stallman @ 2021-02-09 16:22 ` Eli Zaretskii 0 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-09 16:22 UTC (permalink / raw) To: rms; +Cc: ofv, matt, emacs-devel, spwhitton > From: Richard Stallman <rms@gnu.org> > Cc: spwhitton@spwhitton.name, ofv@wanadoo.es, eliz@gnu.org, > emacs-devel@gnu.org > Date: Tue, 09 Feb 2021 01:03:16 -0500 > > (Can anyone tell me an easy way to split an inbox file into separate > messages one per file? I will test it and see how much bigger it gets.) Do you have the 'formail' program on your system? It can do that. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 3:43 ` Richard Stallman 2021-02-08 5:41 ` Matt Armstrong @ 2021-02-08 6:11 ` Sean Whitton 1 sibling, 0 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-08 6:11 UTC (permalink / raw) To: rms; +Cc: ofv, eliz, emacs-devel Hello, On Sun 07 Feb 2021 at 10:43PM -05, Richard Stallman wrote: > How would I fetch new messages from that repo so as to actually read > them? You don't -- you receive the mail in the usual way, by subscribing to bug-gnu-emacs. But you would have that mail get delivered to a folder you don't normally read, but which notmuch still indexes. Then when you pull from the repo of tag information, you can ask notmuch to show you all messages it knows about which are from emacs-devel, and have one of the tags you are interested in. > (I am not sure what notmuch is.) Since you're already familiar with mairix: notmuch is pretty much a more featureful mairix. In particular, it has a powerful Emacs interface. So you can treat the results of a search as if they are a folder of mail to read. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 5:33 ` Richard Stallman 2021-02-07 18:19 ` Sean Whitton @ 2021-02-12 9:29 ` Jean Louis 2021-02-13 3:26 ` Richard Stallman 1 sibling, 1 reply; 294+ messages in thread From: Jean Louis @ 2021-02-12 9:29 UTC (permalink / raw) To: Richard Stallman; +Cc: ofv, eliz, emacs-devel, Sean Whitton * Richard Stallman <rms@gnu.org> [2021-02-07 08:34]: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > You can do whatever you want. For example, I have an elisp function to > > mute (== any new messages to the thread are marked as read immediately) > > all unread threads I haven't touched, but avoid muting threads where I > > read messages, so I'll see new messages that later come into those > > threads. That's just one example; if you're willing to write the elisp > > you can probably make it happen. > > How would I direct notmuch to recognize all messages which were sent > to bug-gnu-emacs but not emacs-devel, and propose a change in the > Emacs user interface? The second criterion seems to require > humanlike understanding, not text processing. References: https://notmuchmail.org/searching/ Operators Xapian implements the usual operators and a few more that are useful when searching e-mails. Note: The operators need not be capitalized for notmuch, so 'NOT' and 'not' are equivalent. The capitalized form is used below only for readability '+' and '-' notmuch search +term1 will only return results that contain 'term1'. notmuch search -term2 will return results that do not contain 'term2'. '+' and '-' can also be used on bracketed expressions or phrases (see below). AND and NOT notmuch search term1 AND term2 will return results that contain both 'term1' and 'term2'. If no explicit operator is provided all search terms are connected by an implicit AND, so these two searches: notmuch search term1 AND term2 notmuch search term1 term2 are equivalent. notmuch search term1 NOT term2 will return results that contain 'term1' but do not contain 'term2'. For a query that looks more like natural language you can also use AND NOT notmuch search term1 AND NOT term2 ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-12 9:29 ` Jean Louis @ 2021-02-13 3:26 ` Richard Stallman 2021-02-13 11:32 ` Rmail filter, or using sieve - was " Jean Louis 0 siblings, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-13 3:26 UTC (permalink / raw) To: Jean Louis; +Cc: ofv, eliz, emacs-devel, spwhitton [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Thanks for explaining the search operators, but I still don't see how to do this: > How would I direct notmuch to recognize all messages which were sent > to bug-gnu-emacs but not emacs-devel, and propose a change in the > Emacs user interface? The second criterion seems to require > humanlike understanding, not text processing. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Rmail filter, or using sieve - was Re: Concern about new binding. 2021-02-13 3:26 ` Richard Stallman @ 2021-02-13 11:32 ` Jean Louis 0 siblings, 0 replies; 294+ messages in thread From: Jean Louis @ 2021-02-13 11:32 UTC (permalink / raw) To: Richard Stallman; +Cc: ofv, eliz, emacs-devel, gray, spwhitton * Richard Stallman <rms@gnu.org> [2021-02-13 06:27]: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Thanks for explaining the search operators, but I still don't see how > to do this: > > > How would I direct notmuch to recognize all messages which were sent > > to bug-gnu-emacs but not emacs-devel, and propose a change in the > > Emacs user interface? The second criterion seems to require > > humanlike understanding, not text processing. With `notmuch' I cannot help much. `notmuch' and `mu' tools are indexers of email, so they index it into the database and offer query searches. Reference: https://www.djcbsoftware.nl/code/mu/ `notmuch' never worked for me, so I use `mu' tools. I am using Maildir format and you probably not. But the concept on how it works could also probably work in `notmuch' I just did not yet see the package for Emacs and how it works. In general, I would just create a hyperlink or function of that kind that uses the query, so if program is `mu' or function name requires QUERY as parameter, I would juse use parameter name similar like: (to:bug-gnu-emacs OR cc:bug-gnu-emacs) NOT emacs-devel But in general, as that is simple search, I would not be using indexed database. I would use filtering. I do not know `rmail' functionality, I believe it does read headers as some meta data. I may be wrong. I am reading emails as following: - on server side, all emails TO:/CC: for emacs-devel go to folder emacs-devel, they do not mix with gnu-help-emacs and other mailing lists - if email still goes to one of them there will be some mixtures, but minimized - when I read then emacs-devel with mutt, to filter out those sent to gnu-help-emacs I just filter by query (I press `l'): "! ~C help-gnu-emacs" as ~C stands both for TO: field and CC: fields and ~ stands for NOT. So filtering is easy and mutt read headers before opening all messages. From that view point it would be best to implement display filter or listing filter in RMAIL. I can read here: https://www.emacswiki.org/emacs/Rmail that back in time existed variable `rmail-message-filter' Maybe similar variable could be introduced to Rmail today. I can see there exists spam filter functionality: ,---- | rsf-definitions-alist is a variable defined in ‘rmail-spam-filter.el’. | Its value is nil | | You can customize this variable. | | Documentation: | A list of rules (definitions) matching spam messages. | Each rule is an alist, with elements of the form (FIELD . REGEXP). | The recognized FIELDS are: from, to, subject, content-type, | x-spam-status, and contents. The "contents" element refers to | the entire text of the message; all the other elements refer to | message headers of the same name. `---- I would rather include there `cc' field as well, and maybe `header' field as well. Then I assume that spam functionality moves spam to (defcustom rsf-file "~/XRMAIL-SPAM" The same functionality could be generalized to have a definition of the filter in a list and to define where to save such emails. You could as well use spam functionality to move or copy some messages to separate file and read them from the newly generated file. You could chane `rsf-file' variable to some other name while using such temporarily spam filter that basically sorts messages you wants. But I am not sure if Rmail's spam filter supports negative match, like NOT help-gnu-emacs Easier would be to use `mutt' temporarily as then you could filter out right away specific emails, including save them into separate folders. You could later read same mailboxes by using Rmail. Another solution would be to use `sieve' from GNU Mailutils to sort messages in various folders. Then you would invoke the sieve command, messages would be sorted and you would use rmail as usual to read them and answer them. The sieve script would be something like this below, but may syntax may be wrong: ,---- | require "fileinto"; | | if address ["to", "cc"] "emacs-devel@gnu.org" and address ["to", "cc"] | not "help-gnu-emacs@gnu.org" { | fileinto "INBOX.only-emacs-devel"; | } `---- You would then read INBOX.only-emacs-devel as it would not include those others. The sieve script you would run as: $ sieve -f /home/rms/INBOX-OR-RMAIL my-sieve-script and then invoke sieve when you need it. I am including Sergey Poznyakoff as he is maintainer of GNU Mailutils and can comment on this request better. Jean ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 5:46 ` Richard Stallman 2021-02-05 7:11 ` Sean Whitton @ 2021-02-05 8:02 ` Eli Zaretskii 2021-02-05 8:46 ` Eli Zaretskii 2021-02-07 5:33 ` Richard Stallman 1 sibling, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 8:02 UTC (permalink / raw) To: rms; +Cc: ofv, emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > Date: Fri, 05 Feb 2021 00:46:21 -0500 > > > There are more sophisticated possibilities than just these two > > extremities. Text processing and tagging is a well developed > > discipline these days, and Emacs is an ideal environment for that. > > Has anyone tried actually doing this? I don't know of a way. > I read mail with Rmail. I'd start with M-s (assuming you prepared in advance a suitable regexp that matches any keywords you are interested in). ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 8:02 ` Eli Zaretskii @ 2021-02-05 8:46 ` Eli Zaretskii 2021-02-05 10:21 ` Robert Pluim 2021-02-07 5:43 ` Richard Stallman 2021-02-07 5:33 ` Richard Stallman 1 sibling, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 8:46 UTC (permalink / raw) To: rms; +Cc: ofv, emacs-devel > Date: Fri, 05 Feb 2021 10:02:11 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > > > From: Richard Stallman <rms@gnu.org> > > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > > Date: Fri, 05 Feb 2021 00:46:21 -0500 > > > > > There are more sophisticated possibilities than just these two > > > extremities. Text processing and tagging is a well developed > > > discipline these days, and Emacs is an ideal environment for that. > > > > Has anyone tried actually doing this? I don't know of a way. > > I read mail with Rmail. > > I'd start with M-s (assuming you prepared in advance a suitable regexp > that matches any keywords you are interested in). Another alternative is mairix.el. And if no existing Emacs feature fits the bill, how about posting a list of requirements for such filtering? It may be high time for having such mail-filtering capabilities in Emacs. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 8:46 ` Eli Zaretskii @ 2021-02-05 10:21 ` Robert Pluim 2021-02-07 5:43 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Robert Pluim @ 2021-02-05 10:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, rms, emacs-devel >>>>> On Fri, 05 Feb 2021 10:46:40 +0200, Eli Zaretskii <eliz@gnu.org> said: Eli> And if no existing Emacs feature fits the bill, how about posting a Eli> list of requirements for such filtering? It may be high time for Eli> having such mail-filtering capabilities in Emacs. (info "(gnus) Scoring") ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 8:46 ` Eli Zaretskii 2021-02-05 10:21 ` Robert Pluim @ 2021-02-07 5:43 ` Richard Stallman 2021-02-07 15:07 ` Eli Zaretskii 1 sibling, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-07 5:43 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, rms, emacs-devel Mairix does the job, but my outgoing mail is in a format that Mairix can't read. A few weeks ago I changed the format into something I hope Mairix can understand, I have not had time to test Mairix on that input. I also have not had time to commit those changes. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 5:43 ` Richard Stallman @ 2021-02-07 15:07 ` Eli Zaretskii 2021-02-08 3:44 ` Richard Stallman 0 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-07 15:07 UTC (permalink / raw) To: rms; +Cc: ofv, emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > cc: rms@gnu.org > Date: Sun, 07 Feb 2021 00:43:15 -0500 > > Mairix does the job, but my outgoing mail is in a format that Mairix > can't read. I thought we were talking about your _incoming_ mail, and that is in the form of mbox files, which Mairix does understand. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 15:07 ` Eli Zaretskii @ 2021-02-08 3:44 ` Richard Stallman 2021-02-08 15:09 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-08 3:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I thought we were talking about your _incoming_ mail, and that is in > the form of mbox files, which Mairix does understand. Sorry, you're right about that. I hoped before to use mairix instead of grep to search my mail, and it failed because it could not handle my outgoing mail. However, for this one purpose, mairix is usable. But I don't see how a textual search can detect these messages. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-08 3:44 ` Richard Stallman @ 2021-02-08 15:09 ` Eli Zaretskii 0 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-08 15:09 UTC (permalink / raw) To: rms; +Cc: ofv, emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > Date: Sun, 07 Feb 2021 22:44:00 -0500 > > > I thought we were talking about your _incoming_ mail, and that is in > > the form of mbox files, which Mairix does understand. > > Sorry, you're right about that. I hoped before to use mairix > instead of grep to search my mail, and it failed because it > could not handle my outgoing mail. However, for this one > purpose, mairix is usable. > > But I don't see how a textual search can detect these messages. That depends on your criteria for "interesting" messages. I cannot possibly know that. How would you do that by examining the messages themselves? In any case, measures such as Mairix don't have to have 100% accuracy, they just need to lower the volume of email you aren't interested in enough to make the difference. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 8:02 ` Eli Zaretskii 2021-02-05 8:46 ` Eli Zaretskii @ 2021-02-07 5:33 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-07 5:33 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I'd start with M-s (assuming you prepared in advance a suitable regexp > that matches any keywords you are interested in). That may sound adequate in the abstract, but I can't see how a bounded list of words would reliably find me all the messages I need to read. If you think this is easy, I challenge you to find them. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-02 18:47 ` Óscar Fuentes 2021-02-02 18:53 ` Eli Zaretskii @ 2021-02-02 22:07 ` Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-02 22:07 UTC (permalink / raw) To: Óscar Fuentes, emacs-devel@gnu.org > The title of that bug report is "Set revert-buffer-function in shell > command output buffers", no hint about discussing global keybindings. > > So the effective policy is that either one reads each and every message > in emacs-bugs (which probably requires too much time even for some of > the most active emacs developers and would be a waste of time for the > most part) or be left excluded from such debates. Yup, this is a problem (IMO). IMHO, developments outside the purview of a given bug report should NOT be undertaken without either (1) filing another bug report to cover that new subject or (2) opening a discussion in mailing list emacs-devel. There are far too many consequential developments being done now in the context of bug threads. My guess is that this is (at least sometimes) to make an end-run around the need for wider discussion. Eli has even hinted that that's the case, I think, by saying that discussion in emacs-devel can be never-ending (my paraphrase of what I recall). ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 15:21 ` Kévin Le Gouguec 2021-02-02 18:47 ` Óscar Fuentes @ 2021-02-03 5:52 ` Richard Stallman 2021-02-03 6:08 ` Kévin Le Gouguec 1 sibling, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-03 5:52 UTC (permalink / raw) To: Kévin Le Gouguec; +Cc: spacibba, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > See bug#46151. > IIUC the initial request was to have a way to revert shell output > buffers; somewhere along the way the usefulness of a global binding for > revert-buffer was brought up, various options were discussed, a decision > was taken, and here we are. Did that discussion happen entirely within that bug thread? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 5:52 ` Richard Stallman @ 2021-02-03 6:08 ` Kévin Le Gouguec 2021-02-03 7:05 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: Kévin Le Gouguec @ 2021-02-03 6:08 UTC (permalink / raw) To: Richard Stallman; +Cc: spacibba, emacs-devel Richard Stallman <rms@gnu.org> writes: > > See bug#46151. > > > IIUC the initial request was to have a way to revert shell output > > buffers; somewhere along the way the usefulness of a global binding for > > revert-buffer was brought up, various options were discussed, a decision > > was taken, and here we are. > > Did that discussion happen entirely within that bug thread? I do not remember seeing any message on emacs-devel about this topic before Ergus started this thread. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 6:08 ` Kévin Le Gouguec @ 2021-02-03 7:05 ` Eli Zaretskii 2021-02-03 16:12 ` [External] : " Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 7:05 UTC (permalink / raw) To: emacs-devel, Kévin Le Gouguec, Richard Stallman; +Cc: spacibba On February 3, 2021 8:08:13 AM GMT+02:00, "Kévin Le Gouguec" <kevin.legouguec@gmail.com> wrote: > Richard Stallman <rms@gnu.org> writes: > > > > See bug#46151. > > > > > IIUC the initial request was to have a way to revert shell > output > > > buffers; somewhere along the way the usefulness of a global > binding for > > > revert-buffer was brought up, various options were discussed, a > decision > > > was taken, and here we are. > > > > Did that discussion happen entirely within that bug thread? > > I do not remember seeing any message on emacs-devel about this topic > before Ergus started this thread. FTR, that bug report was a feature request (and for a new key binding at that), so the fact it ended up introducing a new key binding shouldn't surprise anyone. It is of course OK to start here a discussion about any change that could have unintended or adverse consequences, as Ergus did in this case. I see nothing wrong with having such discussions after the change is installed. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 7:05 ` Eli Zaretskii @ 2021-02-03 16:12 ` Drew Adams 2021-02-03 17:13 ` Eli Zaretskii 2021-02-04 7:39 ` Joost Kremers 0 siblings, 2 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:12 UTC (permalink / raw) To: Eli Zaretskii, emacs-devel@gnu.org, Kévin Le Gouguec, Richard Stallman Cc: spacibba@aol.com > > > Did that discussion happen entirely within that bug thread? > > > > I do not remember seeing any message on emacs-devel about this topic > > before Ergus started this thread. That's my recollection also. > FTR, that bug report was a feature request (and for a new key binding > at that), so the fact it ended up introducing a new key binding > shouldn't surprise anyone. It was about a particular mode, not about a global key for reverting buffers in general. That's the problem: the discussion of a narrow feature request and possible solutions turned into a wider discussion. _And_ someone there decided to change Emacs to add a global key for reverting buffers. That a bug/enhancement discussion can range wider is not unusual or bad. But when it comes to making wide-ranging changes to Emacs it's maybe time to move that wider discussion to emacs-devel. That's the point (IMO). > It is of course OK to start here a discussion about any change that > could have unintended or adverse consequences, as Ergus did in this > case. I see nothing wrong with having such discussions after the > change is installed. 100% agreement. It's not too late to discuss this, and to remove that new key binding. IMO, the binding should be removed until/unless the discussion here leads to a decision to add it back again. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 16:12 ` [External] : " Drew Adams @ 2021-02-03 17:13 ` Eli Zaretskii 2021-02-03 18:01 ` spacibba--- via Emacs development discussions. 2021-02-04 7:39 ` Joost Kremers 1 sibling, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 17:13 UTC (permalink / raw) To: Drew Adams; +Cc: spacibba, kevin.legouguec, rms, emacs-devel > From: Drew Adams <drew.adams@oracle.com> > CC: "spacibba@aol.com" <spacibba@aol.com> > Date: Wed, 3 Feb 2021 16:12:01 +0000 > > > FTR, that bug report was a feature request (and for a new key binding > > at that), so the fact it ended up introducing a new key binding > > shouldn't surprise anyone. > > It was about a particular mode, not about a > global key for reverting buffers in general. The original suggestion was about a minor mode, but while discussing the solution, several people agreed that a more general solution would make sense. There's nothing wrong here. It's entirely within a legitimate process of discussing a proposal for an improvement, and it's entirely adequate for the maintainers to decide they prefer a more general solution to what originally was a more narrow one. > That's the problem: the discussion of a narrow > feature request and possible solutions turned > into a wider discussion. _And_ someone there > decided to change Emacs to add a global key > for reverting buffers. There's no problem here, none. This is how Emacs development worked for decades, and this is how it works now. Please stop misrepresenting a completely legitimate process of deciding on a solution as if it were some kind of coup d'état. It isn't. Nothing untowardly happened during the discussions of that issue, and the decision was entirely adequate. > That a bug/enhancement discussion can range > wider is not unusual or bad. But when it > comes to making wide-ranging changes to Emacs > it's maybe time to move that wider discussion > to emacs-devel. That's the point (IMO). The "maybe" part assumes some space for a judgment call, so it's unclear to me why you claim that the decision not to start such a discussion ahead of the commit must necessarily be wrong. > > It is of course OK to start here a discussion about any change that > > could have unintended or adverse consequences, as Ergus did in this > > case. I see nothing wrong with having such discussions after the > > change is installed. > > 100% agreement. It's not too late to discuss > this, and to remove that new key binding. Then what is the problem, exactly? what are you arguing about, when the discussion _was_ started, and _is_ happening? > IMO, the binding should be removed until/unless > the discussion here leads to a decision to add > it back again. Please wait till the discussion comes to its conclusion. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 17:13 ` Eli Zaretskii @ 2021-02-03 18:01 ` spacibba--- via Emacs development discussions. 2021-02-03 18:14 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: spacibba--- via Emacs development discussions. @ 2021-02-03 18:01 UTC (permalink / raw) To: Eli Zaretskii; +Cc: kevin.legouguec, rms, Drew Adams, emacs-devel > >> IMO, the binding should be removed until/unless >> the discussion here leads to a decision to add >> it back again. > >Please wait till the discussion comes to its conclusion. In my short experience here; when discussions start like this; then there is never a conclusion. They just slowly stop and no change is made at the end. I someone insists after some time, the again the same... In 3 years I have more than 30 examples... ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 18:01 ` spacibba--- via Emacs development discussions. @ 2021-02-03 18:14 ` Eli Zaretskii 2021-02-03 22:16 ` Ergus 2021-02-12 8:05 ` Jean Louis 0 siblings, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 18:14 UTC (permalink / raw) To: Ergus; +Cc: kevin.legouguec, rms, drew.adams, emacs-devel > Date: Wed, 3 Feb 2021 19:01:42 +0100 > From: Ergus <spacibba@aol.com> > Cc: Drew Adams <drew.adams@oracle.com>, emacs-devel@gnu.org, > kevin.legouguec@gmail.com, rms@gnu.org > > > > >> IMO, the binding should be removed until/unless > >> the discussion here leads to a decision to add > >> it back again. > > > >Please wait till the discussion comes to its conclusion. > > In my short experience here; when discussions start like this; then > there is never a conclusion. They just slowly stop and no change is made > at the end. I someone insists after some time, the again the same... > > In 3 years I have more than 30 examples... I don't think I understand what you are saying. You started this discussion. If you don't like how discussions happen here, why did you start it? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 18:14 ` Eli Zaretskii @ 2021-02-03 22:16 ` Ergus 2021-02-04 0:41 ` Stefan Kangas 2021-02-12 8:19 ` [External] : " Jean Louis 2021-02-12 8:05 ` Jean Louis 1 sibling, 2 replies; 294+ messages in thread From: Ergus @ 2021-02-03 22:16 UTC (permalink / raw) To: Eli Zaretskii; +Cc: kevin.legouguec, rms, drew.adams, emacs-devel On Wed, Feb 03, 2021 at 08:14:34PM +0200, Eli Zaretskii wrote: >> Date: Wed, 3 Feb 2021 19:01:42 +0100 >> From: Ergus <spacibba@aol.com> >> Cc: Drew Adams <drew.adams@oracle.com>, emacs-devel@gnu.org, >> kevin.legouguec@gmail.com, rms@gnu.org >> >> > >> >> IMO, the binding should be removed until/unless >> >> the discussion here leads to a decision to add >> >> it back again. >> > >> >Please wait till the discussion comes to its conclusion. >> >> In my short experience here; when discussions start like this; then >> there is never a conclusion. They just slowly stop and no change is made >> at the end. I someone insists after some time, the again the same... >> >> In 3 years I have more than 30 examples... > >I don't think I understand what you are saying. You started this >discussion. If you don't like how discussions happen here, why did >you start it? > I didn't want to start any discussion. I thought that the discussion had already taken place but I couldn't find it. My problem is not the discussion itself, not even the final result; but that when it becomes a "discussion" nothing finally happens FWIS. Either if it is a general discussion like "modernizing emacs" or a very specific one like this. I think Gregory already proposed the best approach, but now people are arguing about Magit, projectile or philosophical questions. IMHO, I would prefer that after a deadline you make a decision (even if it is the opposite to what I expect) and close it. Otherwise it becomes a never ending collections of emails with no final results... Best, Ergus ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 22:16 ` Ergus @ 2021-02-04 0:41 ` Stefan Kangas 2021-02-04 7:00 ` Ergus 2021-02-12 8:19 ` [External] : " Jean Louis 1 sibling, 1 reply; 294+ messages in thread From: Stefan Kangas @ 2021-02-04 0:41 UTC (permalink / raw) To: Ergus, Eli Zaretskii; +Cc: emacs-devel, rms, drew.adams, kevin.legouguec Ergus <spacibba@aol.com> writes: > My problem is not the discussion itself, not even the final result; but > that when it becomes a "discussion" nothing finally happens FWIS. Either > if it is a general discussion like "modernizing emacs" or a very > specific one like this. I mean, sure. Please help by sending patches, and more will get done. FWIW, I'm working in silence on an improved splash screen, but since I do this in my spare time I tend to work on what strikes my fancy for the day, and progress is consequently fairly slow. I have some other project ideas from the "modernizing Emacs" discussion, but again only limited time. > IMHO, I would prefer that after a deadline you make a decision (even if > it is the opposite to what I expect) and close it. Otherwise it becomes > a never ending collections of emails with no final results... I guess there is nothing to make a final decision about unless someone threatens with a patch. Please do that more. :-) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-04 0:41 ` Stefan Kangas @ 2021-02-04 7:00 ` Ergus 2021-02-04 15:05 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: Ergus @ 2021-02-04 7:00 UTC (permalink / raw) To: Stefan Kangas Cc: Eli Zaretskii, kevin.legouguec, rms, drew.adams, emacs-devel On Wed, Feb 03, 2021 at 06:41:50PM -0600, Stefan Kangas wrote: >Ergus <spacibba@aol.com> writes: > >> My problem is not the discussion itself, not even the final result; but >> that when it becomes a "discussion" nothing finally happens FWIS. Either >> if it is a general discussion like "modernizing emacs" or a very >> specific one like this. > >I mean, sure. Please help by sending patches, and more will get done. > >FWIW, I'm working in silence on an improved splash screen, but since I >do this in my spare time I tend to work on what strikes my fancy for the >day, and progress is consequently fairly slow. I have some other >project ideas from the "modernizing Emacs" discussion, but again only >limited time. > >> IMHO, I would prefer that after a deadline you make a decision (even if >> it is the opposite to what I expect) and close it. Otherwise it becomes >> a never ending collections of emails with no final results... > >I guess there is nothing to make a final decision about unless someone >threatens with a patch. Please do that more. :-) Could we revert the previous one then?? That's the first part of my question. The second is to send a new functionality patch; but for that a second decision needs to be made. Do we add a map? do we let it free? Do we bind it somewhere else? Gregory made a reasonable proposal IMO, but some other users prefer to keep it free (so simply revert the patch)... To send a patch I need to know what to do... ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-04 7:00 ` Ergus @ 2021-02-04 15:05 ` Eli Zaretskii 2021-02-04 15:56 ` Gregory Heytings 2021-02-04 16:06 ` [External] : " Drew Adams 0 siblings, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-04 15:05 UTC (permalink / raw) To: Ergus; +Cc: drew.adams, emacs-devel, stefankangas, rms, kevin.legouguec > Date: Thu, 4 Feb 2021 08:00:33 +0100 > From: Ergus <spacibba@aol.com> > Cc: Eli Zaretskii <eliz@gnu.org>, kevin.legouguec@gmail.com, rms@gnu.org, > drew.adams@oracle.com, emacs-devel@gnu.org > > >I guess there is nothing to make a final decision about unless someone > >threatens with a patch. Please do that more. :-) > > Could we revert the previous one then?? That's the first part of my > question. I'd prefer to find a binding to which people could agree, because that would leave fewer people unhappy. The two candidates proposed till now are "C-x G" and "C-x M-u". ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 15:05 ` Eli Zaretskii @ 2021-02-04 15:56 ` Gregory Heytings 2021-02-04 16:28 ` Eli Zaretskii 2021-02-04 16:46 ` Lars Ingebrigtsen 2021-02-04 16:06 ` [External] : " Drew Adams 1 sibling, 2 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 15:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel >>> I guess there is nothing to make a final decision about unless someone >>> threatens with a patch. Please do that more. :-) >> >> Could we revert the previous one then?? That's the first part of my >> question. > > I'd prefer to find a binding to which people could agree, because that > would leave fewer people unhappy. The two candidates proposed till now > are "C-x G" and "C-x M-u". > You forgot the proposal to which the mail you are replying to explicitly refers. So I'll copy it here again: it is to make "C-x g" a keymap for buffer-related operations, with in particular "C-x g r" bound to revert-buffer: C-x g c = clone-buffer C-x g d = diff-buffers C-x g f = fit-frame-to-buffer C-x g h = hexl-mode C-x g i = insert-buffer C-x g l = font-lock-mode C-x g n = rename-buffer C-x g r = revert-buffer C-x g R = revert-buffer-with-fine-grain C-x g t = toggle-truncate-lines ... BTW, Richard replied to the "C-x G" proposal: "Letters following C-x are not case-sensitive. That is a systematic rule. That rule is not sacred; for a good enough reason, we could break it. But this is not an important reason; it is not sufficient reason to break a rule." ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 15:56 ` Gregory Heytings @ 2021-02-04 16:28 ` Eli Zaretskii 2021-02-04 16:42 ` Gregory Heytings 2021-02-05 5:49 ` Richard Stallman 2021-02-04 16:46 ` Lars Ingebrigtsen 1 sibling, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-04 16:28 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > Date: Thu, 04 Feb 2021 15:56:33 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: emacs-devel@gnu.org > > >>> I guess there is nothing to make a final decision about unless someone > >>> threatens with a patch. Please do that more. :-) > >> > >> Could we revert the previous one then?? That's the first part of my > >> question. > > > > I'd prefer to find a binding to which people could agree, because that > > would leave fewer people unhappy. The two candidates proposed till now > > are "C-x G" and "C-x M-u". > > > > You forgot the proposal to which the mail you are replying to explicitly > refers. No, I didn't forget. I just prefer to solve a problem by the simplest fix, and introducing a whole new set of bindings seems more complex than strictly needed. That proposal also didn't seem to have too many supporters. But I'm okay with that as well, if it will be deemed as an acceptable fix. > BTW, Richard replied to the "C-x G" proposal: "Letters following C-x are > not case-sensitive. That is a systematic rule. That rule is not sacred; > for a good enough reason, we could break it. But this is not an important > reason; it is not sufficient reason to break a rule." I keep that in mind as well. But if enough people are okay with "C-x G" we might decide to break that rule here anyway. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 16:28 ` Eli Zaretskii @ 2021-02-04 16:42 ` Gregory Heytings 2021-02-05 5:49 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 16:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel >>> I'd prefer to find a binding to which people could agree, because that >>> would leave fewer people unhappy. The two candidates proposed till >>> now are "C-x G" and "C-x M-u". >> >> You forgot the proposal to which the mail you are replying to >> explicitly refers. > > No, I didn't forget. I just prefer to solve a problem by the simplest > fix, and introducing a whole new set of bindings seems more complex than > strictly needed. > The proposal is only to use "C-x g r" for "revert-buffer" and C-x g R" for "revert-buffer-with-fine-grain", leaving room for other buffer-related operations. These bindings are also hard to type by accident. The other proposed bindings are there only to demonstrate that the keymap would not remain empty. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 16:28 ` Eli Zaretskii 2021-02-04 16:42 ` Gregory Heytings @ 2021-02-05 5:49 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-05 5:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > BTW, Richard replied to the "C-x G" proposal: "Letters following C-x are > > not case-sensitive. That is a systematic rule. That rule is not sacred; > > for a good enough reason, we could break it. But this is not an important > > reason; it is not sufficient reason to break a rule." > I keep that in mind as well. But if enough people are okay with "C-x G" > we might decide to break that rule here anyway. Let's first look for other solutions which are good enough don't break a rule. Perhaps not making a new binding for revert-buffer is an adequate solution. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 15:56 ` Gregory Heytings 2021-02-04 16:28 ` Eli Zaretskii @ 2021-02-04 16:46 ` Lars Ingebrigtsen 2021-02-04 17:55 ` Eli Zaretskii ` (4 more replies) 1 sibling, 5 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 16:46 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > You forgot the proposal to which the mail you are replying to > explicitly refers. So I'll copy it here again: it is to make "C-x g" > a keymap for buffer-related operations, with in particular "C-x g r" > bound to revert-buffer: > > C-x g c = clone-buffer > C-x g d = diff-buffers > C-x g f = fit-frame-to-buffer > C-x g h = hexl-mode > C-x g i = insert-buffer > C-x g l = font-lock-mode > C-x g n = rename-buffer > C-x g r = revert-buffer > C-x g R = revert-buffer-with-fine-grain > C-x g t = toggle-truncate-lines Of the alternative key bindings proposed, I like this the best. I'd prefer `C-x g g' for revert-buffer, though -- it's more in like with the `g' binding in `special-mode-map', and `revert-buffer' is a command you're likely to want to execute a number of times (in some cases), while the rest of these are less keyboard-mashey. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 16:46 ` Lars Ingebrigtsen @ 2021-02-04 17:55 ` Eli Zaretskii 2021-02-04 19:29 ` Lars Ingebrigtsen 2021-02-04 18:02 ` Sean Whitton ` (3 subsequent siblings) 4 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-04 17:55 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Thu, 04 Feb 2021 17:46:19 +0100 > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > > > C-x g c = clone-buffer > > C-x g d = diff-buffers > > C-x g f = fit-frame-to-buffer > > C-x g h = hexl-mode > > C-x g i = insert-buffer > > C-x g l = font-lock-mode > > C-x g n = rename-buffer > > C-x g r = revert-buffer > > C-x g R = revert-buffer-with-fine-grain > > C-x g t = toggle-truncate-lines > > Of the alternative key bindings proposed, I like this the best. Then maybe this is what we should do. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 17:55 ` Eli Zaretskii @ 2021-02-04 19:29 ` Lars Ingebrigtsen 2021-02-04 20:23 ` Joost Kremers ` (2 more replies) 0 siblings, 3 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 19:29 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> Of the alternative key bindings proposed, I like this the best. > > Then maybe this is what we should do. Sure, but there's no hurry -- waiting a few more days to see whether anybody has a better idea is OK. The one concern about the `C-x g' binding is that Magit already recommends it, but it's unclear to me how many people actually use it, and what it's bound to. Is it just a global binding for `M-x magit'? Presumably Magit users who've bound it to that will continue to do so... and then they'll miss the new binding(s) under `C-x g', but I guess that's up to each individual user. So I don't know whether this is something we should worry about. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 19:29 ` Lars Ingebrigtsen @ 2021-02-04 20:23 ` Joost Kremers 2021-02-04 20:52 ` Lars Ingebrigtsen 2021-02-04 21:00 ` Kévin Le Gouguec 2021-02-04 21:15 ` Gregory Heytings 2 siblings, 1 reply; 294+ messages in thread From: Joost Kremers @ 2021-02-04 20:23 UTC (permalink / raw) To: emacs-devel On Thu, Feb 04 2021, Lars Ingebrigtsen wrote: > The one concern about the `C-x g' binding is that Magit already > recommends it, but it's unclear to me how many people actually use it, > and what it's bound to. Is it just a global binding for `M-x magit'? `magit-status`, to be exact. (Though `magit` is an alias for `magit-status`.) > Presumably Magit users who've bound it to that will continue to do so... Well... The thing is, Magit nowadays sets up `C-x g` (and two other bindings) by default, but *only* if those keys aren't already bound to something else. So once Emacs starts binding `C-x g` to something by default, the binding won't work for magit anymore. User who are used to using `C-x g` for `magit-status` will suddenly find themselves reverting buffers when they upgrade their Emacs. FYI, details about Magit's default bindings are here: https://magit.vc/manual/magit/Default-Bindings.html#Default-Bindings > So I don't know whether this is something we should worry about. I suspect it will lead to countless confused users asking numerous questions on every available help forum. Also, given that many Magit tutorials on the web mention `C-x g`, and assuming that many of them won't be updated, it's likely new users will be confused by this for years to come. Whether the latter should be a concern is debatable, of course: we all have to contend with outdated information on the web. But given the way Magit handles its bindings right now, it would be good to give the Magit maintainers a heads-up if the new binding is kept, so they can decide how to deal with it. -- Joost Kremers Life has its moments ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 20:23 ` Joost Kremers @ 2021-02-04 20:52 ` Lars Ingebrigtsen 2021-02-05 15:58 ` Basil L. Contovounesios 0 siblings, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 20:52 UTC (permalink / raw) To: Joost Kremers; +Cc: emacs-devel Joost Kremers <joostkremers@fastmail.fm> writes: > Well... The thing is, Magit nowadays sets up `C-x g` (and two other > bindings) by default, but *only* if those keys aren't already bound to > something else. Well, that makes the situation more ticklish than I thought. Could we convince them to bind `C-x g' unconditionally, I wonder? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 20:52 ` Lars Ingebrigtsen @ 2021-02-05 15:58 ` Basil L. Contovounesios 2021-02-06 9:57 ` Lars Ingebrigtsen 0 siblings, 1 reply; 294+ messages in thread From: Basil L. Contovounesios @ 2021-02-05 15:58 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Joost Kremers, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Joost Kremers <joostkremers@fastmail.fm> writes: > >> Well... The thing is, Magit nowadays sets up `C-x g` (and two other >> bindings) by default, but *only* if those keys aren't already bound to >> something else. > > Well, that makes the situation more ticklish than I thought. Could we > convince them to bind `C-x g' unconditionally, I wonder? They've already done so: https://github.com/magit/magit/discussions/4311 The package's main entrypoint, magit-status, used to be bound to 'C-x g' by default if the key was unbound. It is now additionally rebound if bound to revert-buffer. -- Basil ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 15:58 ` Basil L. Contovounesios @ 2021-02-06 9:57 ` Lars Ingebrigtsen 0 siblings, 0 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-06 9:57 UTC (permalink / raw) To: Basil L. Contovounesios; +Cc: Joost Kremers, emacs-devel "Basil L. Contovounesios" <contovob@tcd.ie> writes: >> Well, that makes the situation more ticklish than I thought. Could we >> convince them to bind `C-x g' unconditionally, I wonder? > > They've already done so: https://github.com/magit/magit/discussions/4311 > > The package's main entrypoint, magit-status, used to be bound to 'C-x g' > by default if the key was unbound. > > It is now additionally rebound if bound to revert-buffer. Great! It shows that the magit people as so responsive that we don't have to worry, and can just go ahead and bind `C-x g' as planned. ... JUST KIDDING. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 19:29 ` Lars Ingebrigtsen 2021-02-04 20:23 ` Joost Kremers @ 2021-02-04 21:00 ` Kévin Le Gouguec 2021-02-04 21:15 ` Thibaut Verron 2021-02-04 21:15 ` Gregory Heytings 2 siblings, 1 reply; 294+ messages in thread From: Kévin Le Gouguec @ 2021-02-04 21:00 UTC (permalink / raw) To: emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > The one concern about the `C-x g' binding is that Magit already > recommends it, but it's unclear to me how many people actually use it, > and what it's bound to. Is it just a global binding for `M-x magit'? > > Presumably Magit users who've bound it to that will continue to do so... > and then they'll miss the new binding(s) under `C-x g', but I guess > that's up to each individual user. To clarify: - C-x g is bound to magit-status, which is Magit's main entry point, - Magit includes an autoloaded form that binds C-x g if - that key sequence is not bound to anything else, and - magit-status is not already bound, and - the user hasn't set an explicit "dont-do-that" variable. (Same goes for two other bindings: C-x M-g for magit-dispatch, and C-c M-g for magit-file-dispatch.) So adding a default binding for C-x g *will* change how Magit behaves in its default configuration. I struggle to form a solid stance about the change under discussion: - I wouldn't find it outlandish for Magit to do something similar to rg.el: provide a function (say magit-enable-default-bindings) that users can call in their init file to easily setup some bindings under a prefix (that would default to C-c g). - I wouldn't mind C-x g (or C-x g g, or C-x g r) being bound to revert-buffer. - I find C-x g somewhat awkward as a prefix for buffer commands. Not really mnemonic, at least. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 21:00 ` Kévin Le Gouguec @ 2021-02-04 21:15 ` Thibaut Verron 2021-02-04 22:02 ` Kévin Le Gouguec 0 siblings, 1 reply; 294+ messages in thread From: Thibaut Verron @ 2021-02-04 21:15 UTC (permalink / raw) To: Kévin Le Gouguec; +Cc: emacs-devel 2021-02-04 22:00 UTC+01:00, Kévin Le Gouguec <kevin.legouguec@gmail.com>: > Lars Ingebrigtsen <larsi@gnus.org> writes: > >> The one concern about the `C-x g' binding is that Magit already >> recommends it, but it's unclear to me how many people actually use it, >> and what it's bound to. Is it just a global binding for `M-x magit'? >> >> Presumably Magit users who've bound it to that will continue to do so... >> and then they'll miss the new binding(s) under `C-x g', but I guess >> that's up to each individual user. > > To clarify: > > - C-x g is bound to magit-status, which is Magit's main entry point, > > - Magit includes an autoloaded form that binds C-x g if > - that key sequence is not bound to anything else, and > - magit-status is not already bound, and > - the user hasn't set an explicit "dont-do-that" variable. > > (Same goes for two other bindings: C-x M-g for magit-dispatch, and C-c > M-g for magit-file-dispatch.) > > So adding a default binding for C-x g *will* change how Magit behaves in > its default configuration. > > > I struggle to form a solid stance about the change under discussion: > > - I wouldn't find it outlandish for Magit to do something similar to > rg.el: provide a function (say magit-enable-default-bindings) that > users can call in their init file to easily setup some bindings under > a prefix (that would default to C-c g). So to be clear, we would ask hundreds/thousands/whatever of users to add a change to their init file and possibly change a binding they use daily, in order to either make room for, or override a binding they mostly never asked for? If revert-buffer is to be a new binding (with others or not) is it not worth trying to find a keymap which does not conflict with one of the (if not the) most popular of emacs' 3rd party packages? > - I find C-x g somewhat awkward as a prefix for buffer commands. Not > really mnemonic, at least. Whereas it is a good mnemonic for 'G'it. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 21:15 ` Thibaut Verron @ 2021-02-04 22:02 ` Kévin Le Gouguec 2021-02-12 9:17 ` Jean Louis 0 siblings, 1 reply; 294+ messages in thread From: Kévin Le Gouguec @ 2021-02-04 22:02 UTC (permalink / raw) To: Thibaut Verron; +Cc: emacs-devel Thibaut Verron <thibaut.verron@gmail.com> writes: >> - I wouldn't find it outlandish for Magit to do something similar to >> rg.el: provide a function (say magit-enable-default-bindings) that >> users can call in their init file to easily setup some bindings under >> a prefix (that would default to C-c g). > > So to be clear, we would ask hundreds/thousands/whatever of users to > add a change to their init file and possibly change a binding they use > daily, in order to either make room for, or override a binding they > mostly never asked for? I've used Magit daily for years, and I call magit-status through C-x g dozens of times an hour. It is very much ingrained in my muscle memory, and it would take me a lot of frustrating misinputs to retrain myself to use another binding. In the grand scheme of things though, and for the sake of more consistent conventions across the package ecosystem, I wouldn't fault Emacs maintainers for reclaiming a binding that, IMO, is their prerogative to make use of, so long as whatever C-x g ends up being bound to makes some sort of sense and/or is useful. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 22:02 ` Kévin Le Gouguec @ 2021-02-12 9:17 ` Jean Louis 2021-02-12 17:28 ` Kévin Le Gouguec 0 siblings, 1 reply; 294+ messages in thread From: Jean Louis @ 2021-02-12 9:17 UTC (permalink / raw) To: Kévin Le Gouguec; +Cc: Thibaut Verron, emacs-devel * Kévin Le Gouguec <kevin.legouguec@gmail.com> [2021-02-05 01:03]: > Thibaut Verron <thibaut.verron@gmail.com> writes: > > >> - I wouldn't find it outlandish for Magit to do something similar to > >> rg.el: provide a function (say magit-enable-default-bindings) that > >> users can call in their init file to easily setup some bindings under > >> a prefix (that would default to C-c g). > > > > So to be clear, we would ask hundreds/thousands/whatever of users to > > add a change to their init file and possibly change a binding they use > > daily, in order to either make room for, or override a binding they > > mostly never asked for? > > I've used Magit daily for years, and I call magit-status through C-x g > dozens of times an hour. It is very much ingrained in my muscle memory, > and it would take me a lot of frustrating misinputs to retrain myself to > use another binding. You could upgrade the muscle memory and just switch to C-c g or something else. When I was playing with prefixes I have discovered that I just have to split memorizing the prefix and letters behind and whatever prefix I change or introduce I can use it again with those letters behind. I have just tried it and changed my favorit prefix from `s-p' to `C-c p' and I do not even think about the `C-p p' when invoking it, that goes fast as I have put `C-c p' in the prefix slot of the muscle memory and all other keys in the map slot of the muscle memory. I have no other way to express me but that is about how it is. I could change prefix to F5 and have the same effect. Try it out. Here is how I have defined my map. (define-prefix-command 'cf-map) (global-set-key (kbd "s-p") 'cf-map) but then today I have changed it to: (global-set-key (kbd "C-c p") 'cf-map) and (global-set-key (kbd "<f5>") 'cf-map) and I can equally and without problems invoke {<f5> j} to find people by their phone number or {C-c p j} to do the same. So now I just need to know one time, like 1 second to remember what is the prefix. It does not matter, I can now press {C-c p j} to find people in the database by using the phone number ot {C-c p L} to list all the recently entered people into the database. It may look complex or sound complex. My practical use case is simple. Switching from prefix to prefix is easy for me. Try it out. Excercise few times. Maybe you discover something new. Jean ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-12 9:17 ` Jean Louis @ 2021-02-12 17:28 ` Kévin Le Gouguec 0 siblings, 0 replies; 294+ messages in thread From: Kévin Le Gouguec @ 2021-02-12 17:28 UTC (permalink / raw) To: emacs-devel Jean Louis <bugs@gnu.support> writes: >> I've used Magit daily for years, and I call magit-status through C-x g >> dozens of times an hour. It is very much ingrained in my muscle memory, >> and it would take me a lot of frustrating misinputs to retrain myself to >> use another binding. > > You could upgrade the muscle memory and just switch to C-c g or > something else. (Note that, in the part of the message you left out, I said I wouldn't mind Emacs maintainers binding C-x g to something new, as I consider it to be their prerogative.) > Try it out. Excercise few times. Maybe you discover something new. FWIW, I've spent this past week with (my/define-prefix-command my/magit-map "Keymap for Magit commands." '(("c" magit-file-dispatch) ("f" magit-find-file) ("g" magit-status) ("x" magit-dispatch))) (global-set-key (kbd "C-c g") 'my/magit-map) … and been none the worse for wear. What "frustrating misinputs" I had were mostly due to forgetting to "git pull" my dotfiles on another computer. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 19:29 ` Lars Ingebrigtsen 2021-02-04 20:23 ` Joost Kremers 2021-02-04 21:00 ` Kévin Le Gouguec @ 2021-02-04 21:15 ` Gregory Heytings 2021-02-04 22:12 ` Lars Ingebrigtsen ` (2 more replies) 2 siblings, 3 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 21:15 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > > Presumably Magit users who've bound it to that will continue to do so... > and then they'll miss the new binding(s) under `C-x g', but I guess > that's up to each individual user. > > So I don't know whether this is something we should worry about. > There is always the possibility to use another free C-x LETTER slot. The other ones are c j w x y. (A few symbols are also free, for example # / % : _ !.) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 21:15 ` Gregory Heytings @ 2021-02-04 22:12 ` Lars Ingebrigtsen 2021-02-05 0:45 ` [External] : " Drew Adams 2021-02-04 22:24 ` Juri Linkov 2021-02-04 23:20 ` Jose A. Ortega Ruiz 2 siblings, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 22:12 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel Gregory Heytings <gregory@heytings.org> writes: > There is always the possibility to use another free C-x LETTER slot. > The other ones are c j w x y. (A few symbols are also free, for > example # / % : _ !.) Perhaps `C-x x <letter>' would be nice for these buffer-related commands? It's not exactly mnemonic, but it has a certain ring to it. Any major packages that have claimed the `C-x x' binding, then? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-04 22:12 ` Lars Ingebrigtsen @ 2021-02-05 0:45 ` Drew Adams 2021-02-05 4:13 ` Karl Fogel 0 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-05 0:45 UTC (permalink / raw) To: Lars Ingebrigtsen, Gregory Heytings; +Cc: emacs-devel@gnu.org > Perhaps `C-x x <letter>' would be nice for these buffer-related > commands? It's not exactly mnemonic, but it has a certain ring to it. > > Any major packages that have claimed the `C-x x' binding, then? Please, no. I had a zillion bindings on prefix key `C-x p' for Bookmark+. Then, recently, you grabbed that key for Project, paying no attention to my requests to please not do that. Maybe my packages don't count for you as "any major packages", but they count to me. When you did that, I moved all of my `C-x p' keys to prefix key `C-x x'. And now? You want to take over `C-x x' also. When will this stop? Can't we please have a _moratorium__ on Emacs using up, with default bindings, the few remaining unused keys? You guys are now desperately _looking_ for some commands that you might be able to clump together on a prefix key, just because you've decided to waste a default binding on `revert-buffer'. You have a solution in search of a problem. 35+ years Emacs lived without a default binding for `revert-buffer'. Now, suddenly you can't do without one. ___ https://www.emacswiki.org/emacs/BookmarkPlus#BookmarkPrefixKeys ___ Global Bindings Starting With C-x x: key binding --- ------- C-x x C-b bmkp-previous-bookmark-repeat C-x x C-f bmkp-next-bookmark-repeat C-x x C-j bmkp-jump-to-list C-x x C-k bmkp-delete-bookmarks C-x x C-l bmkp-switch-to-bookmark-file-this-file/buffer C-x x RET bmkp-toggle-autonamed-bookmark-set/delete C-x x C-n bmkp-next-bookmark-this-file/buffer-repeat C-x x C-p bmkp-previous-bookmark-this-file/buffer-repeat C-x x C-s bmkp-save-bookmarks-this-file/buffer C-x x C-u bmkp-unlight-bookmark-here C-x x ESC Prefix Command C-x x , bmkp-this-file/buffer-bmenu-list C-x x 0 bmkp-empty-file C-x x 2 bmkp-clone-bookmark C-x x 5 bookmark-jump-other-frame C-x x : bmkp-choose-navlist-of-type C-x x = bmkp-bookmarks-lighted-at-point C-x x ? bmkp-describe-bookmark-lighted-here C-x x B bmkp-choose-navlist-from-bookmark-list C-x x E bmkp-edit-bookmark-record C-x x H bmkp-light-bookmarks C-x x I bookmark-insert-location C-x x K bmkp-set-desktop-bookmark C-x x L bmkp-switch-bookmark-file-create C-x x M bookmark-set-no-overwrite C-x x N bmkp-navlist-bmenu-list C-x x U bmkp-unlight-bookmarks C-x x a Prefix Command C-x x b bmkp-previous-bookmark-repeat C-x x c Prefix Command C-x x d bookmark-delete C-x x e edit-bookmarks C-x x f bmkp-next-bookmark-repeat C-x x g bookmark-jump C-x x h bmkp-light-bookmark-this-buffer C-x x i bookmark-insert C-x x j bookmark-jump C-x x l bookmark-load C-x x m bmkp-bookmark-set-confirm-overwrite C-x x n bmkp-next-bookmark-this-file/buffer-repeat C-x x o bookmark-jump-other-window C-x x p bmkp-previous-bookmark-this-file/buffer-repeat C-x x q bookmark-jump-other-window C-x x r bmkp-edit-bookmark-name-and-location C-x x s bookmark-save C-x x t Prefix Command C-x x u bmkp-unlight-bookmark-this-buffer C-x x w bookmark-write C-x x x bmkp-toggle-autotemp-on-set C-x x y bmkp-set-bookmark-file-bookmark C-x x <C-down> bmkp-next-lighted-this-buffer-repeat C-x x <C-up> bmkp-previous-lighted-this-buffer-repeat C-x x <delete> bmkp-delete-bookmarks C-x x <deletechar> bmkp-delete-bookmarks C-x x <deleteline> bmkp-delete-bookmarks C-x x <down> bmkp-next-bookmark-this-file/buffer-repeat C-x x <kp-delete> bmkp-delete-bookmarks C-x x <left> bmkp-previous-bookmark-repeat C-x x <next> bmkp-next-bookmark-w32-repeat C-x x <prior> bmkp-previous-bookmark-w32-repeat C-x x <right> bmkp-next-bookmark-repeat C-x x <up> bmkp-previous-bookmark-this-file/buffer-repeat C-x x <wheel-down> bmkp-next-bookmark-this-file/buffer-repeat C-x x <wheel-up> bmkp-previous-bookmark-this-file/buffer-repeat C-x x t C-y bmkp-paste-add-tags C-x x t ESC Prefix Command C-x x t + Prefix Command C-x x t - Prefix Command C-x x t 0 bmkp-remove-all-tags C-x x t V bmkp-set-tag-value-for-navlist C-x x t c bmkp-copy-tags C-x x t d bmkp-remove-tags-from-all C-x x t e bmkp-edit-tags C-x x t l bmkp-list-all-tags C-x x t p bmkp-paste-add-tags C-x x t q bmkp-paste-replace-tags C-x x t r bmkp-rename-tag C-x x t v bmkp-set-tag-value C-x x c C-k bmkp-wrap-bookmark-with-last-kbd-macro C-x x c RET bmkp-toggle-autonamed-bookmark-set/delete C-x x c ESC Prefix Command C-x x c F bmkp-make-function-bookmark C-x x c K bmkp-set-desktop-bookmark C-x x c M bookmark-set C-x x c a bmkp-autofile-set C-x x c f bmkp-file-target-set C-x x c m bmkp-bookmark-set-confirm-overwrite C-x x c s bmkp-set-sequence-bookmark C-x x c u bmkp-url-target-set C-x x c y bmkp-set-bookmark-file-bookmark C-x x a B bmkp-annotate-all-bookmarks-this-file/buffer C-x x a S bookmark-show-all-annotations C-x x a a bmkp-annotate-bookmark C-x x a b bmkp-annotate-bookmark-this-file/buffer C-x x a e bookmark-edit-annotation C-x x a s bookmark-show-annotation C-x x M-w bmkp-set-snippet-bookmark C-x x t M-w bmkp-copy-tags C-x x t - a bmkp-untag-a-file C-x x t - b bmkp-remove-tags C-x x t + a bmkp-tag-a-file C-x x t + b bmkp-add-tags C-x x c M-w bmkp-set-snippet-bookmark ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 0:45 ` [External] : " Drew Adams @ 2021-02-05 4:13 ` Karl Fogel 2021-02-05 7:27 ` Jose A. Ortega Ruiz ` (2 more replies) 0 siblings, 3 replies; 294+ messages in thread From: Karl Fogel @ 2021-02-05 4:13 UTC (permalink / raw) To: Drew Adams; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel@gnu.org Drew is making a good point here (I realize he sounds a bit annoyed, but I can sympathize). His proposal make sense -- or at any rate, there's a good proposal easily derived from what he's saying. If Emacs were to declare that from this point forward it will leave all currently-unbound `C-x LETTER' unbound, and *recommend* that packages not bind them by default either, then we'd have a few more very convenient keybindings left over for users. A package could still suggest `C-x SOME-SPECIFIC-LETTER' as a binding for some entry point in the package, and even provide convenience mechanisms to cause that binding to happen. We can't easil survey users about their bindings, but anecdotally it seem like a lot of people -- not only Drew -- have been using those last few remaining slots under `C-x' for their own favorite things. (The fact that some packages also use that space is a clue that people consider that space to be desirable real estate in the mental keymap universe.) This isn't about Magit per se -- it's bigger than Magit. However, this proposal would make it somewhat more okay for Magit to continue binding `C-x g' by default too. While Magit wouldn't be following the new recommendation either, at least Magit would not have to worry about clobbering some existing binding. Given that Magit is so popular and so many people are accustomed to that binding already, this is still a decent outcome in the specific case of Magit anyway. (The fact that Magit also binds `C-x M-g' by default is a separate headache, but that doesn't have to be resolved for this proposal to be considered.) These days, when we decide to make a new global function binding in default Emacs, it's hard to imagine how the new binding could be *so* important that it must take over one of the existing free convenient slots and yet somehow not be important enough for us to just replace some other less important binding (thus leaving the free space free). I'm not saying that scenario couldn't happen, but it's going to be rare. It's certainly not happening in the case of `revert-buffer'. I mean, let's ask ourselves: if having `revert-buffer' on a convenient key isn't important enough to replace some other little-used binding, how on earth can it be important enough to replace one of the free bindings? After all, those free bindings aren't *actually* free -- users are using them for lots of things of their own choosing! Emacs has always rewarded users who learn to customize their keybindings. Let's make it possible for that reward to be as large as possible by guaranteeing them some conveniently free slots for their favorite functions and keymap prefixes. The `C-c LETTER' space is great, but it's only 26 letters. I used them up long ago, and I'm sure I'm not alone. Having 4 or 5 more letters under `C-x' would be a significant boost. Best regards, -Karl On 05 Feb 2021, Drew Adams wrote: >> Perhaps `C-x x <letter>' would be nice for these buffer-related >> commands? It's not exactly mnemonic, but it has a certain ring to it. >> >> Any major packages that have claimed the `C-x x' binding, then? > >Please, no. I had a zillion bindings on prefix >key `C-x p' for Bookmark+. > >Then, recently, you grabbed that key for Project, >paying no attention to my requests to please not >do that. Maybe my packages don't count for you >as "any major packages", but they count to me. > >When you did that, I moved all of my `C-x p' keys >to prefix key `C-x x'. And now? You want to >take over `C-x x' also. > >When will this stop? Can't we please have a >_moratorium__ on Emacs using up, with default >bindings, the few remaining unused keys? > >You guys are now desperately _looking_ for some >commands that you might be able to clump together >on a prefix key, just because you've decided to >waste a default binding on `revert-buffer'. > >You have a solution in search of a problem. > >35+ years Emacs lived without a default binding >for `revert-buffer'. Now, suddenly you can't >do without one. >___ > > >https://www.emacswiki.org/emacs/BookmarkPlus#BookmarkPrefixKeys >___ > > >Global Bindings Starting With C-x x: >key binding >--- ------- > >C-x x C-b bmkp-previous-bookmark-repeat >C-x x C-f bmkp-next-bookmark-repeat >C-x x C-j bmkp-jump-to-list >C-x x C-k bmkp-delete-bookmarks >C-x x C-l bmkp-switch-to-bookmark-file-this-file/buffer >C-x x RET bmkp-toggle-autonamed-bookmark-set/delete >C-x x C-n bmkp-next-bookmark-this-file/buffer-repeat >C-x x C-p bmkp-previous-bookmark-this-file/buffer-repeat >C-x x C-s bmkp-save-bookmarks-this-file/buffer >C-x x C-u bmkp-unlight-bookmark-here >C-x x ESC Prefix Command >C-x x , bmkp-this-file/buffer-bmenu-list >C-x x 0 bmkp-empty-file >C-x x 2 bmkp-clone-bookmark >C-x x 5 bookmark-jump-other-frame >C-x x : bmkp-choose-navlist-of-type >C-x x = bmkp-bookmarks-lighted-at-point >C-x x ? bmkp-describe-bookmark-lighted-here >C-x x B bmkp-choose-navlist-from-bookmark-list >C-x x E bmkp-edit-bookmark-record >C-x x H bmkp-light-bookmarks >C-x x I bookmark-insert-location >C-x x K bmkp-set-desktop-bookmark >C-x x L bmkp-switch-bookmark-file-create >C-x x M bookmark-set-no-overwrite >C-x x N bmkp-navlist-bmenu-list >C-x x U bmkp-unlight-bookmarks >C-x x a Prefix Command >C-x x b bmkp-previous-bookmark-repeat >C-x x c Prefix Command >C-x x d bookmark-delete >C-x x e edit-bookmarks >C-x x f bmkp-next-bookmark-repeat >C-x x g bookmark-jump >C-x x h bmkp-light-bookmark-this-buffer >C-x x i bookmark-insert >C-x x j bookmark-jump >C-x x l bookmark-load >C-x x m bmkp-bookmark-set-confirm-overwrite >C-x x n bmkp-next-bookmark-this-file/buffer-repeat >C-x x o bookmark-jump-other-window >C-x x p bmkp-previous-bookmark-this-file/buffer-repeat >C-x x q bookmark-jump-other-window >C-x x r bmkp-edit-bookmark-name-and-location >C-x x s bookmark-save >C-x x t Prefix Command >C-x x u bmkp-unlight-bookmark-this-buffer >C-x x w bookmark-write >C-x x x bmkp-toggle-autotemp-on-set >C-x x y bmkp-set-bookmark-file-bookmark >C-x x <C-down> bmkp-next-lighted-this-buffer-repeat >C-x x <C-up> bmkp-previous-lighted-this-buffer-repeat >C-x x <delete> bmkp-delete-bookmarks >C-x x <deletechar> bmkp-delete-bookmarks >C-x x <deleteline> bmkp-delete-bookmarks >C-x x <down> bmkp-next-bookmark-this-file/buffer-repeat >C-x x <kp-delete> bmkp-delete-bookmarks >C-x x <left> bmkp-previous-bookmark-repeat >C-x x <next> bmkp-next-bookmark-w32-repeat >C-x x <prior> bmkp-previous-bookmark-w32-repeat >C-x x <right> bmkp-next-bookmark-repeat >C-x x <up> bmkp-previous-bookmark-this-file/buffer-repeat >C-x x <wheel-down> bmkp-next-bookmark-this-file/buffer-repeat >C-x x <wheel-up> bmkp-previous-bookmark-this-file/buffer-repeat > >C-x x t C-y bmkp-paste-add-tags >C-x x t ESC Prefix Command >C-x x t + Prefix Command >C-x x t - Prefix Command >C-x x t 0 bmkp-remove-all-tags >C-x x t V bmkp-set-tag-value-for-navlist >C-x x t c bmkp-copy-tags >C-x x t d bmkp-remove-tags-from-all >C-x x t e bmkp-edit-tags >C-x x t l bmkp-list-all-tags >C-x x t p bmkp-paste-add-tags >C-x x t q bmkp-paste-replace-tags >C-x x t r bmkp-rename-tag >C-x x t v bmkp-set-tag-value > >C-x x c C-k bmkp-wrap-bookmark-with-last-kbd-macro >C-x x c RET bmkp-toggle-autonamed-bookmark-set/delete >C-x x c ESC Prefix Command >C-x x c F bmkp-make-function-bookmark >C-x x c K bmkp-set-desktop-bookmark >C-x x c M bookmark-set >C-x x c a bmkp-autofile-set >C-x x c f bmkp-file-target-set >C-x x c m bmkp-bookmark-set-confirm-overwrite >C-x x c s bmkp-set-sequence-bookmark >C-x x c u bmkp-url-target-set >C-x x c y bmkp-set-bookmark-file-bookmark > >C-x x a B bmkp-annotate-all-bookmarks-this-file/buffer >C-x x a S bookmark-show-all-annotations >C-x x a a bmkp-annotate-bookmark >C-x x a b bmkp-annotate-bookmark-this-file/buffer >C-x x a e bookmark-edit-annotation >C-x x a s bookmark-show-annotation > >C-x x M-w bmkp-set-snippet-bookmark > >C-x x t M-w bmkp-copy-tags > >C-x x t - a bmkp-untag-a-file >C-x x t - b bmkp-remove-tags > >C-x x t + a bmkp-tag-a-file >C-x x t + b bmkp-add-tags > >C-x x c M-w bmkp-set-snippet-bookmark ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 4:13 ` Karl Fogel @ 2021-02-05 7:27 ` Jose A. Ortega Ruiz 2021-02-05 23:38 ` Karl Fogel 2021-02-05 18:22 ` Drew Adams 2021-02-12 8:53 ` Jean Louis 2 siblings, 1 reply; 294+ messages in thread From: Jose A. Ortega Ruiz @ 2021-02-05 7:27 UTC (permalink / raw) To: emacs-devel On Thu, Feb 04 2021, Karl Fogel wrote: [...] > Emacs has always rewarded users who learn to customize their > keybindings. Let's make it possible for that reward to be as large as > possible by guaranteeing them some conveniently free slots for their > favorite functions and keymap prefixes. I honestly don't understand this reasoning. Please bear with me. Say today you have C-x g bound to a favourite command of yours. How would emacs 28 binding it by default to revert-buffer interfere with your emacs usage? Would that limit you in any way? Chances are you won't even notice (if you're setting it unconditionally in your init.el). By contrast, by our prohibiting binding any subset of keys to anything at all, users who don't (or can't) customize their emacses will never have any use for those "free" bindings, and will never have a more convenient way of accessing, say, revert-buffer. How are we making user's lives more convenient by prohibiting to emacs maintainers (or library writers, for that matter) to use any currently unbound slot for a new binding? jao -- We are usually convinced more easily by reasons we have found ourselves than by those which have occurred to others. -Blaise Pascal, philosopher and mathematician (1623-1662) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 7:27 ` Jose A. Ortega Ruiz @ 2021-02-05 23:38 ` Karl Fogel 2021-02-06 1:36 ` jao 2021-02-12 9:07 ` Jean Louis 0 siblings, 2 replies; 294+ messages in thread From: Karl Fogel @ 2021-02-05 23:38 UTC (permalink / raw) To: Jose A. Ortega Ruiz; +Cc: emacs-devel On 05 Feb 2021, Jose A. Ortega Ruiz wrote: >I honestly don't understand this reasoning. Please bear with me. >Say today you have C-x g bound to a favourite command of yours. >How would emacs 28 binding it by default to revert-buffer >interfere with your emacs usage? Would that limit you in any >way? Chances are you won't even notice (if you're setting it >unconditionally in your init.el). By contrast, by our >prohibiting binding any subset of keys to anything at all, users >who don't (or can't) customize their emacses will never have any >use for those "free" bindings, and will never have a more >convenient way of accessing, say, revert-buffer. How are we >making user's lives more convenient by prohibiting to emacs >maintainers (or library writers, for that matter) to use any >currently unbound slot for a new binding? Ah, I can answer this. It has to do with protecting investment. When I custom-bind a command to a key, I am making an investment in finger memory. For example, I have `revert-buffer' on `C-c r' (because I use `revert-buffer' a lot), and I chose `C-c r' precisely because it was in the reserved space for user-chosen keybindings. That way I could be sure Emacs would never bind some other useful new function there. Imagine if Emacs *were* to bind some other useful new function there by default. Then I would face a hard choice: give up my finger memory for `revert-buffer' (by moving my binding for it to somewhere else), or custom-bind Emacs's new useful function to some key different than where Emacs wanted to put it. Neither option is attractive. The reason why the former option is bad is obvious. But the reason why the latter option is bad is maybe a little bit more subtle: Every such decision (to move a default Emacs keybinding to somewhere else) will cause me to diverge a bit further from default Emacs, and that divergence has overhead costs. For example, when teaching others or talking about Emacs with them, now my Emacs's default bindings are slightly different from theirs, which will cause confusion. Or sometimes I have to operate temporarily on a remote machine where my .emacs isn't available. Or I'm reading someone's post on emacs-devel and they talk about invoking a command by naming the keystroke they used, and I have to figure out what command they meant. Etc. So this is why I stopped overriding keybindings in Emacs's default space years ago. Now I (mostly) limit myself to the `C-c LETTER' universe, and in some cases made prefix maps there. I wouldn't want to conditionally bind a custom function to 'C-x g' even when the binding I am replacing is one I don't care about (imagine, for the sake of discussion, that I don't care about `revert-buffer'). First of all, divergence has inherent costs as explained above. Second, Emacs might some day replace the binding that I don't care about with one that I like, and then I would face the choice where if I want to make a new finger-memory in the default keyspace, I would have to change an existing finger-memory. Whereas if Emacs promises never to bind something I might care about on a key, then I'm free to make finger-memory investments in that key, secure in the knowledge that the only potential source of future hard choices will be me (well, me and maybe some third-party package maintainers), not Emacs itself. Does that explain better why I want Emacs to declare that it will never use certain convenient and currently-empty keybindings by default? Best regards, -Karl ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 23:38 ` Karl Fogel @ 2021-02-06 1:36 ` jao 2021-02-06 2:31 ` Karl Fogel 2021-02-12 9:07 ` Jean Louis 1 sibling, 1 reply; 294+ messages in thread From: jao @ 2021-02-06 1:36 UTC (permalink / raw) To: Karl Fogel; +Cc: emacs-devel On Fri, Feb 05 2021, Karl Fogel wrote: > On 05 Feb 2021, Jose A. Ortega Ruiz wrote: > Ah, I can answer this. It has to do with protecting investment. > > When I custom-bind a command to a key, I am making an investment > in finger memory. For example, I have `revert-buffer' on `C-c r' > (because I use `revert-buffer' a lot), and I chose `C-c r' > precisely because it was in the reserved space for user-chosen > keybindings. That way I could be sure Emacs would never bind some > other useful new function there. > > Imagine if Emacs *were* to bind some other useful new function > there by default. Then I would face a hard choice: give up my > finger memory for `revert-buffer' (by moving my binding for it to > somewhere else), or custom-bind Emacs's new useful function to > some key different than where Emacs wanted to put it. Oh, but "moving the binding of revert-buffer" is not what we're discussing. We're discussing (or, well, /i/ was discussing, perhaps i misunderstood) assigning a currently unbound command to a currently unassigned key. > Every such decision (to move a default Emacs keybinding to > somewhere else) will cause me to diverge a bit further from > default Emacs, Yes, i agree that /moving/ an already assigned binding to a "free" key is a bad idea. I was thinking of creating new ones. > and that divergence has overhead costs. For example, when teaching > others or talking about Emacs with them, now my Emacs's default > bindings are slightly different from theirs, which will cause > confusion. Or sometimes I have to operate temporarily on a remote > machine where my .emacs isn't available. I think that especially in that scenario (no .emacs available) i'd prefer this new command to be bound somewhere, be it reserved or not, because without your .emacs and without allowing emacs to occupy it, those "free" bindings won't be available to anyone. > Or I'm reading someone's post on emacs-devel and they > talk about invoking a command by naming the keystroke they used, > and I have to figure out what command they meant. Etc. > > So this is why I stopped overriding keybindings in Emacs's default > space years ago. Now I (mostly) limit myself to the `C-c LETTER' > universe, and in some cases made prefix maps there. > > I wouldn't want to conditionally bind a custom function to 'C-x g' > even when the binding I am replacing is one I don't care about > (imagine, for the sake of discussion, that I don't care about > `revert-buffer'). First of all, divergence has inherent costs as > explained above. Well, i gladly diverge in that sense, and occupy any existing binding that i never use with a personal one that i use 10 times an hour (or even once a day, or a week). And, at the same time, i'd rather see (say) C-x r bound to a command that the emacs maintainers find useful, than empty--on behalf of vanilla emacs users without heavy customizations (which include, i suppose, a majority of newbies). > Second, Emacs might some day replace the binding that I don't care > about with one that I like, and then I would face the choice where if > I want to make a new finger-memory in the default keyspace, I would > have to change an existing finger-memory. Yes, replacing is bad, we agree on that. (I hope i'm right and replacing was never on the table). > Whereas if Emacs promises never to bind something I might care > about on a key, then I'm free to make finger-memory investments in > that key, secure in the knowledge that the only potential source > of future hard choices will be me (well, me and maybe some > third-party package maintainers), not Emacs itself. > > Does that explain better why I want Emacs to declare that it will > never use certain convenient and currently-empty keybindings by > default? Yes, thank you. I hope i've also been able to clarify a bit my (in some ways, opposite) perspective (BTW, for 3rd-party libraries, my stance is quite different; i think they should never define any top-level keybinding, and put instead all their commands in a keymap with a configurable prefix, whose value would be asked on first interactive use, informing the user of what commands her prefix choice is overriding. but that's wishful thinking :)). Cheers, jao -- He is a hard man who is only just, and a sad one who is only wise. -Voltaire, philosopher (1694-1778) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-06 1:36 ` jao @ 2021-02-06 2:31 ` Karl Fogel 0 siblings, 0 replies; 294+ messages in thread From: Karl Fogel @ 2021-02-06 2:31 UTC (permalink / raw) To: jao; +Cc: emacs-devel On 06 Feb 2021, jao wrote: >On Fri, Feb 05 2021, Karl Fogel wrote: >> On 05 Feb 2021, Jose A. Ortega Ruiz wrote: Ah, I can answer >> this. It has to do with protecting investment. >> >> When I custom-bind a command to a key, I am making an >> investment in finger memory. For example, I have >> `revert-buffer' on `C-c r' (because I use `revert-buffer' a >> lot), and I chose `C-c r' precisely because it was in the >> reserved space for user-chosen keybindings. That way I could >> be sure Emacs would never bind some other useful new function >> there. >> >> Imagine if Emacs *were* to bind some other useful new function >> there by default. Then I would face a hard choice: give up my >> finger memory for `revert-buffer' (by moving my binding for it >> to somewhere else), or custom-bind Emacs's new useful function >> to some key different than where Emacs wanted to put it. > Oh, but "moving the binding of revert-buffer" is not what we're >discussing. We're discussing (or, well, /i/ was discussing, >perhaps i misunderstood) assigning a currently unbound command to >a currently unassigned key. Sure, but my answer to your question is still the same answer. I'm arguing that Emacs make explicit commitments about keeping some keyspaces free in the default distribution, in order to favor users who are likely to make long-term investments in custom keybindings. It already does this with `C-c LETTER', of course. I'm just saying let's make the same commitment a few more places. The justification for this would be to create more places where users will feel safe to make finger-memory investments. >> Every such decision (to move a default Emacs keybinding to >> somewhere else) will cause me to diverge a bit further from >> default Emacs, > Yes, i agree that /moving/ an already assigned binding to a >"free" key is a bad idea. I was thinking of creating new ones. I hope it was clear, but just in case it wasn't: my paragraph was talking about *me*, the user, moving a recently-changed default Emacs keybinding to somewhere else, just in my Emacs, in order to preserve a custom binding in its current place. And I was just explaining why even though any user is free to do this, it still has costs for that user, and therefore we should try to help users not be in the position of facing that choice. You stated elsewhere that you think Emacs should never replace an existing default keybinding with a different default keybinding. I don't know if we have that policy, but if we do, then the problem I'm worried about would not exist, that's true. >[...] > >Well, i gladly diverge in that sense, and occupy any existing >binding that i never use with a personal one that i use 10 times >an hour (or even once a day, or a week). And, at the same time, >i'd rather see (say) C-x r bound to a command that the emacs >maintainers find useful, than empty--on behalf of vanilla emacs >users without heavy customizations (which include, i suppose, a >majority of newbies). This is a genuine difference of opinion, yes. There are good arguments on both sides here, I think. My argument has long been that Emacs should prioritize the needs of investment-oriented users. That is, to make Emacs slightly worse for the investment-oriented users in order to make it better for those who are unlikely to invest is usually the wrong decision. You wrote "newbies" above, but I think it's important to distinguish between two kinds of newbies: the investment-oriented ones, and the ones who are unlikely to invest. Your assertion is true for the latter kind, but not the former. Some newbies will *eventually* be highly invested users who are looking in the crowded keymap landscape for some free space to put their customizations :-). >Yes, thank you. I hope i've also been able to clarify a bit my >(in some ways, opposite) perspective (BTW, for 3rd-party >libraries, my stance is quite different; i think they should >never define any top-level keybinding, and put instead all their >commands in a keymap with a configurable prefix, whose value >would be asked on first interactive use, informing the user of >what commands her prefix choice is overriding. but that's >wishful thinking :)). Yes, you did succeed in clarifying, and I appreciate it! Best regards, -Karl ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 23:38 ` Karl Fogel 2021-02-06 1:36 ` jao @ 2021-02-12 9:07 ` Jean Louis 2021-02-12 13:27 ` Dmitry Gutov 1 sibling, 1 reply; 294+ messages in thread From: Jean Louis @ 2021-02-12 9:07 UTC (permalink / raw) To: Karl Fogel; +Cc: Jose A. Ortega Ruiz, emacs-devel * Karl Fogel <kfogel@red-bean.com> [2021-02-06 02:39]: > On 05 Feb 2021, Jose A. Ortega Ruiz wrote: > > I honestly don't understand this reasoning. Please bear with me. Say > > today you have C-x g bound to a favourite command of yours. How would > > emacs 28 binding it by default to revert-buffer interfere with your > > emacs usage? Would that limit you in any way? Chances are you won't > > even notice (if you're setting it unconditionally in your init.el). By > > contrast, by our prohibiting binding any subset of keys to anything at > > all, users who don't (or can't) customize their emacses will never have > > any use for those "free" bindings, and will never have a more convenient > > way of accessing, say, revert-buffer. How are we making user's lives > > more convenient by prohibiting to emacs maintainers (or library writers, > > for that matter) to use any currently unbound slot for a new binding? > > Ah, I can answer this. It has to do with protecting investment. > > When I custom-bind a command to a key, I am making an investment in finger > memory. For example, I have `revert-buffer' on `C-c r' (because I use > `revert-buffer' a lot), and I chose `C-c r' precisely because it was in the > reserved space for user-chosen keybindings. That way I could be sure Emacs > would never bind some other useful new function there. I was thinking same as you some time before until somebody on Help GNU Emacs mailing list has shown me how person uses the prefix key. Then I have switched my mental model of remembering the whole key on just remembering the key coming after the prefix. Instead of {s-p p} I would remember just that prefix is s-p and key is p separated from each other. Now that what people call "muscle memory" has separate slots, one for prefix and one for keys there after. If I change prefix to {C-i i} or {C-p} now I can do whatever comes there after like {C-i i p} or {C-p p} instead of {s-p p} without problems. I have now about 15 keys after the s-p prefix, but changing prefix would not disturb me due to the expansion of the slots in my muscle memory. ;-) > Every such decision (to move a default Emacs keybinding to somewhere else) > will cause me to diverge a bit further from default Emacs, and that > divergence has overhead costs. Exactly. The cost on global users is much. I can imagine plethora of bugs files in Debian GNU/Linux and other GNU/Linux distributions, questions on Reddit and other sites where people try to find their old default key binding. Changing very default key bindings causes more than just a butterfly effect. But there are those others default key bindings that are not very defaults. Like M-z that I could not found in use in Emacs-like editors, it was not considered important to implement it in Zile, e3, mg. Jean ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 9:07 ` Jean Louis @ 2021-02-12 13:27 ` Dmitry Gutov 0 siblings, 0 replies; 294+ messages in thread From: Dmitry Gutov @ 2021-02-12 13:27 UTC (permalink / raw) To: Karl Fogel, Jose A. Ortega Ruiz, emacs-devel On 12.02.2021 11:07, Jean Louis wrote: > I can imagine plethora of > bugs files in Debian GNU/Linux and other GNU/Linux distributions, > questions on Reddit and other sites where people try to find their old > default key binding. But when Emacs's audience dwindles even more due to aging and no new user inflow, we'll be fine. The volume of bug reports will be going down to zero, after all. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 4:13 ` Karl Fogel 2021-02-05 7:27 ` Jose A. Ortega Ruiz @ 2021-02-05 18:22 ` Drew Adams 2021-02-12 8:53 ` Jean Louis 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:22 UTC (permalink / raw) To: Karl Fogel; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel@gnu.org > Drew is making a good point here (I realize he sounds a bit > annoyed, but I can sympathize). His proposal make sense -- or at > any rate, there's a good proposal easily derived from what he's > saying. > > If Emacs were to declare that from this point forward it will > leave all currently-unbound `C-x LETTER' unbound, and *recommend* > that packages not bind them by default either, then we'd have a > few more very convenient keybindings left over for users. > > A package could still suggest `C-x SOME-SPECIFIC-LETTER' as a > binding for some entry point in the package, and even provide > convenience mechanisms to cause that binding to happen. > > We can't easil survey users about their bindings, but anecdotally > it seem like a lot of people -- not only Drew -- have been using > those last few remaining slots under `C-x' for their own favorite > things. (The fact that some packages also use that space is a > clue that people consider that space to be desirable real estate > in the mental keymap universe.) > > This isn't about Magit per se -- it's bigger than Magit. However, > this proposal would make it somewhat more okay for Magit to > continue binding `C-x g' by default too. While Magit wouldn't be > following the new recommendation either, at least Magit would not > have to worry about clobbering some existing binding. Given that > Magit is so popular and so many people are accustomed to that > binding already, this is still a decent outcome in the specific > case of Magit anyway. (The fact that Magit also binds `C-x M-g' > by default is a separate headache, but that doesn't have to be > resolved for this proposal to be considered.) > > These days, when we decide to make a new global function binding > in default Emacs, it's hard to imagine how the new binding could > be *so* important that it must take over one of the existing free > convenient slots and yet somehow not be important enough for us to > just replace some other less important binding (thus leaving the > free space free). > > I'm not saying that scenario couldn't happen, but it's going to be > rare. It's certainly not happening in the case of > `revert-buffer'. I mean, let's ask ourselves: if having > `revert-buffer' on a convenient key isn't important enough to > replace some other little-used binding, how on earth can it be > important enough to replace one of the free bindings? After all, > those free bindings aren't *actually* free -- users are using them > for lots of things of their own choosing! > > Emacs has always rewarded users who learn to customize their > keybindings. Let's make it possible for that reward to be as > large as possible by guaranteeing them some conveniently free > slots for their favorite functions and keymap prefixes. > > The `C-c LETTER' space is great, but it's only 26 letters. I used > them up long ago, and I'm sure I'm not alone. Having 4 or 5 more > letters under `C-x' would be a significant boost. I agree with all that Karl wrote, and the way he expressed it. I would, however, emphasize a distinction between (1) users and 3rd-party libraries and (2) the code of vanilla Emacs. While I think it's positive for 3rd-party libraries to only _suggest_ such bindings, I don't think that needs to, or should be, part of the convention. I think, instead, that the "rule" should just be that vanilla Emacs should (modulo important reasons) not grab any more such key bindings. The problem, at least so far, and I think in general, is not really competition for scarce keys among 3rd party libraries. The problem is vanilla Emacs using up the space of possible key bindings for its default keys. Some library, even a very popular one such as Magit, binding some `C-x <something>' key is not a big problem. Use of that library is optional. When vanilla Emacs claims a key for a (default) binding, that act has a lot more clout. ___ I'd also like to see such a moratorium imposed for _all_ additional keys, not just `C-x <something>' prefix keys, and not just other multiple-key prefix keys. IOW, I'd like to see vanilla Emacs try harder not to bind new keys by default. Keys are just too scarce now, and users and libraries need keys too. ___ Finally, let me offer another controversial suggestion, which could offer help in another direction. If we were to reexamine Emacs default key bindings in general, at first ignoring existing habits etc. (but later taking them into account), we could, I think, find some existing default keys that could helpfully be repurposed for something more useful. In particular, we could take some keys that are repeating (just hold down the key to repeat the command) but that are currently wasted on non-repeating commands, and either reassign those keys or change their commands to in fact be repeating. Even more useful/important would be to take some such keys, which could usefully be used as prefix keys, and make them such. Consolidate multiple commands, which today waste multiple keys, onto a given prefix key. Even just a little such reconsidering/refactoring work could provide considerable benefit. Of course, yes, the discussion might involve considerable churn. It would maybe help to start with concrete suggestion of keys that some think might be recuperated because they're currently a bit "wasted". One that comes to my mind, but I offer it only as an example, not because I care much to get rid of its binding in particular, is `C-o'. It's repeatable, but is it very useful? (And it doesn't make use of a negative prefix arg.) There are also keys that fit well into our mnemonic scheme, but that maybe have outlived their usefulness - as default bindings. I'm thinking of `C-t', for example. Yes, I do use `C-t', and it can be handy (and yes, you can repeat it, to transport a char forward incrementally - but not backward). But hey, it's a wonderful key, and frankly, isn't it a bit wasted bound to `transpose-chars'? Imagine it as a prefix key, or used repetitively for something more useful than transposing chars. Again, I don't care about `C-o' or `C-t'. I mention those just to give an idea. There are, I think, keys currently bound by default that could be put to better use. A refactoring of Emacs default key bindings could free up some key "space". Yes, at the cost of some finger memory and habit. And yes, we might have trouble finding consensus. And yes, discussion could range too wide and lead nowhere. But it could also be a good thing to try. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 4:13 ` Karl Fogel 2021-02-05 7:27 ` Jose A. Ortega Ruiz 2021-02-05 18:22 ` Drew Adams @ 2021-02-12 8:53 ` Jean Louis 2021-02-12 9:08 ` Thibaut Verron 2 siblings, 1 reply; 294+ messages in thread From: Jean Louis @ 2021-02-12 8:53 UTC (permalink / raw) To: Karl Fogel Cc: Lars Ingebrigtsen, Gregory Heytings, Drew Adams, emacs-devel@gnu.org * Karl Fogel <kfogel@red-bean.com> [2021-02-05 07:14]: > The `C-c LETTER' space is great, but it's only 26 letters. I used them up > long ago, and I'm sure I'm not alone. Having 4 or 5 more letters under > `C-x' would be a significant boost. As personal recommendation you can still use the `menu' key between the right Ctrl and Alt as prefix (I believe it would work as prefix), then there is Super key between Ctrl and Alt that can be used as prefix and I use it frequently, then there is Caps Lock that can be used as prefix. I guess none of them would work so easily in console mode. I wish that Emacs alone could bring solution to recognize Super key in console mode without fiddling with system settings, that would provide many new prefixes. Jean ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 8:53 ` Jean Louis @ 2021-02-12 9:08 ` Thibaut Verron 0 siblings, 0 replies; 294+ messages in thread From: Thibaut Verron @ 2021-02-12 9:08 UTC (permalink / raw) To: Karl Fogel, Drew Adams, Lars Ingebrigtsen, Gregory Heytings, emacs-devel@gnu.org 2021-02-12 9:53 UTC+01:00, Jean Louis <bugs@gnu.support>: > * Karl Fogel <kfogel@red-bean.com> [2021-02-05 07:14]: >> The `C-c LETTER' space is great, but it's only 26 letters. I used them >> up >> long ago, and I'm sure I'm not alone. Having 4 or 5 more letters under >> `C-x' would be a significant boost. > > As personal recommendation you can still use the `menu' key between > the right Ctrl and Alt as prefix (I believe it would work as prefix), > then there is Super key between Ctrl and Alt that can be used as > prefix and I use it frequently, then there is Caps Lock that can be > used as prefix. > > I guess none of them would work so easily in console mode. I wish that > Emacs alone could bring solution to recognize Super key in console > mode without fiddling with system settings, that would provide many > new prefixes. > > Jean Another problem with using more modifiers is that there are other applications than Emacs which need/define shortcuts, and they are not necessarily as easy to remap as in Emacs. A typical example is the window manager. In addition, international users typically need a compose key, which takes yet another modifier. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 21:15 ` Gregory Heytings 2021-02-04 22:12 ` Lars Ingebrigtsen @ 2021-02-04 22:24 ` Juri Linkov 2021-02-05 8:59 ` Lars Ingebrigtsen 2021-02-05 12:39 ` Dmitry Gutov 2021-02-04 23:20 ` Jose A. Ortega Ruiz 2 siblings, 2 replies; 294+ messages in thread From: Juri Linkov @ 2021-02-04 22:24 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel > There is always the possibility to use another free C-x LETTER slot. > The other ones are c j w x y. (A few symbols are also free, for example # > / % : _ !.) Or 'C-x r v' with the mnemonics rv = ReVert. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 22:24 ` Juri Linkov @ 2021-02-05 8:59 ` Lars Ingebrigtsen 2021-02-05 9:12 ` Juri Linkov 2021-02-05 9:14 ` Thibaut Verron 2021-02-05 12:39 ` Dmitry Gutov 1 sibling, 2 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-05 8:59 UTC (permalink / raw) To: Juri Linkov; +Cc: Gregory Heytings, emacs-devel Juri Linkov <juri@linkov.net> writes: >> There is always the possibility to use another free C-x LETTER slot. >> The other ones are c j w x y. (A few symbols are also free, for example # >> / % : _ !.) > > Or 'C-x r v' with the mnemonics rv = ReVert. Hm... makes sense, but the `C-x r' keymap is mostly register commands (with a sprinkling of bookmark commands (which are related, I guess), and rectangle commands (which aren't))... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 8:59 ` Lars Ingebrigtsen @ 2021-02-05 9:12 ` Juri Linkov 2021-02-06 9:56 ` Lars Ingebrigtsen 2021-02-05 9:14 ` Thibaut Verron 1 sibling, 1 reply; 294+ messages in thread From: Juri Linkov @ 2021-02-05 9:12 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel >> Or 'C-x r v' with the mnemonics rv = ReVert. > > Hm... makes sense, but the `C-x r' keymap is mostly register commands > (with a sprinkling of bookmark commands (which are related, I guess), > and rectangle commands (which aren't))... So currently `r' in `C-x r' stands for `register' and `rectangle' that have unrelated mnemonics, and `bookmark' slightly related to `register'. Then adding another meaning for `r' in `C-x r' is not quite bad. It seems the least controversial among all variants would be `C-x r e' where "re" is the prefix of the command "re"vert-buffer that is also free on the `C-x r' map and easier to type than `C-x r v'. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 9:12 ` Juri Linkov @ 2021-02-06 9:56 ` Lars Ingebrigtsen 2021-02-06 10:09 ` Gregory Heytings ` (3 more replies) 0 siblings, 4 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-06 9:56 UTC (permalink / raw) To: Juri Linkov; +Cc: Gregory Heytings, emacs-devel Juri Linkov <juri@linkov.net> writes: > It seems the least controversial among all variants would be > `C-x r e' where "re" is the prefix of the command "re"vert-buffer > that is also free on the `C-x r' map and easier to type than `C-x r v'. I like `C-x r e' -- it has pretty good mnemonics, and it's not too cumbersome to type. I also like the idea of adding a new prefix command for buffer-related commands. The list of proposed commands we could bind there was pretty compelling -- it had a whole bunch of commands that (I think) people use somewhat frequently, and grouping them that way will help with discovery, I think. `C-x x' seems to be in the running here, and is pretty convenient to type. If we go with `C-x x', then I guess `C-x x g' would be the binding for `revert-buffer', I guess? (To mimic the `g' in special-mode-map.) I asked whether `C-x x' had been claimed by any major package, and I didn't see any response to that, so I'm guessing not? So I'm going to do the `C-x x' thing, I think. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 9:56 ` Lars Ingebrigtsen @ 2021-02-06 10:09 ` Gregory Heytings 2021-02-06 18:24 ` [External] : " Drew Adams ` (2 subsequent siblings) 3 siblings, 0 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-06 10:09 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > > I asked whether `C-x x' had been claimed by any major package, and I > didn't see any response to that, so I'm guessing not? > For the record, there was one response: Drew said he recently moved his bookmark+ bindings from the prefix key "C-x p" to the "C-x x" prefix key, when "C-x p" was taken by "project". ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-06 9:56 ` Lars Ingebrigtsen 2021-02-06 10:09 ` Gregory Heytings @ 2021-02-06 18:24 ` Drew Adams 2021-02-06 19:20 ` Juri Linkov 2021-02-06 19:32 ` Sean Whitton 3 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-06 18:24 UTC (permalink / raw) To: Lars Ingebrigtsen, Juri Linkov; +Cc: Gregory Heytings, emacs-devel@gnu.org > I asked whether `C-x x' had been claimed by any major package, > and I didn't see any response to that, so I'm guessing not? What qualifies as a "major package" for you, Lars? I guess Bookmark+ doesn't. What does? > So I'm going to do the `C-x x' thing, I think. First pushed out of `C-x p', and now `C-x x'. What's next? ___ "How can you keep on moving unless you migrate too? They tell ya to keep on moving, but migrate you must not do The only reason for moving, and the reason why I roam Is to move to a new location and find myself a home" - Woody Guthrie https://genius.com/Ry-cooder-how-can-you-keep-moving-unless-you-migrate-too-lyrics ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 9:56 ` Lars Ingebrigtsen 2021-02-06 10:09 ` Gregory Heytings 2021-02-06 18:24 ` [External] : " Drew Adams @ 2021-02-06 19:20 ` Juri Linkov 2021-02-07 12:08 ` Lars Ingebrigtsen 2021-02-06 19:32 ` Sean Whitton 3 siblings, 1 reply; 294+ messages in thread From: Juri Linkov @ 2021-02-06 19:20 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel > I like `C-x r e' -- it has pretty good mnemonics, and it's not too > cumbersome to type. > > I also like the idea of adding a new prefix command for buffer-related > commands. The list of proposed commands we could bind there was pretty > compelling -- it had a whole bunch of commands that (I think) people use > somewhat frequently, and grouping them that way will help with > discovery, I think. > > `C-x x' seems to be in the running here, and is pretty > convenient to type. If we go with `C-x x', then I guess `C-x x g' would > be the binding for `revert-buffer', I guess? (To mimic the `g' in > special-mode-map.) I don't know, what was the reason for freeing `C-x x' some time ago? In etc/NEWS.22: ** The register compatibility key bindings (deprecated since Emacs 19) have been removed: C-x / point-to-register (Use: C-x r SPC) C-x j jump-to-register (Use: C-x r j) C-x x copy-to-register (Use: C-x r s) C-x g insert-register (Use: C-x r i) What if some package becomes popular in the future and wants to claim the `C-x x' prefix map that has good mnemonics for it? Such as xwidgets. In no one has such plans in the foreseeable future, then it would be reasonable to use the new prefix map to bind as many keys as possible. There are many frequently used commands that are still unbound. Then we could group the keys by categories, e.g.: Buffer-related commands: C-x x b r - revert-buffer C-x x b R - revert-buffer-with-fine-grain C-x x b n - rename-buffer C-x x b u - rename-uniquely C-x x b c - clone-buffer C-x x b i - insert-buffer File-related commands: C-x x f a - append-to-file ... Window-related commands: C-x x w p - previous-window-any-frame ... ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 19:20 ` Juri Linkov @ 2021-02-07 12:08 ` Lars Ingebrigtsen 2021-02-07 12:39 ` Lars Ingebrigtsen 0 siblings, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-07 12:08 UTC (permalink / raw) To: Juri Linkov; +Cc: Gregory Heytings, emacs-devel Juri Linkov <juri@linkov.net> writes: > In no one has such plans in the foreseeable future, then it would be > reasonable to use the new prefix map to bind as many keys as possible. > There are many frequently used commands that are still unbound. Then > we could group the keys by categories, e.g.: > > Buffer-related commands: > C-x x b r - revert-buffer > C-x x b R - revert-buffer-with-fine-grain > C-x x b n - rename-buffer > C-x x b u - rename-uniquely > C-x x b c - clone-buffer > C-x x b i - insert-buffer > > File-related commands: > C-x x f a - append-to-file Sounds logical, but there's diminishing returns the longer the keystrokes get. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 12:08 ` Lars Ingebrigtsen @ 2021-02-07 12:39 ` Lars Ingebrigtsen 2021-02-07 14:52 ` Ergus ` (2 more replies) 0 siblings, 3 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-07 12:39 UTC (permalink / raw) To: emacs-devel And I've now moved the binding to `C-x x g', which should un-annoy Magit users. There's been suggestions for other buffer-related commands to put on the `C-x x' keymap, and I'm adding a few of those, too. Feel free to make further suggestions. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 12:39 ` Lars Ingebrigtsen @ 2021-02-07 14:52 ` Ergus 2021-02-07 20:44 ` Lars Ingebrigtsen 2021-02-07 18:43 ` [External] : " Drew Adams 2021-02-09 23:22 ` Karthik Chikmagalur 2 siblings, 1 reply; 294+ messages in thread From: Ergus @ 2021-02-07 14:52 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel On Sun, Feb 07, 2021 at 01:39:13PM +0100, Lars Ingebrigtsen wrote: >And I've now moved the binding to `C-x x g', which should un-annoy Magit >users. > Very thanks!!! >There's been suggestions for other buffer-related commands to put on the >`C-x x' keymap, and I'm adding a few of those, too. Feel free to make >further suggestions. > Maybe it makes sense (now that we have this map) to move there read-only-mode, enable/disable-undo. I am not formally proposing any of them, just mentioning some that could make sense. The first one could (in long therm of course) release `C-x C-q` for other future purposes. >-- >(domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no > > Best, Ergus ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 14:52 ` Ergus @ 2021-02-07 20:44 ` Lars Ingebrigtsen 2021-02-08 5:49 ` Teemu Likonen 0 siblings, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-07 20:44 UTC (permalink / raw) To: Ergus; +Cc: emacs-devel Ergus <spacibba@aol.com> writes: > Maybe it makes sense (now that we have this map) to move there > read-only-mode, enable/disable-undo. > > I am not formally proposing any of them, just mentioning some that could > make sense. > > The first one could (in long therm of course) release `C-x C-q` for > other future purposes. I wouldn't rule it completely out, but moving keystrokes is a touchy subject... and especially for something like `C-x C-q' (that I think people have in their muscle memory), it's an uphill battle. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 20:44 ` Lars Ingebrigtsen @ 2021-02-08 5:49 ` Teemu Likonen 0 siblings, 0 replies; 294+ messages in thread From: Teemu Likonen @ 2021-02-08 5:49 UTC (permalink / raw) To: Lars Ingebrigtsen, Ergus; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 686 bytes --] * 2021-02-07 21:44:21+0100, Lars Ingebrigtsen wrote: > Ergus <spacibba@aol.com> writes: >> Maybe it makes sense (now that we have this map) to move there >> read-only-mode, enable/disable-undo. > I wouldn't rule it completely out, but moving keystrokes is a touchy > subject... and especially for something like `C-x C-q' (that I think > people have in their muscle memory), it's an uphill battle. read-only-mode could be added to "C-x x" map for consistency and perhaps for easier find but the command would remain (forever?) in the old key "C-x C-q". -- /// Teemu Likonen - .-.. https://www.iki.fi/tlikonen/ // OpenPGP: 4E1055DC84E9DFF613D78557719D69D324539450 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 251 bytes --] ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-07 12:39 ` Lars Ingebrigtsen 2021-02-07 14:52 ` Ergus @ 2021-02-07 18:43 ` Drew Adams 2021-02-07 23:57 ` Ergus 2021-02-09 23:22 ` Karthik Chikmagalur 2 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-07 18:43 UTC (permalink / raw) To: Lars Ingebrigtsen, emacs-devel@gnu.org > And I've now moved the binding to `C-x x g', which should un-annoy > Magit users. > > There's been suggestions for other buffer-related commands to put on > the `C-x x' keymap, and I'm adding a few of those, too. Feel free to make > further suggestions. Please don't bind `C-x x' by default. That's my suggestion. Bookmark+ uses `C-x x' (having been forced off of `C-x p'). ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-07 18:43 ` [External] : " Drew Adams @ 2021-02-07 23:57 ` Ergus 2021-02-08 1:18 ` Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Ergus @ 2021-02-07 23:57 UTC (permalink / raw) To: Drew Adams; +Cc: Lars Ingebrigtsen, emacs-devel@gnu.org On Sun, Feb 07, 2021 at 06:43:31PM +0000, Drew Adams wrote: >> And I've now moved the binding to `C-x x g', which should un-annoy >> Magit users. >> >> There's been suggestions for other buffer-related commands to put on >> the `C-x x' keymap, and I'm adding a few of those, too. Feel free to make >> further suggestions. > >Please don't bind `C-x x' by default. That's >my suggestion. > >Bookmark+ uses `C-x x' (having been forced off >of `C-x p'). > What if (just getting crazy) you consider adding some/most of the bookmark+ functionalities to vanilla and they will go in the `C-x r` map with the other bookmark commands (C-x r b, C-x r m and so on)??? Like diredx for dired or and many other examples... Even extending the current `C-x r` is a better choice than taking a binding only for this... It will help to discover the commands when using which-key for example and avoid the user learn and sacrifice another prefix combination. I don't want to argue about this, it is just a suggestion because I wanted to use bookmark+ long time ago, but I finally never tried it because 1) it is not in elpa or melpa or vanilla (so I will need to manually maintain it updates) and 2) because I will have to sacrifice a binding just for it... It is just my opinion... ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-07 23:57 ` Ergus @ 2021-02-08 1:18 ` Drew Adams 2021-02-10 8:49 ` Alfred M. Szmidt 0 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-08 1:18 UTC (permalink / raw) To: Ergus; +Cc: Lars Ingebrigtsen, emacs-devel@gnu.org > What if (just getting crazy) you consider adding > some/most of the bookmark+ functionalities to vanilla I've offered any and all of it, multiple times, for decades. I've offered all of my code. > they will go in the `C-x r` map with the other > bookmark commands (C-x r b, C-x r m and so on)??? > Like diredx for dired or and many other examples... There are 13 keys on `C-x r' for registers, 9 for rectangles, and 4 for bookmarks. Those 3 groups don't really belong on the same prefix key, IMO. (They could be on different prefix keys under `C-x r' - or somewhere else.) None of this has anything to do with the general argument to have more keys, including prefix keys, and including all `C-x <whatever>' prefix keys, kept available for 3rd-party code, i.e. not bound by default by Emacs. Limited remaining keyspace is a problem that needs a solution, no matter which solution someone might prefer for it. That problem exists independently of any solution I might prefer for it. It's a problem that's essentially been ignored, so far. > I wanted to use bookmark+ long time ago, but ... > I will have to sacrifice a binding just for it... No, you don't have to. You can easily prevent any bindings at all for its commands. You can bind any of its commands to any keys you like. And you can easily customize the prefix keys to use, even without fiddling with key bindings: options `bmkp-bookmark-map-prefix-keys', `bmkp-jump-map-prefix-keys', and `bmkp-jump-other-window-map-prefix-keys'. (It's also fine not to use Bookmark+.) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-08 1:18 ` Drew Adams @ 2021-02-10 8:49 ` Alfred M. Szmidt 0 siblings, 0 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-10 8:49 UTC (permalink / raw) To: Drew Adams; +Cc: spacibba, larsi, emacs-devel There are 13 keys on `C-x r' for registers, 9 for rectangles, and 4 for bookmarks. Those 3 groups don't really belong on the same prefix key, IMO. (They could be on different prefix keys under `C-x r' - or somewhere else.) Once upon a time, all those lived in a different space. E.g., the register commands used to be on C-x s (point-to-register), C-x j (jump-to-register), C-x x (copy-to-register) and C-x g (insert-register). But to consolidate all of them, and free up many C-x N keys, they got moved to C-x r N. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-07 12:39 ` Lars Ingebrigtsen 2021-02-07 14:52 ` Ergus 2021-02-07 18:43 ` [External] : " Drew Adams @ 2021-02-09 23:22 ` Karthik Chikmagalur 2021-02-15 18:15 ` Sean Whitton 2 siblings, 1 reply; 294+ messages in thread From: Karthik Chikmagalur @ 2021-02-09 23:22 UTC (permalink / raw) To: Lars Ingebrigtsen, emacs-devel Is the rationale for choosing `C-x x' as the prefix for buffer related commands merely that `C-x g' is popular among magit users? Neither `C-x g' nor `C-x x' are mnemonic for buffer-related commands, though. I can think of a couple of alternatives, including `C-x M-b' as the prefix for buffer commands. If there's a decision to add similar file-related keybindings in the future (`rename-file', etc), it can neatly slot into a `C-x M-f' keymap. A secondary issue is the choice of keys in ctl-x-x-map: 1. `C-x x n': clone-buffer Shouldn't this be `C-x x c' for consistency with the similar binding for `clone-indirect-buffer-other-window' (`C-x 4 c')? The two commands are even bound five lines apart in lisp/bindings.el! 2. `C-x x u': rename-uniquely I would guess `u' is mostly mnemonic for undo in most users' minds. Does this command need to be bound at all? Lars Ingebrigtsen <larsi@gnus.org> writes: > And I've now moved the binding to `C-x x g', which should un-annoy Magit > users. > > There's been suggestions for other buffer-related commands to put on the > `C-x x' keymap, and I'm adding a few of those, too. Feel free to make > further suggestions. > > -- > (domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-09 23:22 ` Karthik Chikmagalur @ 2021-02-15 18:15 ` Sean Whitton 2021-02-16 2:13 ` Karthik Chikmagalur 0 siblings, 1 reply; 294+ messages in thread From: Sean Whitton @ 2021-02-15 18:15 UTC (permalink / raw) To: Karthik Chikmagalur, emacs-devel Hello, On Tue 09 Feb 2021 at 03:22PM -08, Karthik Chikmagalur wrote: > Is the rationale for choosing `C-x x' as the prefix for buffer related > commands merely that `C-x g' is popular among magit users? Neither `C-x > g' nor `C-x x' are mnemonic for buffer-related commands, though. I can > think of a couple of alternatives, including `C-x M-b' as the prefix for > buffer commands. If there's a decision to add similar file-related > keybindings in the future (`rename-file', etc), it can neatly slot into > a `C-x M-f' keymap. > > A secondary issue is the choice of keys in ctl-x-x-map: > > 1. `C-x x n': clone-buffer > > Shouldn't this be `C-x x c' for consistency with the similar binding for > `clone-indirect-buffer-other-window' (`C-x 4 c')? The two commands are > even bound five lines apart in lisp/bindings.el! Indirect clones and non-indirect clones are quite different. There is already a convention to use 'n' for a non-indirect clone -- see M-n in Info-mode. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-15 18:15 ` Sean Whitton @ 2021-02-16 2:13 ` Karthik Chikmagalur 2021-02-16 5:37 ` Sean Whitton 0 siblings, 1 reply; 294+ messages in thread From: Karthik Chikmagalur @ 2021-02-16 2:13 UTC (permalink / raw) To: Sean Whitton, emacs-devel > Indirect clones and non-indirect clones are quite different. > > There is already a convention to use 'n' for a non-indirect clone -- see > M-n in Info-mode. I see, I was unaware of this. Thank you for letting me know. Do you also intend to bind `C-x x c' to `clone-indirect-buffer' then? Karthik ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-16 2:13 ` Karthik Chikmagalur @ 2021-02-16 5:37 ` Sean Whitton 0 siblings, 0 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-16 5:37 UTC (permalink / raw) To: Karthik Chikmagalur, emacs-devel Hello, On Mon 15 Feb 2021 at 06:13PM -08, Karthik Chikmagalur wrote: >> Indirect clones and non-indirect clones are quite different. >> >> There is already a convention to use 'n' for a non-indirect clone -- see >> M-n in Info-mode. > > I see, I was unaware of this. Thank you for letting me know. > > Do you also intend to bind `C-x x c' to `clone-indirect-buffer' then? Personally I'm happy with C-x 4 c but if you think it makes sense to have both you could open a bug. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 9:56 ` Lars Ingebrigtsen ` (2 preceding siblings ...) 2021-02-06 19:20 ` Juri Linkov @ 2021-02-06 19:32 ` Sean Whitton 2021-02-06 19:58 ` Eli Zaretskii 2021-02-06 20:37 ` Lars Ingebrigtsen 3 siblings, 2 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-06 19:32 UTC (permalink / raw) To: Lars Ingebrigtsen, Juri Linkov; +Cc: Gregory Heytings, emacs-devel Hello, On Sat 06 Feb 2021 at 10:56AM +01, Lars Ingebrigtsen wrote: > Juri Linkov <juri@linkov.net> writes: > >> It seems the least controversial among all variants would be >> `C-x r e' where "re" is the prefix of the command "re"vert-buffer >> that is also free on the `C-x r' map and easier to type than `C-x r v'. > > I like `C-x r e' -- it has pretty good mnemonics, and it's not too > cumbersome to type. > > I also like the idea of adding a new prefix command for buffer-related > commands. The list of proposed commands we could bind there was pretty > compelling -- it had a whole bunch of commands that (I think) people use > somewhat frequently, and grouping them that way will help with > discovery, I think. > > `C-x x' seems to be in the running here, and is pretty > convenient to type. If we go with `C-x x', then I guess `C-x x g' would > be the binding for `revert-buffer', I guess? (To mimic the `g' in > special-mode-map.) > > I asked whether `C-x x' had been claimed by any major package, and I > didn't see any response to that, so I'm guessing not? > > So I'm going to do the `C-x x' thing, I think. I'm sorry for more bikeshedding, but may I suggest using C-x c instead of C-x x? I just spent some time trying to repeatedly type C-x x followed by some letter and I found that I kept typing C-x C-x by mistake. Perhaps others will have the same tendency. It also has the mnemonic that C-c C-something typically act on the current buffer, and we're talking about current buffer commands. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 19:32 ` Sean Whitton @ 2021-02-06 19:58 ` Eli Zaretskii 2021-02-06 20:09 ` Sean Whitton 2021-02-06 20:37 ` Lars Ingebrigtsen 1 sibling, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-06 19:58 UTC (permalink / raw) To: Sean Whitton; +Cc: larsi, emacs-devel, gregory, juri > From: Sean Whitton <spwhitton@spwhitton.name> > Date: Sat, 06 Feb 2021 12:32:36 -0700 > Cc: Gregory Heytings <gregory@heytings.org>, emacs-devel@gnu.org > > I'm sorry for more bikeshedding, but may I suggest using C-x c instead > of C-x x? > > I just spent some time trying to repeatedly type C-x x followed by some > letter and I found that I kept typing C-x C-x by mistake. What will happen if you by mistake type "C-x C-c"? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 19:58 ` Eli Zaretskii @ 2021-02-06 20:09 ` Sean Whitton 2021-02-06 20:20 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: Sean Whitton @ 2021-02-06 20:09 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel, gregory, juri Hello, On Sat 06 Feb 2021 at 09:58PM +02, Eli Zaretskii wrote: >> From: Sean Whitton <spwhitton@spwhitton.name> >> Date: Sat, 06 Feb 2021 12:32:36 -0700 >> Cc: Gregory Heytings <gregory@heytings.org>, emacs-devel@gnu.org >> >> I'm sorry for more bikeshedding, but may I suggest using C-x c instead >> of C-x x? >> >> I just spent some time trying to repeatedly type C-x x followed by some >> letter and I found that I kept typing C-x C-x by mistake. > > What will happen if you by mistake type "C-x C-c"? Well, it's about equally as annoying, as you'll get a "Really exit Emacs" message. In my case this doesn't tend to happen as by the time I've moved my fingers from being ready to type 'x' to being ready to type 'c', my other hand has released the control key. Just sharing my experience -- not sure whether it will apply to others. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 20:09 ` Sean Whitton @ 2021-02-06 20:20 ` Eli Zaretskii 2021-02-06 20:28 ` Sean Whitton 0 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-06 20:20 UTC (permalink / raw) To: Sean Whitton; +Cc: larsi, emacs-devel, gregory, juri > From: Sean Whitton <spwhitton@spwhitton.name> > Cc: larsi@gnus.org, juri@linkov.net, gregory@heytings.org, emacs-devel@gnu.org > Date: Sat, 06 Feb 2021 13:09:40 -0700 > > > What will happen if you by mistake type "C-x C-c"? > > Well, it's about equally as annoying, as you'll get a "Really exit > Emacs" message. By default, "C-x C-c" doesn't ask any questions, it just kills Emacs. You may be lucky if you have live sub-processes or net connections running, or unsaved file edits. But what if you don't? Puff! there goes the session. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 20:20 ` Eli Zaretskii @ 2021-02-06 20:28 ` Sean Whitton 0 siblings, 0 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-06 20:28 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel, gregory, juri Hello, On Sat 06 Feb 2021 at 10:20PM +02, Eli Zaretskii wrote: >> From: Sean Whitton <spwhitton@spwhitton.name> >> Cc: larsi@gnus.org, juri@linkov.net, gregory@heytings.org, emacs-devel@gnu.org >> Date: Sat, 06 Feb 2021 13:09:40 -0700 >> >> > What will happen if you by mistake type "C-x C-c"? >> >> Well, it's about equally as annoying, as you'll get a "Really exit >> Emacs" message. > > By default, "C-x C-c" doesn't ask any questions, it just kills Emacs. > You may be lucky if you have live sub-processes or net connections > running, or unsaved file edits. But what if you don't? Puff! there > goes the session. Ah, apologies, I got mixed up about the defaults. I withdraw my C-x c suggestion. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 19:32 ` Sean Whitton 2021-02-06 19:58 ` Eli Zaretskii @ 2021-02-06 20:37 ` Lars Ingebrigtsen 2021-02-06 20:44 ` Gregory Heytings 2021-02-06 20:59 ` Sean Whitton 1 sibling, 2 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-06 20:37 UTC (permalink / raw) To: Sean Whitton; +Cc: Gregory Heytings, emacs-devel, Juri Linkov Sean Whitton <spwhitton@spwhitton.name> writes: > I'm sorry for more bikeshedding, but may I suggest using C-x c instead > of C-x x? > > I just spent some time trying to repeatedly type C-x x followed by some > letter and I found that I kept typing C-x C-x by mistake. Perhaps > others will have the same tendency. > > It also has the mnemonic that C-c C-something typically act > on the current buffer, and we're talking about current buffer commands. After trying it a bit, `C-x c' is indeed a bit easier to type than `C-x x', but as Eli says, it's a bit more dangerous... At least `C-x C-x' is a harmless command. But speaking of `C-c' -- I just tried `C-c C-h' (to get a list of bindings under `C-c'), and all I got was: Global Bindings Starting With C-c: key binding --- ------- And nothing more. Same for `C-c C-x C-h'. And it's this way in Emacs 25.1, too... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 20:37 ` Lars Ingebrigtsen @ 2021-02-06 20:44 ` Gregory Heytings 2021-02-06 20:49 ` Lars Ingebrigtsen 2021-02-06 20:59 ` Sean Whitton 1 sibling, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-06 20:44 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > > But speaking of `C-c' -- I just tried `C-c C-h' (to get a list of > bindings under `C-c'), and all I got was: > > Global Bindings Starting With C-c: > key binding > --- ------- > > And nothing more. Same for `C-c C-x C-h'. And it's this way in Emacs > 25.1, too... > C-c is a restricted key, C-c LETTER is for users, C-c C-LETTER is for major modes, C-c SYMBOL is for minor modes. By definition none of these can go in the (default) global-map. If you type C-c C-h in a buffer visiting a C file you'll see some bindings, but still no global bindings. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 20:44 ` Gregory Heytings @ 2021-02-06 20:49 ` Lars Ingebrigtsen 2021-02-06 21:00 ` Gregory Heytings 2021-02-06 21:02 ` Andreas Schwab 0 siblings, 2 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-06 20:49 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel Gregory Heytings <gregory@heytings.org> writes: >> And nothing more. Same for `C-c C-x C-h'. And it's this way in >> Emacs 25.1, too... > > C-c is a restricted key, C-c LETTER is for users, C-c C-LETTER is for > major modes, C-c SYMBOL is for minor modes. By definition none of > these can go in the (default) global-map. If you type C-c C-h in a > buffer visiting a C file you'll see some bindings, but still no global > bindings. Right. That `C-c C-x' doesn't signal an error is somewhat odd, though (which was the one I was really wondering about). -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 20:49 ` Lars Ingebrigtsen @ 2021-02-06 21:00 ` Gregory Heytings 2021-02-06 21:02 ` Andreas Schwab 1 sibling, 0 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-06 21:00 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel >>> And nothing more. Same for `C-c C-x C-h'. And it's this way in Emacs >>> 25.1, too... >> >> C-c is a restricted key, C-c LETTER is for users, C-c C-LETTER is for >> major modes, C-c SYMBOL is for minor modes. By definition none of >> these can go in the (default) global-map. If you type C-c C-h in a >> buffer visiting a C file you'll see some bindings, but still no global >> bindings. > > Right. That `C-c C-x' doesn't signal an error is somewhat odd, though > (which was the one I was really wondering about). > Indeed. It seems that C-x is considered as a prefix key when it is not defined. C-x 8 C-x, C-x n C-x, M-g C-x or M-s C-x do the same, for example. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 20:49 ` Lars Ingebrigtsen 2021-02-06 21:00 ` Gregory Heytings @ 2021-02-06 21:02 ` Andreas Schwab 1 sibling, 0 replies; 294+ messages in thread From: Andreas Schwab @ 2021-02-06 21:02 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel On Feb 06 2021, Lars Ingebrigtsen wrote: > That `C-c C-x' doesn't signal an error is somewhat odd, though Because C-x is a prefix key on the key-translation-map. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 20:37 ` Lars Ingebrigtsen 2021-02-06 20:44 ` Gregory Heytings @ 2021-02-06 20:59 ` Sean Whitton 1 sibling, 0 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-06 20:59 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel, Juri Linkov Hello, On Sat 06 Feb 2021 at 09:37PM +01, Lars Ingebrigtsen wrote: > Sean Whitton <spwhitton@spwhitton.name> writes: > >> I'm sorry for more bikeshedding, but may I suggest using C-x c instead >> of C-x x? >> >> I just spent some time trying to repeatedly type C-x x followed by some >> letter and I found that I kept typing C-x C-x by mistake. Perhaps >> others will have the same tendency. >> >> It also has the mnemonic that C-c C-something typically act >> on the current buffer, and we're talking about current buffer commands. > > After trying it a bit, `C-x c' is indeed a bit easier to type than > `C-x x', but as Eli says, it's a bit more dangerous... At least > `C-x C-x' is a harmless command. > > But speaking of `C-c' -- I just tried `C-c C-h' (to get a list of > bindings under `C-c'), and all I got was: > > Global Bindings Starting With C-c: > key binding > --- ------- > > And nothing more. Same for `C-c C-x C-h'. And it's this way in Emacs > 25.1, too... But those are reserved for major modes, right? Or did you have something else in mind? -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 8:59 ` Lars Ingebrigtsen 2021-02-05 9:12 ` Juri Linkov @ 2021-02-05 9:14 ` Thibaut Verron 1 sibling, 0 replies; 294+ messages in thread From: Thibaut Verron @ 2021-02-05 9:14 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel, Juri Linkov 2021-02-05 9:59 UTC+01:00, Lars Ingebrigtsen <larsi@gnus.org>: > Juri Linkov <juri@linkov.net> writes: > >>> There is always the possibility to use another free C-x LETTER slot. >>> The other ones are c j w x y. (A few symbols are also free, for example >>> # >>> / % : _ !.) >> >> Or 'C-x r v' with the mnemonics rv = ReVert. > > Hm... makes sense, but the `C-x r' keymap is mostly register commands > (with a sprinkling of bookmark commands (which are related, I guess), > and rectangle commands (which aren't))... I believe the relation to rectangle commands is copy-rectangle-to-register. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 22:24 ` Juri Linkov 2021-02-05 8:59 ` Lars Ingebrigtsen @ 2021-02-05 12:39 ` Dmitry Gutov 1 sibling, 0 replies; 294+ messages in thread From: Dmitry Gutov @ 2021-02-05 12:39 UTC (permalink / raw) To: Juri Linkov, Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel On 05.02.2021 00:24, Juri Linkov wrote: > Or 'C-x r v' with the mnemonics rv = ReVert. I quite like this one. Or 'C-x r e'. For reasons already mentioned, I'd prefer if 'C-x g' was kept free. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 21:15 ` Gregory Heytings 2021-02-04 22:12 ` Lars Ingebrigtsen 2021-02-04 22:24 ` Juri Linkov @ 2021-02-04 23:20 ` Jose A. Ortega Ruiz 2021-02-05 0:46 ` [External] : " Drew Adams 2021-02-05 7:22 ` Lars Ingebrigtsen 2 siblings, 2 replies; 294+ messages in thread From: Jose A. Ortega Ruiz @ 2021-02-04 23:20 UTC (permalink / raw) To: emacs-devel > There is always the possibility to use another free C-x LETTER slot. > The other ones are c j w x y. (A few symbols are also free, for > example # / % : _ !.) Given that C-/ is undo, i would find it easier to remember C-x / as revert-buffer ("undo everything", if you look at it sideways :)) than any other proposed alternative. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-04 23:20 ` Jose A. Ortega Ruiz @ 2021-02-05 0:46 ` Drew Adams 2021-02-06 2:37 ` Richard Stallman 2021-02-05 7:22 ` Lars Ingebrigtsen 1 sibling, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-05 0:46 UTC (permalink / raw) To: Jose A. Ortega Ruiz, emacs-devel@gnu.org > > There is always the possibility to use another free C-x LETTER slot. > > The other ones are c j w x y. (A few symbols are also free, for > > example # / % : _ !.) > > Given that C-/ is undo, i would find it easier to remember C-x / as > revert-buffer ("undo everything", if you look at it sideways :)) > than any other proposed alternative. And here we go again. Not more than 4 days ago did I write in the bug thread for this that my library `zones.el' uses prefix key `C-x /': I had a zillion keys bound on prefix key `C-x p' (for Bookmark+), because that was free years ago. Then you decided to give that prefix key to "Project" (saying explicitly, BTW that you "don't need" to pay any heed to the fact that Drew uses that prefix key, which is of course true). And on and on it goes. I choose to use prefix `C-x /' for zones.el, but ^^^^^^^ tomorrow I may find that some part of Emacs has been given that key. Tomorrow has arrived... So disappointing. ___ https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46151#61 ___ How about Emacs just stops binding keys by default? How about leaving what's left _without_ default bindings? Or will Emacs developers realize the importance of this conservation only when there are no keys left? (Why does this remind me of those who want to open wilderness to private development? And those who settled in areas they claim had no inhabitants?) Emacs doesn't need any more default key bindings. Put differently, there will _always_ be things that could be bound to keys. Emacs will be adding commands forever. Users and 3rd-party libraries also need keys. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 0:46 ` [External] : " Drew Adams @ 2021-02-06 2:37 ` Richard Stallman 0 siblings, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-06 2:37 UTC (permalink / raw) To: Drew Adams; +Cc: jao, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Given that C-/ is undo, i would find it easier to remember C-x / as > > revert-buffer ("undo everything", if you look at it sideways :)) > > than any other proposed alternative. Perhaps we should make C-x / a prefix key. But I am not arguing for this (or any other choice). I am only mentioning it as an additional alternative. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 23:20 ` Jose A. Ortega Ruiz 2021-02-05 0:46 ` [External] : " Drew Adams @ 2021-02-05 7:22 ` Lars Ingebrigtsen 2021-02-05 7:51 ` jao 1 sibling, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-05 7:22 UTC (permalink / raw) To: Jose A. Ortega Ruiz; +Cc: emacs-devel "Jose A. Ortega Ruiz" <jao@gnu.org> writes: > Given that C-/ is undo, i would find it easier to remember C-x / as > revert-buffer ("undo everything", if you look at it sideways :)) > than any other proposed alternative. It's a convenient keystroke on US keyboards, but on other national keyboards, / is hidden away in inconvenient places like S-7, and `C-x S-7' is pretty awkward to type. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 7:22 ` Lars Ingebrigtsen @ 2021-02-05 7:51 ` jao 0 siblings, 0 replies; 294+ messages in thread From: jao @ 2021-02-05 7:51 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel On Fri, Feb 05 2021, Lars Ingebrigtsen wrote: > "Jose A. Ortega Ruiz" <jao@gnu.org> writes: > >> Given that C-/ is undo, i would find it easier to remember C-x / as >> revert-buffer ("undo everything", if you look at it sideways :)) >> than any other proposed alternative. > > It's a convenient keystroke on US keyboards, but on other national > keyboards, / is hidden away in inconvenient places like S-7, and > `C-x S-7' is pretty awkward to type. I see. That's a good point. Not that it matters much, but my second vote was going to be for `C-x g g' (although there's the Magit situation, funny how 3rd party libraries get a free pass using "free" slots ;)) or `C-x G' (because i tend to use shifted letters for "destructive" commands--i imagine the shift as an exclamation mark (g!), call me a schemer). jao -- May my silences become more accurate. -Theodore Roethke, poet (1908-1963) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 16:46 ` Lars Ingebrigtsen 2021-02-04 17:55 ` Eli Zaretskii @ 2021-02-04 18:02 ` Sean Whitton 2021-02-04 18:08 ` 28.0.50; Move revert-buffer global binding into a prefix map Sean Whitton ` (2 subsequent siblings) 4 siblings, 0 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-04 18:02 UTC (permalink / raw) To: Lars Ingebrigtsen, Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel Hello, On Thu 04 Feb 2021 at 05:46PM +01, Lars Ingebrigtsen wrote: > Gregory Heytings <gregory@heytings.org> writes: > >> You forgot the proposal to which the mail you are replying to >> explicitly refers. So I'll copy it here again: it is to make "C-x g" >> a keymap for buffer-related operations, with in particular "C-x g r" >> bound to revert-buffer: >> >> C-x g c = clone-buffer >> C-x g d = diff-buffers >> C-x g f = fit-frame-to-buffer >> C-x g h = hexl-mode >> C-x g i = insert-buffer >> C-x g l = font-lock-mode >> C-x g n = rename-buffer >> C-x g r = revert-buffer >> C-x g R = revert-buffer-with-fine-grain >> C-x g t = toggle-truncate-lines > > Of the alternative key bindings proposed, I like this the best. I'd > prefer `C-x g g' for revert-buffer, though -- it's more in like with the > `g' binding in `special-mode-map', and `revert-buffer' is a command > you're likely to want to execute a number of times (in some cases), > while the rest of these are less keyboard-mashey. I had this thought too, C-x g g is preferable to C-x g r. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* 28.0.50; Move revert-buffer global binding into a prefix map 2021-02-04 16:46 ` Lars Ingebrigtsen 2021-02-04 17:55 ` Eli Zaretskii 2021-02-04 18:02 ` Sean Whitton @ 2021-02-04 18:08 ` Sean Whitton 2021-02-04 19:49 ` bug#46300: [External] : " Drew Adams ` (2 more replies) 2021-02-05 5:13 ` Concern about new binding Ergus 2021-02-06 7:28 ` Teemu Likonen 4 siblings, 3 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-04 18:08 UTC (permalink / raw) To: bug-gnu-emacs Cc: Eli Zaretskii, Gregory Heytings, Lars Ingebrigtsen, emacs-devel [-- Attachment #1: Type: text/plain, Size: 1191 bytes --] control: tag -1 + patch On Thu 04 Feb 2021 at 05:46PM +01, Lars Ingebrigtsen wrote: > Gregory Heytings <gregory@heytings.org> writes: > >> You forgot the proposal to which the mail you are replying to >> explicitly refers. So I'll copy it here again: it is to make "C-x g" >> a keymap for buffer-related operations, with in particular "C-x g r" >> bound to revert-buffer: >> >> C-x g c = clone-buffer >> C-x g d = diff-buffers >> C-x g f = fit-frame-to-buffer >> C-x g h = hexl-mode >> C-x g i = insert-buffer >> C-x g l = font-lock-mode >> C-x g n = rename-buffer >> C-x g r = revert-buffer >> C-x g R = revert-buffer-with-fine-grain >> C-x g t = toggle-truncate-lines > > Of the alternative key bindings proposed, I like this the best. I'd > prefer `C-x g g' for revert-buffer, though -- it's more in like with the > `g' binding in `special-mode-map', and `revert-buffer' is a command > you're likely to want to execute a number of times (in some cases), > while the rest of these are less keyboard-mashey. Here's a patch doing that, since this seems like a solution which satisfies most. Exactly what else to bind into that map I leave to others, for now, anyway. -- Sean Whitton [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Move-revert-buffer-global-binding-to-C-x-g-g.patch --] [-- Type: text/x-diff, Size: 2094 bytes --] From ae48c8984724013a2b145fbac32c094dd54c8f0f Mon Sep 17 00:00:00 2001 From: Sean Whitton <spwhitton@spwhitton.name> Date: Thu, 4 Feb 2021 11:05:06 -0700 Subject: [PATCH] Move 'revert-buffer' global binding to 'C-x g g' * lisp/bindings.el: Define ctl-x-g-map and bind 'revert-buffer' to 'C-x g g' globally. * doc/emacs/files.texi: Replace 'C-x g' with 'C-x g g'. * etc/NEWS: Document the change. --- doc/emacs/files.texi | 2 +- etc/NEWS | 2 +- lisp/bindings.el | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 12ceac800e..dbdb9d582a 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -927,7 +927,7 @@ Manual}). For customizations, see the Custom group @code{time-stamp}. If you have made extensive changes to a file-visiting buffer and then change your mind, you can @dfn{revert} the changes and go back to -the saved version of the file. To do this, type @kbd{C-x g}. Since +the saved version of the file. To do this, type @kbd{C-x g g}. Since reverting unintentionally could lose a lot of work, Emacs asks for confirmation first. diff --git a/etc/NEWS b/etc/NEWS index dddc150af1..cf428621d2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -234,7 +234,7 @@ still applies for shorter search strings, which avoids flicker in the search buffer due to too many matches being highlighted. +++ -** 'revert-buffer' is now bound to 'C-x g' globally. +** 'revert-buffer' is now bound to 'C-x g g' globally. \f * Editing Changes in Emacs 28.1 diff --git a/lisp/bindings.el b/lisp/bindings.el index 9ea188d1a0..3ddaf0cec1 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -1413,7 +1413,12 @@ if `inhibit-field-text-motion' is non-nil." (define-key ctl-x-map "z" 'repeat) -(define-key ctl-x-map "g" #'revert-buffer) +(defvar ctl-x-g-map + (let ((map (make-sparse-keymap))) + (define-key map "g" #'revert-buffer) + map) + "Keymap for subcommands of C-x g.") +(define-key ctl-x-map "g" ctl-x-g-map) (define-key esc-map "\C-l" 'reposition-window) -- 2.29.2 ^ permalink raw reply related [flat|nested] 294+ messages in thread
* bug#46300: [External] : 28.0.50; Move revert-buffer global binding into a prefix map 2021-02-04 18:08 ` 28.0.50; Move revert-buffer global binding into a prefix map Sean Whitton @ 2021-02-04 19:49 ` Drew Adams 2021-02-07 12:31 ` bug#46300: " Lars Ingebrigtsen 2021-02-07 12:31 ` Lars Ingebrigtsen 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-04 19:49 UTC (permalink / raw) To: spwhitton, 46300; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel@gnu.org > this seems like a solution which satisfies most. Most what? Most users? Most users polled? ^ permalink raw reply [flat|nested] 294+ messages in thread
* bug#46300: 28.0.50; Move revert-buffer global binding into a prefix map 2021-02-04 18:08 ` 28.0.50; Move revert-buffer global binding into a prefix map Sean Whitton 2021-02-04 19:49 ` bug#46300: [External] : " Drew Adams @ 2021-02-07 12:31 ` Lars Ingebrigtsen 2021-02-07 12:31 ` Lars Ingebrigtsen 2 siblings, 0 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-07 12:31 UTC (permalink / raw) To: Sean Whitton; +Cc: 46300, Gregory Heytings, emacs-devel Sean Whitton <spwhitton@spwhitton.name> writes: > Here's a patch doing that, since this seems like a solution which > satisfies most. Exactly what else to bind into that map I leave to > others, for now, anyway. Thanks; applied to Emacs 28 (but I changed the binding to `C-x x g' to avoid the Magit collision). -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: bug#46300: 28.0.50; Move revert-buffer global binding into a prefix map 2021-02-04 18:08 ` 28.0.50; Move revert-buffer global binding into a prefix map Sean Whitton 2021-02-04 19:49 ` bug#46300: [External] : " Drew Adams 2021-02-07 12:31 ` bug#46300: " Lars Ingebrigtsen @ 2021-02-07 12:31 ` Lars Ingebrigtsen 2021-02-07 18:41 ` bug#46300: [External] : " Drew Adams 2021-02-07 18:41 ` Drew Adams 2 siblings, 2 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-07 12:31 UTC (permalink / raw) To: Sean Whitton; +Cc: 46300, Gregory Heytings, Eli Zaretskii, emacs-devel Sean Whitton <spwhitton@spwhitton.name> writes: > Here's a patch doing that, since this seems like a solution which > satisfies most. Exactly what else to bind into that map I leave to > others, for now, anyway. Thanks; applied to Emacs 28 (but I changed the binding to `C-x x g' to avoid the Magit collision). -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* bug#46300: [External] : Re: bug#46300: 28.0.50; Move revert-buffer global binding into a prefix map 2021-02-07 12:31 ` Lars Ingebrigtsen @ 2021-02-07 18:41 ` Drew Adams 2021-02-07 18:41 ` Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-07 18:41 UTC (permalink / raw) To: Lars Ingebrigtsen, Sean Whitton Cc: 46300@debbugs.gnu.org, Gregory Heytings, emacs-devel@gnu.org > Thanks; applied to Emacs 28 (but I changed the > binding to `C-x x g' to avoid the Magit collision). You traded a Bookmark+ collision for a Magit collision. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: bug#46300: 28.0.50; Move revert-buffer global binding into a prefix map 2021-02-07 12:31 ` Lars Ingebrigtsen 2021-02-07 18:41 ` bug#46300: [External] : " Drew Adams @ 2021-02-07 18:41 ` Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-07 18:41 UTC (permalink / raw) To: Lars Ingebrigtsen, Sean Whitton Cc: 46300@debbugs.gnu.org, Eli Zaretskii, Gregory Heytings, emacs-devel@gnu.org > Thanks; applied to Emacs 28 (but I changed the > binding to `C-x x g' to avoid the Magit collision). You traded a Bookmark+ collision for a Magit collision. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 16:46 ` Lars Ingebrigtsen ` (2 preceding siblings ...) 2021-02-04 18:08 ` 28.0.50; Move revert-buffer global binding into a prefix map Sean Whitton @ 2021-02-05 5:13 ` Ergus 2021-02-06 7:28 ` Teemu Likonen 4 siblings, 0 replies; 294+ messages in thread From: Ergus @ 2021-02-05 5:13 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, Eli Zaretskii, emacs-devel On Thu, Feb 04, 2021 at 05:46:19PM +0100, Lars Ingebrigtsen wrote: >Gregory Heytings <gregory@heytings.org> writes: > >> You forgot the proposal to which the mail you are replying to >> explicitly refers. So I'll copy it here again: it is to make "C-x g" >> a keymap for buffer-related operations, with in particular "C-x g r" >> bound to revert-buffer: >> >> C-x g c = clone-buffer >> C-x g d = diff-buffers >> C-x g f = fit-frame-to-buffer >> C-x g h = hexl-mode >> C-x g i = insert-buffer >> C-x g l = font-lock-mode >> C-x g n = rename-buffer >> C-x g r = revert-buffer >> C-x g R = revert-buffer-with-fine-grain >> C-x g t = toggle-truncate-lines > >Of the alternative key bindings proposed, I like this the best. I'd >prefer `C-x g g' for revert-buffer, though -- it's more in like with the >`g' binding in `special-mode-map', and `revert-buffer' is a command >you're likely to want to execute a number of times (in some cases), >while the rest of these are less keyboard-mashey. > >-- >(domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no > +1 ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 16:46 ` Lars Ingebrigtsen ` (3 preceding siblings ...) 2021-02-05 5:13 ` Concern about new binding Ergus @ 2021-02-06 7:28 ` Teemu Likonen 2021-02-06 9:40 ` Gregory Heytings 4 siblings, 1 reply; 294+ messages in thread From: Teemu Likonen @ 2021-02-06 7:28 UTC (permalink / raw) To: Lars Ingebrigtsen, Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel * 2021-02-04 17:46:19+0100, Lars Ingebrigtsen wrote: > Gregory Heytings <gregory@heytings.org> writes: >> C-x g c = clone-buffer >> C-x g d = diff-buffers >> C-x g f = fit-frame-to-buffer >> C-x g h = hexl-mode >> C-x g i = insert-buffer >> C-x g l = font-lock-mode >> C-x g n = rename-buffer >> C-x g r = revert-buffer >> C-x g R = revert-buffer-with-fine-grain >> C-x g t = toggle-truncate-lines > > Of the alternative key bindings proposed, I like this the best. I'd > prefer `C-x g g' for revert-buffer, though -- it's more in like with > the `g' binding in `special-mode-map', and `revert-buffer' is a > command you're likely to want to execute a number of times (in some > cases), while the rest of these are less keyboard-mashey. I like the idea of buffer key bindings behind some new "C-x <new_letter>" map. This inspired me to add some of those to my systems (also a binding for "hl-line-mode") and I think they are useful for many people. My current list would be: C-x g c = clone-buffer C-x g d = diff-buffers C-x g h = hl-line-mode C-x g i = insert-buffer C-x g n = rename-buffer C-x g r = revert-buffer C-x g t = toggle-truncate-lines (My system doesn't seem to have "revert-buffer-with-fine-grain".) It would have been nicer if Magit documentation would have only suggested user to bind "C-c g" (not "C-x g") key for "magit-status". -- /// Teemu Likonen - .-.. https://www.iki.fi/tlikonen/ // OpenPGP: 4E1055DC84E9DFF613D78557719D69D324539450 ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 7:28 ` Teemu Likonen @ 2021-02-06 9:40 ` Gregory Heytings 2021-02-06 9:59 ` Teemu Likonen 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-06 9:40 UTC (permalink / raw) To: Teemu Likonen; +Cc: emacs-devel > > It would have been nicer if Magit documentation would have only > suggested user to bind "C-c g" (not "C-x g") key for "magit-status". > The Magit documentation does suggest to use "C-c g", but for "magit-file-dispatch", instead of "C-c M-g". ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 9:40 ` Gregory Heytings @ 2021-02-06 9:59 ` Teemu Likonen 0 siblings, 0 replies; 294+ messages in thread From: Teemu Likonen @ 2021-02-06 9:59 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1119 bytes --] * 2021-02-06 09:40:03+0000, Gregory Heytings wrote: >> It would have been nicer if Magit documentation would have only >> suggested user to bind "C-c g" (not "C-x g") key for "magit-status". > The Magit documentation does suggest to use "C-c g", but for > "magit-file-dispatch", instead of "C-c M-g". Yes, but I meant to say that key bindings are not only suggestions in the documentation: the "C-x g" key is automatically bound to magit-status command. It would be nicer if Magit didn't automatically bind anything to "reserved" keymaps. Technically global minor mode global-magit-file-mode is on by default and it enables minor mode magit-file-mode in every Git buffer. That minor mode binds "C-x g" and couple of others automatically. So, user has to manually disable that, either by disabling global-magit-file-mode (with customize, for example) or by redefining magit-file-mode-map: (defvar magit-file-mode-map) (setq magit-file-mode-map (make-sparse-keymap)) -- /// Teemu Likonen - .-.. https://www.iki.fi/tlikonen/ // OpenPGP: 4E1055DC84E9DFF613D78557719D69D324539450 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 251 bytes --] ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-04 15:05 ` Eli Zaretskii 2021-02-04 15:56 ` Gregory Heytings @ 2021-02-04 16:06 ` Drew Adams 2021-02-05 5:49 ` Richard Stallman 1 sibling, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-04 16:06 UTC (permalink / raw) To: Eli Zaretskii, Ergus Cc: emacs-devel@gnu.org, stefankangas@gmail.com, rms@gnu.org, kevin.legouguec@gmail.com > > Could we revert the previous one then?? That's the first part of my > > question. > > I'd prefer to find a binding to which people could agree, because that > would leave fewer people unhappy. How do we know that? Users haven't been polled, have they? Emacs users and Emacs have survived for 35+ years without a global binding for `revert-buffer'. Why assume that most users now would be happier if it had a global binding? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-04 16:06 ` [External] : " Drew Adams @ 2021-02-05 5:49 ` Richard Stallman 2021-02-05 8:16 ` Eli Zaretskii 2021-02-05 9:21 ` Gregory Heytings 0 siblings, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-05 5:49 UTC (permalink / raw) To: Drew Adams; +Cc: eliz, kevin.legouguec, stefankangas, spacibba, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > How do we know that? Users haven't been polled, > have they? Emacs users and Emacs have survived > for 35+ years without a global binding for > `revert-buffer'. More than that. Over that time, how often have people asked for such a global binding? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 5:49 ` Richard Stallman @ 2021-02-05 8:16 ` Eli Zaretskii 2021-02-05 9:11 ` Thibaut Verron ` (2 more replies) 2021-02-05 9:21 ` Gregory Heytings 1 sibling, 3 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 8:16 UTC (permalink / raw) To: rms; +Cc: emacs-devel > From: Richard Stallman <rms@gnu.org> > Date: Fri, 05 Feb 2021 00:49:22 -0500 > Cc: eliz@gnu.org, kevin.legouguec@gmail.com, stefankangas@gmail.com, > spacibba@aol.com, emacs-devel@gnu.org > > More than that. Over that time, how often have people > asked for such a global binding? We never bother ourselves with such questions; never did. We consider ourselves to be aware and familiar enough with the Emacs usage landscape to make such decisions without polling users on each and every step, because doing so would slow down development to an unbearable crawl. I always believed that at least part of the reasons we were nominated as maintainers was that people trust us to be capable of representing the bulk of Emacs users, and do it well enough to avoid too many serious mistakes. In a case such as this one, when one of the maintainers says "this makes sense", I expect to hear technical arguments for or against that (btw, only agreements were heard when the original decision in this case was made), but I do NOT expect to hear "go ask the world because you don't really know what you are talking about". In all the 30 years of my uninterrupted active involvement with Emacs development, I don't remember even a single instance of polling users before making user-visible decisions. (I may have missed one or two, but it cannot be more than that.) I'm astonished to hear such demands now. If this is indeed what's required from Emacs maintainers, I will seriously consider resigning, because I cannot in good faith support such ridiculous development practices, let alone such level of mistrust towards my and Lars's experience and knowhow. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 8:16 ` Eli Zaretskii @ 2021-02-05 9:11 ` Thibaut Verron 2021-02-05 11:15 ` Eli Zaretskii 2021-02-05 18:24 ` Drew Adams 2021-02-07 5:33 ` Richard Stallman 2 siblings, 1 reply; 294+ messages in thread From: Thibaut Verron @ 2021-02-05 9:11 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, emacs-devel 2021-02-05 9:16 UTC+01:00, Eli Zaretskii <eliz@gnu.org>: >> From: Richard Stallman <rms@gnu.org> >> Date: Fri, 05 Feb 2021 00:49:22 -0500 >> Cc: eliz@gnu.org, kevin.legouguec@gmail.com, stefankangas@gmail.com, >> spacibba@aol.com, emacs-devel@gnu.org >> >> More than that. Over that time, how often have people >> asked for such a global binding? > > We never bother ourselves with such questions; never did. We consider > ourselves to be aware and familiar enough with the Emacs usage > landscape to make such decisions without polling users on each and > every step, because doing so would slow down development to an > unbearable crawl. I always believed that at least part of the reasons > we were nominated as maintainers was that people trust us to be > capable of representing the bulk of Emacs users, and do it well enough > to avoid too many serious mistakes. I think this hits the nail right on. Some of us (myself included) believe that this change underestimates how many Emacs users do not consider C-x g to be a free-to-take binding. > In a case such as this one, when one of the maintainers says "this > makes sense", I expect to hear technical arguments for or against that > (btw, only agreements were heard when the original decision in this > case was made), but I do NOT expect to hear "go ask the world because > you don't really know what you are talking about". Without going as far as making a formal poll, I don't think it's unreasonable to be as careful for binding a new key as we are for rebinding an existing key. This community has achieved a bit of a "conservative" reputation on the latter, which may explain the surprise at how apparently light-handed the same decision can be taken for a "free" key. Besides, technical arguments were also brought forward: making revert-buffer too easy-to-reach is dangerous, modes which need frequent revert-buffer already bind it (directly or by inheriting from special), there is auto-revert-mode, binding free keys will necessarily break some users' configuration, the chosen key conflicts with a major 3rd party package in a way which will break its users' configuration. As far as I can tell, the suggestion of a poll was only metaphorical, as in "do we really need this in view of the drawbacks?". > In all the 30 years of my uninterrupted active involvement with Emacs > development, I don't remember even a single instance of polling users > before making user-visible decisions. (I may have missed one or two, > but it cannot be more than that.) I'm astonished to hear such demands > now. If this is indeed what's required from Emacs maintainers, I will > seriously consider resigning, because I cannot in good faith support > such ridiculous development practices, let alone such level of > mistrust towards my and Lars's experience and knowhow. I can only speak for myself, but I absolutely trust that all maintainers know the Emacs community far better than I do. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 9:11 ` Thibaut Verron @ 2021-02-05 11:15 ` Eli Zaretskii 2021-02-05 11:35 ` Thibaut Verron ` (2 more replies) 0 siblings, 3 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 11:15 UTC (permalink / raw) To: thibaut.verron; +Cc: rms, emacs-devel > From: Thibaut Verron <thibaut.verron@gmail.com> > Date: Fri, 5 Feb 2021 10:11:28 +0100 > Cc: rms@gnu.org, emacs-devel@gnu.org > > Without going as far as making a formal poll, I don't think it's > unreasonable to be as careful for binding a new key as we are for > rebinding an existing key. What makes you think we aren't that careful? That the decision so far was to add that new binding doesn't mean the potential downsides weren't considered. > Besides, technical arguments were also brought forward: I have nothing against technical objections, and said or did nothing to prevent the technical discussions, including in this very thread. The post to which you responded was only about a single demand: to make a user poll each time we add a new key binding (or make a similar change). > As far as I can tell, the suggestion of a poll was only metaphorical, Then I guess I have trouble understanding written English, because to me the demand to take a poll sounded very much as an explicit and concrete one. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 11:15 ` Eli Zaretskii @ 2021-02-05 11:35 ` Thibaut Verron 2021-02-05 12:55 ` Dmitry Gutov 2021-02-05 18:31 ` Drew Adams 2 siblings, 0 replies; 294+ messages in thread From: Thibaut Verron @ 2021-02-05 11:35 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, emacs-devel 2021-02-05 12:15 UTC+01:00, Eli Zaretskii <eliz@gnu.org>: >> From: Thibaut Verron <thibaut.verron@gmail.com> >> Date: Fri, 5 Feb 2021 10:11:28 +0100 >> Cc: rms@gnu.org, emacs-devel@gnu.org >> >> Without going as far as making a formal poll, I don't think it's >> unreasonable to be as careful for binding a new key as we are for >> rebinding an existing key. > > What makes you think we aren't that careful? That the decision so far > was to add that new binding doesn't mean the potential downsides > weren't considered. (Tongue-in-cheek) Because usually, when such downsides are brought up, the answer is status quo. (Seriously) Because I would expect that counter-arguments would have been ready and posted already. > >> Besides, technical arguments were also brought forward: > > I have nothing against technical objections, and said or did nothing > to prevent the technical discussions, including in this very thread. I know. My unclear point was that those technical arguments directly lead to the question: do we really need a revert-buffer binding now, after living for so long without one. The observation that it doesn't appear to be a very requested feature is useful to answer it. I don't think we need rigorous polling to make that statement. >> As far as I can tell, the suggestion of a poll was only metaphorical, > > Then I guess I have trouble understanding written English, because to > me the demand to take a poll sounded very much as an explicit and > concrete one. Sorry. English is not my first language, and regardless I don't want to overreach in interpreting other's answers. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 11:15 ` Eli Zaretskii 2021-02-05 11:35 ` Thibaut Verron @ 2021-02-05 12:55 ` Dmitry Gutov 2021-02-05 18:31 ` Drew Adams 2 siblings, 0 replies; 294+ messages in thread From: Dmitry Gutov @ 2021-02-05 12:55 UTC (permalink / raw) To: Eli Zaretskii, thibaut.verron; +Cc: rms, emacs-devel On 05.02.2021 13:15, Eli Zaretskii wrote: >> As far as I can tell, the suggestion of a poll was only metaphorical, > Then I guess I have trouble understanding written English, because to > me the demand to take a poll sounded very much as an explicit and > concrete one. It looked more like a question about the history of such requests rather than a demand to make a poll now. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 11:15 ` Eli Zaretskii 2021-02-05 11:35 ` Thibaut Verron 2021-02-05 12:55 ` Dmitry Gutov @ 2021-02-05 18:31 ` Drew Adams 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:31 UTC (permalink / raw) To: Eli Zaretskii, thibaut.verron@gmail.com; +Cc: rms@gnu.org, emacs-devel@gnu.org > I have nothing against technical objections, and said or did nothing > to prevent the technical discussions, including in this very thread. You said that no technical objections had been raised. > The post to which you responded was only about a single demand: to > make a user poll each time we add a new key binding (or make a similar > change). No, I was the one who posted about polling. And I did not demand anything at all. I just asked _questions_: How do we know that? Users haven't been polled, have they? Emacs users and Emacs have survived for 35+ years without a global binding for `revert-buffer'. Why assume that most users now would be happier if it had a global binding? AFAICT, no one has demanded that a poll be required for every question - or even for _any_ question. But you keep repeating that people have been making such "demands". That's not fair. > > As far as I can tell, the suggestion of a poll was only metaphorical, > > Then I guess I have trouble understanding written English, because to > me the demand to take a poll sounded very much as an explicit and > concrete one. Please cite the "demand to take a poll" to which you're referring. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 8:16 ` Eli Zaretskii 2021-02-05 9:11 ` Thibaut Verron @ 2021-02-05 18:24 ` Drew Adams 2021-02-05 18:46 ` Eli Zaretskii 2021-02-05 19:41 ` Eli Zaretskii 2021-02-07 5:33 ` Richard Stallman 2 siblings, 2 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:24 UTC (permalink / raw) To: Eli Zaretskii, rms@gnu.org; +Cc: emacs-devel@gnu.org > > More than that. Over that time, how often have people > > asked for such a global binding? > > We never bother ourselves with such questions; never did. We consider > ourselves to be aware and familiar enough with the Emacs usage > landscape to make such decisions without polling users on each and > every step, I think Richard was not talking about polling, there. I mentioned polling. He added something else: how often have users _asked_ for this? Do we have bug reports (feature requests) for it? Any? Many? (I too had mentioned this point earlier, though not in the mail that Richard replied too.) > because doing so would slow down development to an > unbearable crawl. I always believed that at least part of the reasons > we were nominated as maintainers was that people trust us to be > capable of representing the bulk of Emacs users, and do it well enough > to avoid too many serious mistakes. That's true. I don't think anyone disrespects the maintainers. I sure don't. I'm very appreciative of the hard work they do - and their judgment, in general. In particular, FWIW, I appreciate what some (many?) might consider to be your conservative push-back about many proposed changes. Sometimes I voice an explicit "+1"; sometimes I say nothing. But to myself I often say how lucky we are that you don't just go along lightly with some new-change proposal. That said, no one is infallible. Leaders that people respect the most often make mistakes. In this particular case, no one has said that a "serious mistake" was made. And we've agreed, I think, that it's not wrong for someone (especially a maintainer) in a bug thread to make a change. And that that change can be reversed, especially if it's not a big one. Some of us have argued, in this particular case, that the decision to give a default binding to `C-x g' should be reversed - at least pending more discussion. That should be possible especially since the change hasn't been made to a release, and especially because this "mistake" is _not_ a serious one. (What was argued wrt changes made in bug threads was to avoid changes that range much wider than the bug or feature request itself. That's all. In the current case, moving from a request for a key for shell buffer reverting to the "need" for a global key for buffer reverting.) > In a case such as this one, when one of the maintainers says "this > makes sense", I expect to hear technical arguments for or against that > (btw, only agreements were heard when the original decision in this > case was made), but I do NOT expect to hear "go ask the world because > you don't really know what you are talking about". 1. I gave technical arguments. I've even repeated them, since. 2. It's not true that only agreements were heard. I expressed disagreement from the outset. > In all the 30 years of my uninterrupted active involvement with Emacs > development, I don't remember even a single instance of polling users > before making user-visible decisions. (I may have missed one or two, > but it cannot be more than that.) I'm astonished to hear such demands Have you heard a "demand" now? I don't think you've heard any demands whatsoever. (Ever.) Let's not descend into hyperbole, please. > now. If this is indeed what's required from Emacs maintainers, I will > seriously consider resigning, because I cannot in good faith support > such ridiculous development practices, let alone such level of > mistrust towards my and Lars's experience and knowhow. Please don't be so defensive. No one is attacking you or Lars. It's not about you or Lars or disrespecting the authority or responsibility of maintainers. Not at all. And no, please don't consider resigning. You've threatened that multiple times over the years. I think we're all glad that you've kept at it. I can understand the pressure of the job and its responsibilities. Know that your work here is appreciated. I hope that knowledge makes a difference. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 18:24 ` Drew Adams @ 2021-02-05 18:46 ` Eli Zaretskii 2021-02-05 19:41 ` Eli Zaretskii 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 18:46 UTC (permalink / raw) To: Drew Adams; +Cc: rms, emacs-devel > From: Drew Adams <drew.adams@oracle.com> > CC: "emacs-devel@gnu.org" <emacs-devel@gnu.org> > Date: Fri, 5 Feb 2021 18:24:37 +0000 > > Know that your work here is appreciated. I hope that knowledge > makes a difference. It doesn't, not when the actual words and deeds speak to the contrary. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 18:24 ` Drew Adams 2021-02-05 18:46 ` Eli Zaretskii @ 2021-02-05 19:41 ` Eli Zaretskii 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 19:41 UTC (permalink / raw) To: Drew Adams; +Cc: rms, emacs-devel > From: Drew Adams <drew.adams@oracle.com> > Date: Fri, 5 Feb 2021 18:24:37 +0000 > Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org> > > > > More than that. Over that time, how often have people > > > asked for such a global binding? > > > > We never bother ourselves with such questions; never did. We consider > > ourselves to be aware and familiar enough with the Emacs usage > > landscape to make such decisions without polling users on each and > > every step, > > I think Richard was not talking about polling, there. > > I mentioned polling. You did, and Richard said "more than that". If that's not agreement, then I don't know what agreement is. > > In a case such as this one, when one of the maintainers says "this > > makes sense", I expect to hear technical arguments for or against that > > (btw, only agreements were heard when the original decision in this > > case was made), but I do NOT expect to hear "go ask the world because > > you don't really know what you are talking about". > > 1. I gave technical arguments. I've even repeated > them, since. Not relevant to the issues I raised. > 2. It's not true that only agreements were heard. > I expressed disagreement from the outset. You disagree with any suggestion to add new key bindings, so I long ago stopped taking your disagreements about these issues seriously. > I just asked _questions_: > > How do we know that? Users haven't been polled, > have they? "You just asked questions." Please don't insult my intelligence. I can read, you know. When I express an opinion and you say we cannot know that because there was no poll, how to interpret that other than a demand to make a poll before my opinion would count? And then Richard seconded that. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 8:16 ` Eli Zaretskii 2021-02-05 9:11 ` Thibaut Verron 2021-02-05 18:24 ` Drew Adams @ 2021-02-07 5:33 ` Richard Stallman 2021-02-07 15:05 ` Eli Zaretskii 2 siblings, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-07 5:33 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > We never bother ourselves with such questions; never did. We consider > ourselves to be aware and familiar enough with the Emacs usage > landscape to make such decisions without polling users on each and > every step, because doing so would slow down development to an > unbearable crawl. You're right, but I think we are having a miscommunication. I'm not saying we should poll the users about this. That wasn't the intention at all. Here's the discussion that led up to it: > I'd prefer to find a binding to which people could agree, because that > would leave fewer people unhappy. How do we know that? Users haven't been polled, have they? Emacs users and Emacs have survived for 35+ years without a global binding for `revert-buffer'. Why assume that most users now would be happier if it had a global binding? So I added More than that. Over that time, how often have people asked for such a global binding? My point was that we should not assume there is a lot of demand for this change. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-07 5:33 ` Richard Stallman @ 2021-02-07 15:05 ` Eli Zaretskii 2021-02-07 20:12 ` Drew Adams 2021-02-08 3:44 ` Richard Stallman 0 siblings, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-07 15:05 UTC (permalink / raw) To: rms; +Cc: emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: emacs-devel@gnu.org > Date: Sun, 07 Feb 2021 00:33:40 -0500 > > You're right, but I think we are having a miscommunication. > I'm not saying we should poll the users about this. > That wasn't the intention at all. > > Here's the discussion that led up to it: > > > I'd prefer to find a binding to which people could agree, because that > > would leave fewer people unhappy. > > How do we know that? Users haven't been polled, > have they? Emacs users and Emacs have survived > for 35+ years without a global binding for > `revert-buffer'. Why assume that most users now > would be happier if it had a global binding? > > So I added > > More than that. Over that time, how often have people > asked for such a global binding? > > My point was that we should not assume there is a lot of demand for > this change. You agreed with Drew who said a poll was needed (although now he denies that). More generally, the expectation that we poll the user to substantiate decisions or opinions is expressed more and more frequently lately, on more than one or two occasions, which is the background for what I wrote. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-07 15:05 ` Eli Zaretskii @ 2021-02-07 20:12 ` Drew Adams 2021-02-08 3:44 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-07 20:12 UTC (permalink / raw) To: Eli Zaretskii, rms@gnu.org; +Cc: emacs-devel@gnu.org > > You're right, but I think we are having a miscommunication. > > I'm not saying we should poll the users about this. > > That wasn't the intention at all. > > > > Here's the discussion that led up to it: > > > > > I'd prefer to find a binding to which people could > > > agree, because that would leave fewer people unhappy. > > > > How do we know that? Users haven't been polled, > > have they? Emacs users and Emacs have survived > > for 35+ years without a global binding for > > `revert-buffer'. Why assume that most users now > > would be happier if it had a global binding? > > > > So I added > > > > More than that. Over that time, how often have people > > asked for such a global binding? > > > > My point was that we should not assume there is a lot of > > demand for this change. > > You agreed with Drew who said a poll was needed > (although now he denies that). I already corrected you once on this. I shouldn't have to do so again. I never, ever, said that a poll is/was needed. Here, in this thread, or in any other thread. It's not that "now he [I] denies that". It's that I never said that. Please cite something to the contrary, instead of continuing to misrepresent what I've said. I do agree with Richard's general sentiment that asking users could sometimes provide some helpful info. And we both made the point that "we should not _assume_ there is a lot of demand for this change". That was the message. I posed it as a question: what demand has been expressed for this change? Has it ever been requested? (No answer, so far.) But I've never, ever, said or thought that a poll is, EVER, needed. And I have no illusions about the difficulty of good polling or the limitations of polling. I'd never promote polling as the sole, or even as necessarily a good, or even an adequate, way of determining what users want. It can be one way to obtain some kinds of info - nothing more. (And I explicitly criticized a recent outside poll of Emacs users wrt various criteria.) Nor do I think that what users want, even when we can determine that reasonably, is or should be the sole, or even the best, reason for a design decision. _Far from it._ What did I really say here about polling? I quoted it once, after your first attempt to misrepresent it. (It's quoted again, above.) Yet you persist in doing that. In response to a statement about a decision that's expected to leave "fewer people unhappy", I asked _how that was known_ or thought to be true. That's all. I asked whether users were polled in that context, as a (conceivable) justification for that claim. I have no idea what real justification, if any, might lie behind the claim. I asked whether some poll might be part of it. I didn't demand anything, including polling. You claimed I argued that "we cannot know that, because there was no poll". And you said my question was really a "demand", and that I insisted a poll be taken "before [your] opinion would count" -- and even that Richard seconded that insistence. None of that is accurate. Please stop misrepresenting what I've said. You've claimed that I've made derogatory statements, and more. I have not. I even volunteered clearly and forthrightly (and it's not the first time) that I'm very grateful for your work as maintainer, and in particular I appreciate your continuing to act conservatively wrt proposals for change, and your valuing what already exists or has long existed. I strongly value that in an Emacs maintainer. (I've also said multiple times that I especially value the importance and care you place on Emacs doc. No one, with the exception of Richard, has shown such appreciation of the importance of doc.) You replied to my statement of appreciation with a nasty grumble to the effect that it means nothing, that what I wrote is insincere, and that "actual words and deeds speak to the contrary." I can only ask that you and others take me at my word, and invite proof to the contrary. It's disingenuous and unfair to do otherwise. I don't say nice things to flatter you. I say what I mean. Please stop being so defensive, and keep the discussion about ideas. Please do not try to present a difference of opinion - a technical argument - as an attack on yourself or other maintainers. It's not. It's not about you. And it's not about me. It's about Emacs. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-07 15:05 ` Eli Zaretskii 2021-02-07 20:12 ` Drew Adams @ 2021-02-08 3:44 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-08 3:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > My point was that we should not assume there is a lot of demand for > > this change. > You agreed with Drew who said a poll was needed (although now he > denies that). I agreed with what I saw was the main point of his message. Not all the side points such perhaps having a poll. I regret any misunderstanding. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 5:49 ` Richard Stallman 2021-02-05 8:16 ` Eli Zaretskii @ 2021-02-05 9:21 ` Gregory Heytings 2021-02-05 9:38 ` Joost Kremers ` (4 more replies) 1 sibling, 5 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-05 9:21 UTC (permalink / raw) To: emacs-devel It seems to me that the root problem of this thread, and similar ones in the past months, is the lack of a convention for external packages in `(elisp) Key Binding Conventions'. There is a convention for users, there are conventions for major and minor modes, but there is no convention for external packages such as Magit, Drew's packages, and so forth. Consequently, the only solution for such packages is to use the currently empty slots, with a sword of Damocles hanging over them: these empty slots could at any time be reclaimed by Emacs. I too can sympathize with Drew's (and other's) frustration when this happens. A proposal to solve the current problem and future similar problems is to free one of the keys, and to mention in `(elisp) Key Binding Conventions' that it is, forever, reserved for external packages. This proposal has two forms: a weak and a strong one. The weak one would only reserve the control key, the strong one would also reserve the meta and control-meta keys. The candidate keys for that proposal are "z", "t" and "o". IOW, one could for example reserve either "C-z" (weak version), or "C-z" and "M-z" and "C-M-z" (strong version), for external packages. This is a one-time change, which I'm sure will not be an easy one for everyone, but is a long-term solution that will avoid such repeated wars. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 9:21 ` Gregory Heytings @ 2021-02-05 9:38 ` Joost Kremers 2021-02-05 10:42 ` Gregory Heytings ` (2 more replies) 2021-02-05 11:21 ` Eli Zaretskii ` (3 subsequent siblings) 4 siblings, 3 replies; 294+ messages in thread From: Joost Kremers @ 2021-02-05 9:38 UTC (permalink / raw) To: emacs-devel On Fri, Feb 05 2021, Gregory Heytings wrote: > It seems to me that the root problem of this thread, and similar ones in > the past months, is the lack of a convention for external packages in > `(elisp) Key Binding Conventions'. There is a convention for users, there > are conventions for major and minor modes, but there is no convention for > external packages such as Magit, Drew's packages, and so forth. > Consequently, the only solution for such packages is to use the currently > empty slots, Actually, there is another option, which AFAIK has been the unspoken "rule" for such cases: leave the binding up to the user. What we're talking about here are basically applications that run inside Emacs. They have an entry point, i.e., a function that the user can run to start the application (some may have multiple entry points, but that doesn't change the argument), which users can bind as they see fit. That's what the `C-c <letter>` keys are for. I mean, even applications that come with Emacs (Gnus, Rmail, Ediff come to mind), don't have standard key bindings. Perhaps a better way to update the documented key binding conventions is to add the rule that packages should generally not create global key bindings. Reserving keys for external packages won't solve the fundamental problem here: two external packages may still decide to use the same key bindings, causing similar conflicts for users that install both. -- Joost Kremers Life has its moments ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 9:38 ` Joost Kremers @ 2021-02-05 10:42 ` Gregory Heytings 2021-02-05 18:29 ` [External] : " Drew Adams 2021-02-06 1:32 ` Joost Kremers 2021-02-05 10:51 ` Thibaut Verron 2021-02-05 18:28 ` Drew Adams 2 siblings, 2 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-05 10:42 UTC (permalink / raw) To: Joost Kremers; +Cc: emacs-devel > > Perhaps a better way to update the documented key binding conventions is > to add the rule that packages should generally not create global key > bindings. > That's another solution indeed, but IMO it is not a reasonable one. It is reasonable for a package to create global bindings, to write its documentation with these bindings, and for users to install the package and to access it through these bindings without having to set specific configuration options beforehand. It is IMO not reasonable to require from all users to add "global-set-key"s in their configuration before using a package. > > Reserving keys for external packages won't solve the fundamental problem > here: two external packages may still decide to use the same key > bindings, causing similar conflicts for users that install both. > That's a similar, but different problem: it's a conflict between package X and package Y, not a conflict between package X and Emacs. Moreover the likelihood that two packages use the same keys is much lower when many keys are available. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 10:42 ` Gregory Heytings @ 2021-02-05 18:29 ` Drew Adams 2021-02-06 1:32 ` Joost Kremers 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:29 UTC (permalink / raw) To: Gregory Heytings, Joost Kremers; +Cc: emacs-devel@gnu.org > > Perhaps a better way to update the documented key binding > > conventions is to add the rule that packages should > > generally not create global key bindings. > > That's another solution indeed, but IMO it is not a reasonable one. It > is reasonable for a package to create global bindings, to write its > documentation with these bindings, and for users to install the package > and to access it through these bindings without having to set specific > configuration options beforehand. It is IMO not reasonable to require > from all users to add "global-set-key"s in their configuration before > using a package. > > > Reserving keys for external packages won't solve the fundamental > > problem here: two external packages may still decide to use the > > same key bindings, causing similar conflicts for users that install both. > > That's a similar, but different problem: it's a conflict between > package X and package Y, not a conflict between package X and Emacs. > Moreover the likelihood that two packages use the same keys is much > lower when many keys are available. 100% agreement. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 10:42 ` Gregory Heytings 2021-02-05 18:29 ` [External] : " Drew Adams @ 2021-02-06 1:32 ` Joost Kremers 2021-02-06 10:59 ` Gregory Heytings 2021-02-06 12:08 ` Andreas Schwab 1 sibling, 2 replies; 294+ messages in thread From: Joost Kremers @ 2021-02-06 1:32 UTC (permalink / raw) To: emacs-devel On Fri, Feb 05 2021, Gregory Heytings wrote: >> >> Perhaps a better way to update the documented key binding conventions is >> to add the rule that packages should generally not create global key >> bindings. >> > > That's another solution indeed, but IMO it is not a reasonable one. It is > reasonable for a package to create global bindings, I tend to feel differently. :-) It's reasonable for a package to *suggest* specific global key bindings and perhaps even to provide a user option or function to install them, but IMHO they shouldn't be created automatically. To an extent, this is just my personal opinion, but I think there are technical reason as well. Firstly, note that `use-package` makes it possible to delay loading a package until it's first used. That would be moot when creating bindings depends on loading a package. In order to install the global bindings, the package would have to be loaded upon startup. If you'd want to lazy-load a package, you'd have to bind the keys explicitly anyway. Moreover, lazy-loading makes it necessary that a package that creates its own global bindings adds a user option to disable the creation of those bindings, because otherwise lazy-loading a package could stomp on user-defined binding. (The only other solution would be to add a bunch of `with-eval-after-load`s to your init file to restore your personal bindings, which is not very user-friendly, IMHO.) One possible way to avoid this problem could be to basically do what Magit does: ensure that packages install their global key bindings only if they're not already bound. Emacs could provide a macro to do this, let's say `maybe-global-set-key`, which package authors would then be encouraged to use. If certain keymaps were reserved for external packages, as per your proposal, this method would also avoid the problem that `C-x g` raises now. By using `maybe-global-set-key`, a package author would know they won't be stomping on a user's preferred key bindings and at the same time they'd have the guarantee that Emacs would never override their bindings, ever. It wouldn't solve another problem, however, which is that the key bindings a user finds in their Emacs will depend on the order in which packages are loaded. You say that the likelihood of two external packages using conflicting key bindings is low, but I believe this is mainly due to the fact that most external packages follow the unspoken rule that they shouldn't create global bindings. But if Emacs reserves certain keymaps for external packages, it's likely many packages will start binding these keys, raising the potential for conflicts. And when that happens, the order in which packages are loaded matters. The only way to avoid that would be for each package to provide an option to disable the creation of its global bindings. But the system you'd end up with is complex and confusing for the user, I think. For each package you install, you'd have to find out whether its key bindings override those of another package and then make sure to load them in the correct order or set the option not to create the bindings. It's more straight-forward, I think, if you can just add a `require` or `use-package` statement to your init file and add the key bindings you want. No need to think about the place where you load the package in your init file or whether you want to lazy-load a package. Package authors would then simply include the code to create their proposed key bindings in their installation instructions and every user would have the opportunity to decide whether they want to put that code in their init file or not. There would be no potential side effect to consider and all non-standard key bindings would be located in one place: the user's init file. -- Joost Kremers Life has its moments ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 1:32 ` Joost Kremers @ 2021-02-06 10:59 ` Gregory Heytings 2021-02-06 12:08 ` Andreas Schwab 1 sibling, 0 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-06 10:59 UTC (permalink / raw) To: Joost Kremers; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1001 bytes --] > > Moreover, lazy-loading makes it necessary that a package that creates > its own global bindings adds a user option to disable the creation of > those bindings, because otherwise lazy-loading a package could stomp on > user-defined binding. > > [...] > > It wouldn't solve another problem, however, which is that the key > bindings a user finds in their Emacs will depend on the order in which > packages are loaded. > > [...] > > The only way to avoid that would be for each package to provide an > option to disable the creation of its global bindings. > AFAICS, it's not the only way to avoid that. Another solution is, when a package is loaded, to check whether the bindings it would like to use are already used, and if so, issue a warning to the user instead of rebinding them. In such cases, and only in such cases, the user would have to do something. Typical users who install a few packages each binding a few keys would never have to do anything. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 1:32 ` Joost Kremers 2021-02-06 10:59 ` Gregory Heytings @ 2021-02-06 12:08 ` Andreas Schwab 1 sibling, 0 replies; 294+ messages in thread From: Andreas Schwab @ 2021-02-06 12:08 UTC (permalink / raw) To: Joost Kremers; +Cc: emacs-devel On Feb 06 2021, Joost Kremers wrote: > To an extent, this is just my personal opinion, but I think there are technical > reason as well. Firstly, note that `use-package` makes it possible to delay > loading a package until it's first used. That would be moot when creating > bindings depends on loading a package. In order to install the global bindings, > the package would have to be loaded upon startup. If you'd want to lazy-load a > package, you'd have to bind the keys explicitly anyway. Typically, such global bindings are installed in the autoload file. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 9:38 ` Joost Kremers 2021-02-05 10:42 ` Gregory Heytings @ 2021-02-05 10:51 ` Thibaut Verron 2021-02-05 18:30 ` [External] : " Drew Adams 2021-02-05 18:28 ` Drew Adams 2 siblings, 1 reply; 294+ messages in thread From: Thibaut Verron @ 2021-02-05 10:51 UTC (permalink / raw) To: Joost Kremers; +Cc: emacs-devel 2021-02-05 10:38 UTC+01:00, Joost Kremers <joostkremers@fastmail.fm>: > > On Fri, Feb 05 2021, Gregory Heytings wrote: >> It seems to me that the root problem of this thread, and similar ones in >> the past months, is the lack of a convention for external packages in >> `(elisp) Key Binding Conventions'. There is a convention for users, there >> >> are conventions for major and minor modes, but there is no convention for >> >> external packages such as Magit, Drew's packages, and so forth. >> Consequently, the only solution for such packages is to use the currently >> >> empty slots, > > Actually, there is another option, which AFAIK has been the unspoken "rule" > for > such cases: leave the binding up to the user. +1 (as long as we are speaking both about emacs and packages) But there seems to be technical reasons for a package wanting to set its binding. > What we're talking about here are basically applications that run inside > Emacs. > They have an entry point, i.e., a function that the user can run to start > the > application (some may have multiple entry points, but that doesn't change > the > argument), which users can bind as they see fit. That's what the `C-c > <letter>` > keys are for. I mean, even applications that come with Emacs (Gnus, Rmail, > Ediff > come to mind), don't have standard key bindings. How do you define "applications"? Magit is very similar in its intent to vc-mode, which does have a global binding. A cursory look through global-map shows global bindings for functions from abbrev, dabbrev, calc, eww, xref, 2C, vc. Are those applications? > Perhaps a better way to update the documented key binding conventions is to > add > the rule that packages should generally not create global key bindings. I personally find it useful when packages recommend key bindings. It helps me understand what the package is for and how it can be used. And if sufficiently many users follow the recommendation, I don't know if the key should be considered free. The only practical difference for the issue at hand is that Emacs rebinding a recommended binding will not break configurations, instead the new binding will be shadowed by the users' init files. > Reserving keys for external packages won't solve the fundamental problem > here: > two external packages may still decide to use the same key bindings, > causing > similar conflicts for users that install both. As far as I know there has never been any serious conflict of this kind. Examples of popular packages which come to mind with global keys are: magit recommending/setting "C-x g" expand-region recommending "C-," ace-jump recommending "C-;" multi-cursors recommending the keys around "C-." (with the exception of "C-,", which might be explained by the fact that it's the same author as expand-region) org-roam hijacking "C-x n" Basically, it's been first-come-first-served in the community for a while, and small packages not complaining when their binding was taken by someone who became bigger. It seems to work, and it doesn't seem to make a difference whether a key is recommended or bound for that. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 10:51 ` Thibaut Verron @ 2021-02-05 18:30 ` Drew Adams 0 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:30 UTC (permalink / raw) To: thibaut.verron@gmail.com, Joost Kremers; +Cc: emacs-devel@gnu.org > > Reserving keys for external packages won't solve the fundamental > > problem here: two external packages may still decide to use > > the same key bindings, causing similar conflicts for users > > that install both. > > As far as I know there has never been any serious > conflict of this kind. Agreed. (But as I pointed out, there are 3rd-party libraries and 3rd-party libraries. A well-known, heavily used library is different in this regard from a small shared user library. The potential problem is there for 2 or more large, heavily-used libraries to have conflicting bindings. But I too don't see even that as much of a problem, in practice. The problem of trying to compete with Emacs default bindings is a much bigger, more real problem - it's the problem at the heart of this thread, IMO.) > Basically, it's been first-come-first-served in the community for a > while, and small packages not complaining when their binding was taken > by someone who became bigger. Yup. Well put. > It seems to work, and it doesn't seem to make a difference whether a > key is recommended or bound for that. Yup (for some meaning of "work" ;-)). ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 9:38 ` Joost Kremers 2021-02-05 10:42 ` Gregory Heytings 2021-02-05 10:51 ` Thibaut Verron @ 2021-02-05 18:28 ` Drew Adams 2021-02-12 7:34 ` Jean Louis 2 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:28 UTC (permalink / raw) To: Joost Kremers, emacs-devel@gnu.org > Perhaps a better way to update the documented key > binding conventions is to add the rule that packages > should generally not create global key bindings. As I mentioned earlier, my position on that is that (1) we can document that it's generally a good idea for 3rd-party code to only suggest such bindings, and not actually create them, but (2) there's no convention that 3rd-party code should not or must not create such bindings. What will happen, if we try a more draconian convention, is that 3rd-party code will add minor modes which wouldn't otherwise have existed (i.e., created just to provide bindings). And then we have the same potential problem, but just playing out as competition between minor modes that are active at the same time. > Reserving keys for external packages won't solve > the fundamental problem here: two external > packages may still decide to use the same key > bindings, causing similar conflicts for users > that install both. I agree. Except that I don't consider that to be the fundamental problem here. And I don't even think it is much of a potential problem, though I recognize that it exists. The fundamental problem here, IMO, is Emacs itself grabbing more and more new default keys, restricting the space of keys available for 3rd-party libraries. Competition for keys among 3rd parties is much less of a problem, I think. When Emacs grabs a key by default, no package wants to bind that key - it's effectively lost to 3rd-party code. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 18:28 ` Drew Adams @ 2021-02-12 7:34 ` Jean Louis 0 siblings, 0 replies; 294+ messages in thread From: Jean Louis @ 2021-02-12 7:34 UTC (permalink / raw) To: Drew Adams; +Cc: Joost Kremers, emacs-devel@gnu.org * Drew Adams <drew.adams@oracle.com> [2021-02-05 21:57]: > > Perhaps a better way to update the documented key > > binding conventions is to add the rule that packages > > should generally not create global key bindings. > > As I mentioned earlier, my position on that is > that (1) we can document that it's generally a > good idea for 3rd-party code to only suggest > such bindings, and not actually create them, > but (2) there's no convention that 3rd-party > code should not or must not create such bindings. That is good idea and if adopted, then it shall become part of the Emacs Lisp manual as new normative example. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 9:21 ` Gregory Heytings 2021-02-05 9:38 ` Joost Kremers @ 2021-02-05 11:21 ` Eli Zaretskii 2021-02-05 12:07 ` Gregory Heytings ` (2 more replies) 2021-02-05 18:26 ` [External] : " Drew Adams ` (2 subsequent siblings) 4 siblings, 3 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 11:21 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > Date: Fri, 05 Feb 2021 09:21:20 +0000 > From: Gregory Heytings <gregory@heytings.org> > > A proposal to solve the current problem and future similar problems is to > free one of the keys, and to mention in `(elisp) Key Binding Conventions' > that it is, forever, reserved for external packages. > > This proposal has two forms: a weak and a strong one. The weak one would > only reserve the control key, the strong one would also reserve the meta > and control-meta keys. > > The candidate keys for that proposal are "z", "t" and "o". C-z, C-t, and C-o are already taken, and are very old bindings. C-t in particular is very useful and frequently-used (by me, FWIW), and also matches the default binding in Bash, GDB CLI, and elsewhere. A recent discussion demonstrated that at least for C-z enough people are against changing its binding, even though we have "C-x C-z" to do the same. These data points suggest that usurping these keys may not be easy, to say the least. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 11:21 ` Eli Zaretskii @ 2021-02-05 12:07 ` Gregory Heytings 2021-02-05 12:39 ` Eli Zaretskii ` (2 more replies) 2021-02-05 18:31 ` [External] : " Drew Adams 2021-02-05 19:14 ` Ergus via Emacs development discussions. 2 siblings, 3 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-05 12:07 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel >> A proposal to solve the current problem and future similar problems is >> to free one of the keys, and to mention in `(elisp) Key Binding >> Conventions' that it is, forever, reserved for external packages. >> >> This proposal has two forms: a weak and a strong one. The weak one >> would only reserve the control key, the strong one would also reserve >> the meta and control-meta keys. >> >> The candidate keys for that proposal are "z", "t" and "o". > > C-z, C-t, and C-o are already taken > I know this; I said "to _free_ one of the keys". > > C-t in particular is very useful and frequently-used (by me, FWIW), and > also matches the default binding in Bash, GDB CLI, and elsewhere. A > recent discussion demonstrated that at least for C-z enough people are > against changing its binding, even though we have "C-x C-z" to do the > same. > Yes, it is unavoidable that some people will be against changing a binding. I have no preference between the three proposed keys, and anticipated that there would be more objections against using "t" for that purpose. If we put "t" aside, there are still two other options: "z" and "o". > > These data points suggest that usurping these keys may not be easy, to > say the least. > The meaning of the proposal is that the benefit of such a single change is, in the long term, largely superior to its loss in the short term. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 12:07 ` Gregory Heytings @ 2021-02-05 12:39 ` Eli Zaretskii 2021-02-05 12:39 ` Thibaut Verron 2021-02-06 15:23 ` Stefan Kangas 2 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 12:39 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > Date: Fri, 05 Feb 2021 12:07:48 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: emacs-devel@gnu.org > > > These data points suggest that usurping these keys may not be easy, to > > say the least. > > The meaning of the proposal is that the benefit of such a single change > is, in the long term, largely superior to its loss in the short term. I'm just not sure enough people will share your opinion to make it possible to do such a change. But that's me; and for my personal usage I don't really care too much about changes in key bindings because it's all too easy to override any defaults I don't like (e.g., I have my private key binding for "C-x g"). But others evidently care a lot. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 12:07 ` Gregory Heytings 2021-02-05 12:39 ` Eli Zaretskii @ 2021-02-05 12:39 ` Thibaut Verron 2021-02-05 12:41 ` Thibaut Verron 2021-02-06 15:23 ` Stefan Kangas 2 siblings, 1 reply; 294+ messages in thread From: Thibaut Verron @ 2021-02-05 12:39 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel 2021-02-05 13:07 UTC+01:00, Gregory Heytings <gregory@heytings.org>: > >>> A proposal to solve the current problem and future similar problems is >>> to free one of the keys, and to mention in `(elisp) Key Binding >>> Conventions' that it is, forever, reserved for external packages. >>> >>> This proposal has two forms: a weak and a strong one. The weak one >>> would only reserve the control key, the strong one would also reserve >>> the meta and control-meta keys. >>> >>> The candidate keys for that proposal are "z", "t" and "o". >> >> C-z, C-t, and C-o are already taken >> > > I know this; I said "to _free_ one of the keys". > >> >> C-t in particular is very useful and frequently-used (by me, FWIW), and >> also matches the default binding in Bash, GDB CLI, and elsewhere. A >> recent discussion demonstrated that at least for C-z enough people are >> against changing its binding, even though we have "C-x C-z" to do the >> same. >> > > Yes, it is unavoidable that some people will be against changing a > binding. I have no preference between the three proposed keys, and > anticipated that there would be more objections against using "t" for that > purpose. If we put "t" aside, there are still two other options: "z" and > "o". > >> >> These data points suggest that usurping these keys may not be easy, to >> say the least. >> > > The meaning of the proposal is that the benefit of such a single change > is, in the long term, largely superior to its loss in the short term. > > ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 12:39 ` Thibaut Verron @ 2021-02-05 12:41 ` Thibaut Verron 0 siblings, 0 replies; 294+ messages in thread From: Thibaut Verron @ 2021-02-05 12:41 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel 2021-02-05 13:39 UTC+01:00, Thibaut Verron <thibaut.verron@gmail.com>: > 2021-02-05 13:07 UTC+01:00, Gregory Heytings <gregory@heytings.org>: >> >>>> A proposal to solve the current problem and future similar problems is >>>> to free one of the keys, and to mention in `(elisp) Key Binding >>>> Conventions' that it is, forever, reserved for external packages. >>>> >>>> This proposal has two forms: a weak and a strong one. The weak one >>>> would only reserve the control key, the strong one would also reserve >>>> the meta and control-meta keys. >>>> >>>> The candidate keys for that proposal are "z", "t" and "o". >>> >>> C-z, C-t, and C-o are already taken >>> >> >> I know this; I said "to _free_ one of the keys". >> >>> >>> C-t in particular is very useful and frequently-used (by me, FWIW), and >>> also matches the default binding in Bash, GDB CLI, and elsewhere. A >>> recent discussion demonstrated that at least for C-z enough people are >>> against changing its binding, even though we have "C-x C-z" to do the >>> same. >>> >> >> Yes, it is unavoidable that some people will be against changing a >> binding. I have no preference between the three proposed keys, and >> anticipated that there would be more objections against using "t" for >> that >> purpose. If we put "t" aside, there are still two other options: "z" and >> "o". (Sorry for the message I sent just now, it is really empty) I also regularly use C-o to get some breathing room. I unbind C-z to have a free key in tmux and screen, so I wouldn't mind freeing that key. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 12:07 ` Gregory Heytings 2021-02-05 12:39 ` Eli Zaretskii 2021-02-05 12:39 ` Thibaut Verron @ 2021-02-06 15:23 ` Stefan Kangas 2021-02-06 18:19 ` Ergus 2021-02-12 9:47 ` Jean Louis 2 siblings, 2 replies; 294+ messages in thread From: Stefan Kangas @ 2021-02-06 15:23 UTC (permalink / raw) To: Gregory Heytings, Eli Zaretskii; +Cc: emacs-devel Gregory Heytings <gregory@heytings.org> writes: > Yes, it is unavoidable that some people will be against changing a > binding. I have no preference between the three proposed keys, and > anticipated that there would be more objections against using "t" for that > purpose. If we put "t" aside, there are still two other options: "z" and > "o". FWIW, I would not like to see C-o change as I use it daily. But I could live with it as I can rebind it locally. It would be too bad that we would then lose the nice symmetry between `C-o' and `C-x C-o'. I'm in favour of rebinding C-z to exactly one thing: `undo'. It would IMO be very unfortunate if we do rebind it yet miss out on the opportunity to make Emacs more like other applications. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 15:23 ` Stefan Kangas @ 2021-02-06 18:19 ` Ergus 2021-02-12 9:47 ` Jean Louis 1 sibling, 0 replies; 294+ messages in thread From: Ergus @ 2021-02-06 18:19 UTC (permalink / raw) To: Stefan Kangas; +Cc: Gregory Heytings, Eli Zaretskii, emacs-devel On Sat, Feb 06, 2021 at 07:23:18AM -0800, Stefan Kangas wrote: >Gregory Heytings <gregory@heytings.org> writes: > > >I'm in favour of rebinding C-z to exactly one thing: `undo'. It would >IMO be very unfortunate if we do rebind it yet miss out on the >opportunity to make Emacs more like other applications. > Hi Stefan: Unless I totally agree with this proposal... it implies that there will be two changes: 1) (Re)Moving undo from where it is and 2) putting it in C-z... I proposed that some months ago and it started another war due to the concept of "emacs does not have to be like other applications" but also "use cua mode" they said. So if this is accepted I will be totally in favor of the change... but I don't think it will be approved. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-06 15:23 ` Stefan Kangas 2021-02-06 18:19 ` Ergus @ 2021-02-12 9:47 ` Jean Louis 1 sibling, 0 replies; 294+ messages in thread From: Jean Louis @ 2021-02-12 9:47 UTC (permalink / raw) To: Stefan Kangas; +Cc: Gregory Heytings, Eli Zaretskii, emacs-devel * Stefan Kangas <stefankangas@gmail.com> [2021-02-06 18:24]: > Gregory Heytings <gregory@heytings.org> writes: > > > Yes, it is unavoidable that some people will be against changing a > > binding. I have no preference between the three proposed keys, and > > anticipated that there would be more objections against using "t" for that > > purpose. If we put "t" aside, there are still two other options: "z" and > > "o". > > FWIW, I would not like to see C-o change as I use it daily. But I could > live with it as I can rebind it locally. It would be too bad that we > would then lose the nice symmetry between `C-o' and `C-x C-o'. > > I'm in favour of rebinding C-z to exactly one thing: `undo'. It would > IMO be very unfortunate if we do rebind it yet miss out on the > opportunity to make Emacs more like other applications. For console users it is good to consider why people use C-z in the first place. Why would anybody wish to "stop the job" in the shell? Maybe there is urgent need to replace disks, mount disks, unmount such, connect to remove servers during job execution? Maybe there is need to replace the video file in the file list while not interrupting the processing of other 20 video files? Maybe such video file processing takes 2 days. I am using Emacs Lisp to process video files and this is real world example. Sometimes I process video files on remote server. Maybe I do not want to process video files during the day and job can remain suspended until the night without interrupting the queue of video files being processed. Thus it is good to consider the purpose for users to suspend a job in their shell. Yes, sure there are other Emacs key bindings to suspend the job, but suspending a job should be compatible with shell bindings to suspend the job and that is C-z. Breaking incompatibility puts users' data at stake. Jean ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 11:21 ` Eli Zaretskii 2021-02-05 12:07 ` Gregory Heytings @ 2021-02-05 18:31 ` Drew Adams 2021-02-05 19:14 ` Ergus via Emacs development discussions. 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:31 UTC (permalink / raw) To: Eli Zaretskii, Gregory Heytings; +Cc: emacs-devel@gnu.org > C-t in particular is very useful and frequently-used (by me, FWIW), and > also matches the default binding in Bash, GDB CLI, and elsewhere. I don't argue that `C-t' should or must be repurposed, and I too use it. But I do think it's one candidate for that. I think there are most likely better uses for it. It, along with some other keys (I mentioned `C-o') are worth discussing, if Emacs needs more key bindings. > These data points suggest that usurping these keys > may not be easy, to say the least. Yes. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 11:21 ` Eli Zaretskii 2021-02-05 12:07 ` Gregory Heytings 2021-02-05 18:31 ` [External] : " Drew Adams @ 2021-02-05 19:14 ` Ergus via Emacs development discussions. 2021-02-05 19:43 ` Eli Zaretskii 2021-02-05 23:57 ` chad 2 siblings, 2 replies; 294+ messages in thread From: Ergus via Emacs development discussions. @ 2021-02-05 19:14 UTC (permalink / raw) To: emacs-devel, Eli Zaretskii, Gregory Heytings On February 5, 2021 12:21:02 PM GMT+01:00, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Fri, 05 Feb 2021 09:21:20 +0000 >> From: Gregory Heytings <gregory@heytings.org> >> >> A proposal to solve the current problem and future similar problems >is to >> free one of the keys, and to mention in `(elisp) Key Binding >Conventions' >> that it is, forever, reserved for external packages. >> >> This proposal has two forms: a weak and a strong one. The weak one >would >> only reserve the control key, the strong one would also reserve the >meta >> and control-meta keys. >> >> The candidate keys for that proposal are "z", "t" and "o". > >C-z, C-t, and C-o are already taken, and are very old bindings. C-t >in particular is very useful and frequently-used (by me, FWIW), and >also matches the default binding in Bash, GDB CLI, and elsewhere. A >recent discussion demonstrated that at least for C-z enough people are >against changing its binding, even though we have "C-x C-z" to do the >same. > Hi Eli: IIRC there were not agreement about what to do with C-z. BUT not really many people against the change itself. There was the suggestion to use C-z C-z and C-z z (ala M-g g) inside the new C-z map that made happy many old C-z users. Then the problem was the lack of a decision and a deadline to decide. Sometimes I feel that we need just a pool application to vote and a deadline. to decide about. And we will save a lot of emails. >These data points suggest that usurping these keys may not be easy, to >say the least. -- Sent from my Android device with K-9 Mail. Please excuse my brevity. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 19:14 ` Ergus via Emacs development discussions. @ 2021-02-05 19:43 ` Eli Zaretskii 2021-02-05 23:57 ` chad 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 19:43 UTC (permalink / raw) To: Ergus; +Cc: gregory, emacs-devel > Date: Fri, 05 Feb 2021 20:14:29 +0100 > From: Ergus <spacibba@aol.com> > > Sometimes I feel that we need just a pool application to vote and a > deadline. to decide about. This isn't a democracy, so a poll is not the right instrument to make decisions. Hearing different opinions is a tool, not the algorithm to decide what to do. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 19:14 ` Ergus via Emacs development discussions. 2021-02-05 19:43 ` Eli Zaretskii @ 2021-02-05 23:57 ` chad 1 sibling, 0 replies; 294+ messages in thread From: chad @ 2021-02-05 23:57 UTC (permalink / raw) To: Ergus; +Cc: Eli Zaretskii, Gregory Heytings, EMACS development team [-- Attachment #1: Type: text/plain, Size: 1946 bytes --] On Fri, Feb 5, 2021 at 11:16 AM Ergus via Emacs development discussions. < emacs-devel@gnu.org> wrote: > > A > >recent discussion demonstrated that at least for C-z enough people are > >against changing its binding, even though we have "C-x C-z" to do the > >same. > > IIRC there were not agreement about what to do with C-z. BUT not really > many people against the change itself. There was the suggestion to use C-z > C-z and C-z z (ala M-g g) inside the new C-z map that made happy many old > C-z users. Then the problem was the lack of a decision and a deadline to > decide. > I had proposed such a change a while back, not too long before the thread in question, along with a request for people to reply to the list or to me directly if they used C-z suspend-frame in GUI emacs. FWIW, I got no reply saying that they did use the binding, and multiple people saying that they had rebound C-z themselves (which I have been doing for 25+ years). What I would characterize as the major objection was the desire to have emacs on a tty respond reasonably to at least one of the canonical ways to end a tty program, C-c or C-z, along with reluctance to strongly segregate the keybindings between tty and GUI, at least as far as commonly-used functions were concerned. I think that there is a reasonable technical solution available here where hitting C-z and then nothing else for a few seconds provides enough guidance to the user, roughly along the same lines as what the very popular package which-key already does. (For anyone not familiar, it creates, after a short delay, a list of possible completions for a current partial command. More details can be had from: https://elpa.gnu.org/packages/which-key.html ) There had been talk in the past year about perhaps including/enabling something which-key or something similar as part of the "modernization" effort, so I didn't push the conversation past that point. Hope that helps, ~Chad [-- Attachment #2: Type: text/html, Size: 2509 bytes --] ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 9:21 ` Gregory Heytings 2021-02-05 9:38 ` Joost Kremers 2021-02-05 11:21 ` Eli Zaretskii @ 2021-02-05 18:26 ` Drew Adams 2021-02-05 20:26 ` Gregory Heytings 2021-02-07 5:43 ` Richard Stallman 2021-02-12 8:35 ` Jean Louis 4 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-05 18:26 UTC (permalink / raw) To: Gregory Heytings, emacs-devel@gnu.org > It seems to me that the root problem of this thread, and similar ones > in > the past months, is the lack of a convention for external packages in > `(elisp) Key Binding Conventions'. There is a convention for users, > there > are conventions for major and minor modes, but there is no convention > for > external packages such as Magit, Drew's packages, and so forth. FWIW, I don't think that's the root problem of this thread. I don't even think it's much of a problem. I, for one, think that it makes sense for 3rd-party libraries to be in the same class as users when it comes to key-binding conventions. I might be convinced otherwise. And yes, there are differences among 3rd-party libraries. Some are huge and have many users. Some are even nearly part of Emacs itself. Others are simply some small bit of code that a user shares with others. I think that, until proven otherwise, we're OK with lumping 3rd-party code with users, when it comes to conventions about key bindings. > Consequently, the only solution for such packages is to use the > currently empty slots, with a sword of Damocles hanging over > them: these empty slots could at any time be reclaimed by Emacs. > I too can sympathize with Drew's (and other's) frustration when > this happens. It's indeed a problem. The same problem can arise if some other 3rd-party library decides to use the same key (e.g. a prefix key) that another library has long used. But I think that such potential conflicts among 3rd-party bindings are less of a problem than Emacs itself grabbing keys. (See above. And again, I could be convinced otherwise.) > A proposal to solve the current problem and future similar problems is > to free one of the keys, and to mention in `(elisp) Key Binding > Conventions' that it is, forever, reserved for external packages. I'm not in favor of that - a single key for all 3rd-party code. > This proposal has two forms: a weak and a strong one. The weak one > would only reserve the control key, the strong one would also > reserve the meta and control-meta keys. I guess you mean not a single key but a single key plus its Control or Control-&-Meta modifiers? I'm not in favor of that either - still too limiting. I favor allowing all keys that are currently allowed for 3rd-party code. And I favor Emacs itself implementing a moratorium on binding any more keys by default. A moratorium that could be overruled in cases deemed to be important, cases that would hopefully be discussed here, and would of course be decided by the maintainers. > The candidate keys for that proposal are "z", "t" and "o". > IOW, one could for example reserve either "C-z" (weak version), or "C- > z" > and "M-z" and "C-M-z" (strong version), for external packages. > > This is a one-time change, which I'm sure will not be an easy one for > everyone, but is a long-term solution that will avoid such repeated > wars. To me, that's too limiting for 3rd-party libraries. I'd prefer what I say above. Emacs itself should keep its hands off new keys. Emacs can instead repurpose some existing key bindings, if it needs new bindings. There are, I think, some existing bindings that might not be all that necessary. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 18:26 ` [External] : " Drew Adams @ 2021-02-05 20:26 ` Gregory Heytings 2021-02-05 20:54 ` Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-05 20:26 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel >> A proposal to solve the current problem and future similar problems is >> to free one of the keys, and to mention in `(elisp) Key Binding >> Conventions' that it is, forever, reserved for external packages. > > I'm not in favor of that - a single key for all 3rd-party code. > > [...] > > I'm not in favor of that either - still too limiting. > I'm puzzled. The proposal frees one complete keymap for libraries such as Magit and yours. With say C-o, Magit could use C-o g and C-o M-g, you could use C-o p and C-o / and ..., and so forth, with the guarantee that Emacs would never reclaim any key in that map. That's a lot of room... > > I favor allowing all keys that are currently allowed for 3rd-party code. > And I favor Emacs itself implementing a moratorium on binding any more > keys by default. > ... but apparently you prefer to continue to use the few remaining keys that are not bound by default? Isn't that contradictory? > > To me, that's too limiting for 3rd-party libraries. I'd prefer what I > say above. Emacs itself should keep its hands off new keys. > That's clearly an unreasonable demand. When new commands are added to Emacs, I see no reason to not bind them to some key. I also see no reason to not bind commands that were for one reason or another not bound when they were included in Emacs, and are nowadays considered important enough to be bound to a key. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 20:26 ` Gregory Heytings @ 2021-02-05 20:54 ` Drew Adams 2021-02-05 21:41 ` Gregory Heytings 0 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-05 20:54 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel@gnu.org > I'm puzzled. The proposal frees one complete keymap for libraries such > as Magit and yours. With say C-o, Magit could use C-o g and C-o M-g, you > could use C-o p and C-o / and ..., and so forth, with the guarantee > that Emacs would never reclaim any key in that map. That's a lot of room... > > > I favor allowing all keys that are currently allowed for 3rd-party > > code. And I favor Emacs itself implementing a moratorium on > > binding any more keys by default. > > ... but apparently you prefer to continue to use the few remaining keys > that are not bound by default? Isn't that contradictory? How so? The few remaining keys are more than a single key. > > To me, that's too limiting for 3rd-party libraries. I'd prefer what I > > say above. Emacs itself should keep its hands off new keys. > > That's clearly an unreasonable demand. When new commands are added to > Emacs, I see no reason to not bind them to some key. I see no reason _to_ bind a command just because it's new. And I was clear that there could be exceptions to the (proposed) rule. The point is that (1) there are few keys left, and (2) if Emacs itself binds one of them, that's more limiting, in effect, than if some 3rd-party library binds one of them. To me, there's a problem: scarcity of available keys. I proposed something that could help with that problem. That's all. Other suggestions for that? > I also see no reason to not bind commands that were > for one reason or another not bound when they were > included in Emacs, As Eli is wont to say (correctly), we don't do things in Emacs just because there's no known good reason not to. We make changes when there are good reasons _to_ do so. It's not just about `revert-buffer' not having been bound when it was included in Emacs (Day One, probably). It's that for all of Emacs's 35+ years it hasn't been bound. And I'm not aware of any requests (new or old) for that. (And none have been presented so far in this discussion.) The importance of that command, and its relatively frequent and common use, together with the fact that it has never had a default global key binding, and that no one has even asked for such a binding, all argue against a need for it to have such a binding. > and are nowadays considered important enough to be > bound to a key. That's in question, isn't it? And it's not about whether it's important for `revert-buffer' to be bound to a key. _I_ bind it to a global key, myself, as one user. It's about whether it's important enough to be bound globally by default. And I haven't seen here anything that's argued that there's some particular "nowadays" need that wasn't a need before. No need expressed before, and no new need expressed now. And besides users binding `revert-buffer' (because they find that useful), `revert-buffer' _is_ bound by Emacs by default - in multiple modes, and often to a mode-specific behavior (via variable `revert-buffer-function'). The discussion of binding `revert-buffer' is only about binding it globally by default. That's what's new, that's what's just been done. And there's been no "nowadays" need presented for that, AFAIK. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 20:54 ` Drew Adams @ 2021-02-05 21:41 ` Gregory Heytings 2021-02-05 22:43 ` Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-05 21:41 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel@gnu.org >> I'm puzzled. The proposal frees one complete keymap for libraries such >> as Magit and yours. With say C-o, Magit could use C-o g and C-o M-g, >> you could use C-o p and C-o / and ..., and so forth, with the guarantee >> that Emacs would never reclaim any key in that map. That's a lot of >> room... >> >>> I favor allowing all keys that are currently allowed for 3rd-party >>> code. And I favor Emacs itself implementing a moratorium on binding >>> any more keys by default. >> >> ... but apparently you prefer to continue to use the few remaining keys >> that are not bound by default? Isn't that contradictory? > > How so? The few remaining keys are more than a single key. > ... and a complete keymap is more than a single key. I can't understand why you do not agree that having _all_ (say) C-o LETTER slots at the disposal of third-party libraries is not a reasonable solution that would contribute to peace and stability, and that you prefer to fight to keep the last five or six C-x LETTER slots free. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 21:41 ` Gregory Heytings @ 2021-02-05 22:43 ` Drew Adams 2021-02-05 23:38 ` Gregory Heytings 0 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-05 22:43 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel@gnu.org > >> ... but apparently you prefer to continue to use the > >> few remaining keys that are not bound by default? > >> Isn't that contradictory? > > > > How so? The few remaining keys are more than a single key. > > ... and a complete keymap is more than a single key. No, sorry; I still don't understand. You can bind a keymap to a key. If there are _several_ keys that you can bind keymaps to, then that offers more possibilities than if there is only _one_ key that you can bind a keymap to. > I can't understand why you do not agree that having > _all_ (say) C-o LETTER slots at the disposal of > third-party libraries is not a reasonable solution > that would contribute to peace and stability, and > that you prefer to fight to keep the last five or > six C-x LETTER slots free. `C-o' is currently bound by default. But I already made clear that I'm for freeing it up, one way or another. I _do_ agree that having all `C-o LETTER' keys available for binding would be helpful. If _only_ `C-o' were available for use as a prefix key then that would be far less than all of the currently unbound keys, which can each be used as a prefix key. And the currently unbound keys are not limited to `C-x LETTER' or even `C-x <whatever>' keys. I proposed a moratorium on Emacs binding any new keys by default. I didn't limit that to `C-x LETTER'. And yes, we could go further, and consider adding some currently globally bound keys, such as `C-o', to the "free" list. I wouldn't be against that, at all, even if I only argued for Emacs to keep its mitts off keys keys that don't yet have global default bindings. My proposal is a good start. But I sure wouldn't mind having us go further. Emacs has too many keys bound globally by default, I think. That latter battle isn't one I'd argue for now, but yeah, I'm in favor of Emacs having even fewer global key bindings, not just in favor of it putting an end to the steal. (Ooooh, apologies for that horrible turn of phrase.) Something needs to be done, IMO. Other proposals are welcome, to help us manage key-binding possibilities and their inherent limitations. Early on, there was a vast undeveloped and unexplored frontier - uncharted territory. Now, Land's End is in plain sight. Maybe Emacs should bind global keys only using some hydra-like functionality. (Dunno.) But whatever solution we might find, it's important that the help system really support it. Today, help on keys is good - even static help, i.e., without something like `which-key' or Icicles key completion. Today, you can do `C-x 4 C-h' and get help on all of those keys. Likewise, `describe-keymap' is a great help. We need to ensure that we keep providing great key help. Dunno whether a hydra approach - or even some of the currently discussed transient key approaches - provide such good help. I suspect not, but I don't know. It's one thing to provide on-the-fly help with some kind of completion when you start to use a key. It's something else to be able to get help about whole sets of keys. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 22:43 ` Drew Adams @ 2021-02-05 23:38 ` Gregory Heytings 2021-02-06 0:45 ` Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-05 23:38 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel@gnu.org >>>> ... but apparently you prefer to continue to use the few remaining >>>> keys that are not bound by default? Isn't that contradictory? >>> >>> How so? The few remaining keys are more than a single key. >> >> ... and a complete keymap is more than a single key. > > No, sorry; I still don't understand. You can bind a keymap to a key. > If there are _several_ keys that you can bind keymaps to, then that > offers more possibilities than if there is only _one_ key that you can > bind a keymap to. > I'm not sure I see what you mean. It's not _one_ key. Having a complete keymap at the disposal of third-party libraries means that there are (at least) 26 letters free; each of them can be bound to a separate keymap. Magit would bind the "g" and "M-g" keys, some other library would bind the "." and "," keys, another one would bind "x" key to a keymap, another one would bind the "C-k" and "C-l" keys, you would bind the "p" key to a keymap for your bookmark+ library, and so forth. Or am I missing something? And with the "strong" version of the proposal, there would be (at least) 52 other prefix keys, with the meta- and control-meta- prefixes. > > And the currently unbound keys are not limited to `C-x LETTER' or even > `C-x <whatever>' keys. > Almost all C-SYMBOL and almost all C-M-SYMBOL keys are currently unbound indeed, but I don't see any evidence that Emacs is about to grab them all. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-05 23:38 ` Gregory Heytings @ 2021-02-06 0:45 ` Drew Adams 2021-02-06 9:29 ` Gregory Heytings 0 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-06 0:45 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel@gnu.org > > If there are _several_ keys that you can bind > > keymaps to, then that offers more possibilities > > than if there is only _one_ key that you can > > bind a keymap to. > > I'm not sure I see what you mean. It's not _one_ key. Having a > complete keymap at the disposal of third-party libraries means > that there are (at least) 26 letters free; each of them can be > bound to a separate keymap. Yes, of course. I already acknowledged that. That's still much less than what can be bound to several such prefix keys. _Of course_ you can bind each letter to a prefix key. But you can do the same on any of the still-free keys. And there are more than one of those. (More than one is, well, more than one.) What's more, if you put everything on only a single prefix key, then that leads to deeper (i.e., longer) key bindings. For example, I use `C-x x' as a prefix key for Bookmark+ keys other than specific kinds of bookmark jumping. I use `C-x j' and `C-x 4 j' as prefix keys for bookmark jumping commands. Without being able to use more than one prefix key, the jump commands would all be a level deeper (longer key sequences). And the jump prefix keys themselves already have multiple levels of prefix keys. E.g., `C-x j t . % +' jumps to a file bookmark in the current dir (`.') that has a tag (`t') that matches a given regexp (`%') you're prompted for. Those keys are systematic and mnemonic, but that's already several prefix keys deep. I've seen no reason, so far, why we should limit 3rd-party libraries to a single prefix key - even if one can of course keep extending a prefix key by adding deeper layers. Better to have _several_ free keys for 3rd-party libraries than to have only one. That's the point. No argument for how you can put lots of stuff on a single prefix key can overcome the fact that more prefix keys give you more than does one prefix key. https://www.emacswiki.org/emacs/BookmarkPlus#BookmarkPrefixKeys ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-06 0:45 ` Drew Adams @ 2021-02-06 9:29 ` Gregory Heytings 2021-02-06 18:09 ` Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-06 9:29 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel >> Having a complete keymap at the disposal of third-party libraries means >> that there are (at least) 26 letters free; each of them can be bound to >> a separate keymap. > > That's still much less than what can be bound to several such prefix > keys. > That's wrong, both from a practical and from a theoretical point of view. From a practical point of view, the bindings in (B) are not deeper/longer than the bindings in (A): | (A) | (B) | |---------------|---------------| | C-x j | C-o j | | C-x j = f | C-o j = f | | C-x j t . % + | C-o j t . % + | | C-x 4 j | C-o 4 j | | C-x x : | C-o x : | | C-x x t e | C-o x t e | | C-x x t + b | C-o x t + b | From a theoretical point of view: the number of available keys is, in both cases, aleph-zero. > > No argument for how you can put lots of stuff on a single prefix key can > overcome the fact that more prefix keys give you more than does one > prefix key. > "No argument can."? "A man hears what he wants to hear, and disregards the rest." (Simon & Garfunkel) ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-06 9:29 ` Gregory Heytings @ 2021-02-06 18:09 ` Drew Adams 2021-02-12 7:59 ` Jean Louis 2021-02-12 8:21 ` Alfred M. Szmidt 0 siblings, 2 replies; 294+ messages in thread From: Drew Adams @ 2021-02-06 18:09 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel@gnu.org > | (A) | (B) | > |---------------|---------------| > | C-x j | C-o j | > | C-x j = f | C-o j = f | > | C-x j t . % + | C-o j t . % + | > | C-x 4 j | C-o 4 j | > | C-x x : | C-o x : | > | C-x x t e | C-o x t e | > | C-x x t + b | C-o x t + b | You don't seem to be hearing that I want more than just reserving one prefix key, `C-o'. It's not about letting Emacs bind `C-x' keys (and any other keys) by default, willy nilly, and giving 3rd-party writers and other users only `C-o'. Reserving `C-o' for users and 3rd-party code is a fine proposal. I'd like the same thing for `C-x j', `C-x x', and _all_ other keys that Emacs does not currently bind by default (not just `C-x' keys). I'm suggesting a moratorium on Emacs binding keys by default. (And I mentioned that there could be exceptions, in case of something discussed and considered important enough. The point is to try to deal with the problem of a limited keyspace.) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-06 18:09 ` Drew Adams @ 2021-02-12 7:59 ` Jean Louis 2021-02-12 17:35 ` Drew Adams 2021-02-12 8:21 ` Alfred M. Szmidt 1 sibling, 1 reply; 294+ messages in thread From: Jean Louis @ 2021-02-12 7:59 UTC (permalink / raw) To: Drew Adams; +Cc: Gregory Heytings, emacs-devel@gnu.org * Drew Adams <drew.adams@oracle.com> [2021-02-06 21:10]: > > | (A) | (B) | > > |---------------|---------------| > > | C-x j | C-o j | > > | C-x j = f | C-o j = f | > > | C-x j t . % + | C-o j t . % + | > > | C-x 4 j | C-o 4 j | > > | C-x x : | C-o x : | > > | C-x x t e | C-o x t e | > > | C-x x t + b | C-o x t + b | > > You don't seem to be hearing that I want more > than just reserving one prefix key, `C-o'. I am using zile very often as Zile Is Lossy Emacs. Zile editor has C-o that does same what current Emacs does. It adopted C-o because of Emacs. Changing C-o in Emacs would break all the habits of using C-o in Emacs like editors and Emacs like keybindings in other software. To me that does not make sense. There is `mg' editor that is used in BSD derivates as Emacs replacement and it uses C-o to open-line `qemacs' uses C-o to open-line because it follows Emacs key bindings. `e3em' uses C-o to open-line because it follows Emacs key bindings. Changing C-o would break users' habits, and many other editors rely on some standard Emacs bindings. That introduces much confusion. I realize you did not use C-o often and I am surprised, I have observed few other people here also did not find use of C-o. How do you open move the current line and come into previous line to insert that one? That would involve something like C-a ENTER C-p if cursor is not at beginning of the line. If cursor is at beginning then ENTER C-p. With C-o I do: C-a C-o if cursors is in the middle of the line and C-o if cursor is at begin of the line. And I use C-o so often, many times daily. In vi editos I use "O". Without knowing that some people never use C-o I found it very important command, and while used in other editors I find it surprising that proposals come to remove C-o to something else. Removing C-o is to me same as removing C-x C-f Those empty keys or less known C-x bindings would be just fine. Jean ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-12 7:59 ` Jean Louis @ 2021-02-12 17:35 ` Drew Adams 0 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-12 17:35 UTC (permalink / raw) To: Jean Louis; +Cc: Gregory Heytings, emacs-devel@gnu.org > > > | C-x j | C-o j | > > > | C-x j = f | C-o j = f | > > > ... > > > > You don't seem to be hearing that I want _more_ > > than just reserving one prefix key, `C-o'. ... <long reply about why `C-o' shouldn't be changed> Why that reply to my message? The point of my message was simply that we should not reserve _only one key_ for 3rd party use. We should reserve more than one, and the keys to reserve, to start with, are those that are not yet bound. I am NOT the one who started all the posts about which keys already bound by default to reserve for 3rd-party use. _MY_ proposal was instead to start by reserving for 3rd-party use all keys currently _NOT_ bound by default. That's a completely different approach. It's Gregory who made a counter proposal to instead reserve _only one_ prefix key for that, and also changed to proposing, for that purpose, that Emacs give up some key _already bound_. And down the rabbit hole we went... ___ I did say, as a _parallel_ idea, that Emacs could also likely benefit from restructuring of existing default key bindings. I made the point that some keys bound by default to repeatable keys are not used for repeatable commands, and that their commands could usefully be made repeatable, or those keys could instead be given to other commands that are naturally repeatable. And I made the point (and emphasized it _over_ the point about repeatable commands) that some keys bound by default to commands that maybe aren't so useful overall could usefully be changed to prefix keys instead. And I made the point that a fair amount of useful refactoring could be done by moving some commands that are currently bound by default to bindings under prefix keys. But all of that parallel idea about possible changes to Emacs default key bindings - refactoring - is completely separate from the proposal I made about reserving keys for 3rd-party code. ___ My proposal to reserve all currently unbound keys for 3rd-party code is what I really argued for. Any discussion about changing existing key bindings can go on and on, contentiously, and it is not urgent. IMO it is more important to impose a moratorium _now_ on Emacs grabbing more and more unbound keys for its default bindings. And the discussion that's ensued from Gregory's counter proposal has made it all the more urgent to do what I proposed. There are suggestions from that bindings-changes discussion for Emacs to grab even _more_ unbound keys for default bindings. Unfortunately, Gregory's counter proposal took over, and there's (predictably) been a flurry of back & forth about this, that, or the other key as a candidate for repurposing. I specifically wanted to avoid that. (But yes, when discussion about this or that key ensued, I occasionally added my 2 cents about the key.) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-06 18:09 ` Drew Adams 2021-02-12 7:59 ` Jean Louis @ 2021-02-12 8:21 ` Alfred M. Szmidt 2021-02-12 9:09 ` Gregory Heytings ` (3 more replies) 1 sibling, 4 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-12 8:21 UTC (permalink / raw) To: Drew Adams; +Cc: gregory, emacs-devel You don't seem to be hearing that I want more than just reserving one prefix key, `C-o'. Most (All?) keyboards today have a Super key -- why not allocate that or parts of it to global third-party packages? This solves moving things around, and constantly breaking things for people. One could put up a similar scheme for reserving keys for users, and third party keys there as it is done for C-. The key is also easily rebindable to another position for those who so wish, one can put it on the Fn keys, or on Caps-Lock. Putting it under a seperate super-map would also allow userss to put it under some other key as well. There are far more solutions to this problem than just unbinding keys unconditionally for some unknown future case that nobody can figure out. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 8:21 ` Alfred M. Szmidt @ 2021-02-12 9:09 ` Gregory Heytings 2021-02-12 11:26 ` Eli Zaretskii 2021-02-12 15:11 ` Alfred M. Szmidt 2021-02-12 17:36 ` Drew Adams ` (2 subsequent siblings) 3 siblings, 2 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-12 9:09 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel > > Most (All?) keyboards today have a Super key -- why not allocate that or > parts of it to global third-party packages? > Because the super modifier cannot be used in a terminal or console? > > This solves moving things around, and constantly breaking things for > people. > Is it not a slight exaggeration to say that Emacs is "constantly breaking things"? > > There are far more solutions to this problem than just unbinding keys > unconditionally for some unknown future case that nobody can figure out. > It's not "for some unknown future case that nobody can figure out", it's for a recurring problem that is becoming more and more important. More and more users use Emacs, the extensible editor, with third-party extension libraries, and these these third-party extension libraries cannot create global key bindings. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 9:09 ` Gregory Heytings @ 2021-02-12 11:26 ` Eli Zaretskii 2021-02-12 15:11 ` Alfred M. Szmidt 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-12 11:26 UTC (permalink / raw) To: Gregory Heytings; +Cc: ams, emacs-devel > Date: Fri, 12 Feb 2021 09:09:27 +0000 > From: Gregory Heytings <gregory@heytings.org> > Cc: emacs-devel@gnu.org > > > This solves moving things around, and constantly breaking things for > > people. > > Is it not a slight exaggeration to say that Emacs is "constantly breaking > things"? Yes, but only slight. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 9:09 ` Gregory Heytings 2021-02-12 11:26 ` Eli Zaretskii @ 2021-02-12 15:11 ` Alfred M. Szmidt 2021-02-12 15:30 ` Eli Zaretskii 2021-02-12 16:56 ` Gregory Heytings 1 sibling, 2 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-12 15:11 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > Most (All?) keyboards today have a Super key -- why not allocate that or > parts of it to global third-party packages? Because the super modifier cannot be used in a terminal or console? That is simply not true. > This solves moving things around, and constantly breaking things for > people. Is it not a slight exaggeration to say that Emacs is "constantly breaking things"? Is it? The build was just broken just recently. > There are far more solutions to this problem than just unbinding keys > unconditionally for some unknown future case that nobody can figure out. It's not "for some unknown future case that nobody can figure out", it's for a recurring problem that is becoming more and more important. More and more users use Emacs, the extensible editor, with third-party extension libraries, and these these third-party extension libraries cannot create global key bindings. There is already a space where users (and what third party packages can recommend users to use) can bind their keys. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 15:11 ` Alfred M. Szmidt @ 2021-02-12 15:30 ` Eli Zaretskii 2021-02-12 16:56 ` Gregory Heytings 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-12 15:30 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: gregory, emacs-devel > From: "Alfred M. Szmidt" <ams@gnu.org> > Date: Fri, 12 Feb 2021 10:11:40 -0500 > Cc: emacs-devel@gnu.org > > > This solves moving things around, and constantly breaking things for > > people. > > Is it not a slight exaggeration to say that Emacs is "constantly breaking > things"? > > Is it? The build was just broken just recently. The risk of breaking things is an inherent part of any development. The master branch should not expected to be stable. People who track the master branch should expect the build to be broken, and should not treat such breakage as a reason to reprimand the Emacs developers. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 15:11 ` Alfred M. Szmidt 2021-02-12 15:30 ` Eli Zaretskii @ 2021-02-12 16:56 ` Gregory Heytings 2021-02-12 17:37 ` Drew Adams ` (2 more replies) 1 sibling, 3 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-12 16:56 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel >>> Most (All?) keyboards today have a Super key -- why not allocate that >>> or parts of it to global third-party packages? >> >> Because the super modifier cannot be used in a terminal or console? > > That is simply not true. > That's what I thought until today, but indeed I may be wrong. Could you please explain how it is possible to use the super modifier in a console? >>> This solves moving things around, and constantly breaking things for >>> people. >> >> Is it not a slight exaggeration to say that Emacs is "constantly >> breaking things"? > > Is it? The build was just broken just recently. > Of course a development version is expected to break things from time to time. If you want stability, use stable releases. And I'd say that even the development version is pretty stable. It breaks occasionally, yes, and when it does it's during a very short period of time. >>> There are far more solutions to this problem than just unbinding keys >>> unconditionally for some unknown future case that nobody can figure >>> out. >> >> It's not "for some unknown future case that nobody can figure out", >> it's for a recurring problem that is becoming more and more important. >> More and more users use Emacs, the extensible editor, with third-party >> extension libraries, and these these third-party extension libraries >> cannot create global key bindings. > > There is already a space where users (and what third party packages can > recommend users to use) can bind their keys. > Yes, there is a space in which users can bind their keys, and as a matter of fact users can bind all keys the way they want it. Yes, third party packages can recommend users to use this or that key for their commands, they can also recommend users to use keys that are not reserved for them, and as a matter of fact packages can also bind all keys the way they want it (that's more or less what evil-mode does), as nobody is forcing them to follow the key binding conventions. The proposal is only to create a key space in which third party packages could automatically create global key bindings, without conflicting with Emacs core (that is, without rebinding any key bound in vanilla Emacs) and without conflicting with users' personal settings. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-12 16:56 ` Gregory Heytings @ 2021-02-12 17:37 ` Drew Adams 2021-02-12 18:25 ` Gregory Heytings 2021-02-12 21:41 ` Super key in console? Jean Louis 2021-02-14 18:43 ` [External] : Re: Concern about new binding Alfred M. Szmidt 2 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-12 17:37 UTC (permalink / raw) To: Gregory Heytings, Alfred M. Szmidt; +Cc: emacs-devel@gnu.org > The proposal is only to create a key space in which > third party packages could automatically create global > key bindings, without conflicting with Emacs core (that > is, without rebinding any key bound in vanilla Emacs) > and without conflicting with users' personal settings. No, your proposal was not _only_ to do that. _My_ proposal was to do that, and to do it for keys that are not already bound by default - just reserve those for 3rd-party code. _Your_ proposal was to change some key that already has a default binding, and give it -- and ONLY it -- to 3rd-party libraries as a prefix key. ___ The _problem_ is indeed encroaching Emacs default key bindings narrowing the usable keyspace for 3rd-party code. The best _solution_, which requires _NO_ discussion of sacrificing this or that key already bound by default, is to declare a moratorium on Emacs grabbing any more _unbound_ keys by default (modulo possible important exceptions, which would invite discussion and then decision by maintainers). Unfortunately, by you tossing your counter-proposal into the ring, we've, quite predictably, gone down the rabbit hole of my-key vs your-key, this-key vs that-key. There's no reason, in order to reserve keys for 3rd-party use, to start by sacrificing _any_ keys from those bound by default. Not even one. Not this one. Not that one. Not one. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-12 17:37 ` Drew Adams @ 2021-02-12 18:25 ` Gregory Heytings 0 siblings, 0 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-12 18:25 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel@gnu.org >> The proposal is only to create a key space in which third party >> packages could automatically create global key bindings, without >> conflicting with Emacs core (that is, without rebinding any key bound >> in vanilla Emacs) and without conflicting with users' personal >> settings. > > No, your proposal was not _only_ to do that. > > _My_ proposal was to do that, and to do it for keys that are not already > bound by default - just reserve those for 3rd-party code. > ... and two maintainers replied to that proposal that they will never agree with it. Again, it would be better to take that as a postulate for further reflection. > > _Your_ proposal was to change some key that already has a default > binding, and give it -- and ONLY it -- to 3rd-party libraries as a > prefix key. > Yes, that's what "to create a key space" means. It's a compromise between "being free to reclaim any key at any time" and "being constrained to not use any key it doesn't yet use". IOW, it's a compromise between "keeping all keys" and "giving away all unbound keys". The compromise is to give away one or two keys, and to keep the other ones. Such a compromise would give as much freedom as possible to Emacs, as much freedom as possible to third-party libraries, without changing users' habits too much. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Super key in console? 2021-02-12 16:56 ` Gregory Heytings 2021-02-12 17:37 ` Drew Adams @ 2021-02-12 21:41 ` Jean Louis 2021-02-14 18:43 ` [External] : Re: Concern about new binding Alfred M. Szmidt 2 siblings, 0 replies; 294+ messages in thread From: Jean Louis @ 2021-02-12 21:41 UTC (permalink / raw) To: Gregory Heytings; +Cc: Alfred M. Szmidt, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-02-12 19:57]: > > > > > Most (All?) keyboards today have a Super key -- why not allocate > > > > that or parts of it to global third-party packages? > > > > > > Because the super modifier cannot be used in a terminal or console? > > > > That is simply not true. > > > > That's what I thought until today, but indeed I may be wrong. Could you > please explain how it is possible to use the super modifier in a > console? I know it can be used in Terminal under X with special settings of X keymap but I have not found good settings, if somebody does, let us know it here as least for X terminal emulators. Some references are here: https://www.emacswiki.org/emacs/MetaKeyProblems but do not really offer solution that I need. Here is reference how to make it work in Urxvt: https://www.reddit.com/r/emacs/comments/6i0k6y/super_key_maps_to_nothing_in_emacs_nw/ For `konsole' terminal emulator it works right away. That is great, but again graphical. Still good for remote work with Super key. For `xterm' this link does not work any more, and I would like to get xterm-extras.el https://www.emacswiki.org/emacs/XtermExtras It would be really good that Super works in console without X. Is there any way to make it work? Jean ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 16:56 ` Gregory Heytings 2021-02-12 17:37 ` Drew Adams 2021-02-12 21:41 ` Super key in console? Jean Louis @ 2021-02-14 18:43 ` Alfred M. Szmidt 2021-02-14 19:14 ` Gregory Heytings 2 siblings, 1 reply; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-14 18:43 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel >>> Most (All?) keyboards today have a Super key -- why not allocate that >>> or parts of it to global third-party packages? >> >> Because the super modifier cannot be used in a terminal or console? > > That is simply not true. That's what I thought until today, but indeed I may be wrong. Could you please explain how it is possible to use the super modifier in a console? Without any reconfigs, "C-x @ s x" for s-x (see the event-apply-FOO-modifier functions). On GNU/Linux systems you can rebind Super_L/R to a Fn key or some other such thing, and use it that way. I think you can check the loadkys and dumpkeys commands. The proposal is only to create a key space in which third party packages could automatically create global key bindings, without conflicting with Emacs core (that is, without rebinding any key bound in vanilla Emacs) and without conflicting with users' personal settings. There is no reason to free up M-o for that specific purpose, for example. Drew's moratorium suggestion is also a good solution, and does not remove functionality. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-14 18:43 ` [External] : Re: Concern about new binding Alfred M. Szmidt @ 2021-02-14 19:14 ` Gregory Heytings 2021-02-15 10:57 ` Alfred M. Szmidt 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-14 19:14 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel >> That's what I thought until today, but indeed I may be wrong. Could >> you please explain how it is possible to use the super modifier in a >> console? > > Without any reconfigs, "C-x @ s x" for s-x (see the > event-apply-FOO-modifier functions). > That's not "using the super modifier", that's "a trick to fake the use of the super modifier". > > On GNU/Linux systems you can rebind Super_L/R to a Fn key or some other > such thing, and use it that way. I think you can check the loadkys and > dumpkeys commands. > Of course, everything is possible with tricks that most users don't know and will never know. What is important is that it doesn't work out of the box. Emacs does not assume users have a super modifier, third-party libraries can't assume that either. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-14 19:14 ` Gregory Heytings @ 2021-02-15 10:57 ` Alfred M. Szmidt 2021-02-15 11:45 ` Gregory Heytings 2021-02-15 13:44 ` Stefan Monnier 0 siblings, 2 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-15 10:57 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel >> That's what I thought until today, but indeed I may be wrong. Could >> you please explain how it is possible to use the super modifier in a >> console? > > Without any reconfigs, "C-x @ s x" for s-x (see the > event-apply-FOO-modifier functions). That's not "using the super modifier", that's "a trick to fake the use of the super modifier". The claim here was that it cannot be used, it can and trivially so and works out of the box. The super modifier (and hyper, etc) are fully supported by Emacs. The "trick" is exactly the same as for Meta which also has issues on consoles (on OpenBSD you need to explicitly fix it for example, same on some GNU/Linux systems). There is also another key space that is already used by Emacs, and that is Alt. E.g, A-}, A-a < etc. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-15 10:57 ` Alfred M. Szmidt @ 2021-02-15 11:45 ` Gregory Heytings 2021-02-15 16:19 ` Alfred M. Szmidt 2021-02-15 13:44 ` Stefan Monnier 1 sibling, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-15 11:45 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel >>>>>> Most (All?) keyboards today have a Super key -- why not allocate >>>>>> that or parts of it to global third-party packages? >>>>> >>>>> Because the super modifier cannot be used in a terminal or console? >>>> >>>> That's what I thought until today, but indeed I may be wrong. Could >>>> you please explain how it is possible to use the super modifier in a >>>> console? >>> >>> Without any reconfigs, "C-x @ s x" for s-x (see the >>> event-apply-FOO-modifier functions). >> >> That's not "using the super modifier", that's "a trick to fake the use >> of the super modifier". > > The claim here was that it cannot be used, it can and trivially so and > works out of the box. The super modifier (and hyper, etc) are fully > supported by Emacs. > It seems that you forgot the context of the discussion. I was replying to your suggestion (see above) to "allocate the super key to third party packages". Typing "C-x @ s" is not "using the super key", it's a last resort possibility to fake the use of a super modifier. When you want to call goto-line, I'd bet you type "M-g M-g", not "C-x @ m g C-x @ m g". ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-15 11:45 ` Gregory Heytings @ 2021-02-15 16:19 ` Alfred M. Szmidt 0 siblings, 0 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-15 16:19 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel It seems that you forgot the context of the discussion. I was replying to your suggestion (see above) to "allocate the super key to third party packages". Typing "C-x @ s" is not "using the super key", it's a last resort possibility to fake the use of a super modifier. When you want to call goto-line, I'd bet you type "M-g M-g", not "C-x @ m g C-x @ m g". And the solution to removing M-o M-s was to write "M-x center-line" or rebinding the key. So you could just type M-x goto-line if it doesn't work, how come that is no longer a solution here? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-15 10:57 ` Alfred M. Szmidt 2021-02-15 11:45 ` Gregory Heytings @ 2021-02-15 13:44 ` Stefan Monnier 1 sibling, 0 replies; 294+ messages in thread From: Stefan Monnier @ 2021-02-15 13:44 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: Gregory Heytings, emacs-devel > > Without any reconfigs, "C-x @ s x" for s-x (see the > > event-apply-FOO-modifier functions). > That's not "using the super modifier", that's "a trick to fake the use of > the super modifier". > The claim here was that it cannot be used, it can and trivially so and > works out of the box. Last I checked the `C-x @` thingies for modifiers only work partly: you can't combine them as in `C-x @ h C-x @ s x` to do `H-s-x`. > The super modifier (and hyper, etc) are fully supported by Emacs. Definitely, and AFAIK it is in fairly wide use, so we'd notice quickly if something broke it. Stefan ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-12 8:21 ` Alfred M. Szmidt 2021-02-12 9:09 ` Gregory Heytings @ 2021-02-12 17:36 ` Drew Adams 2021-02-14 18:43 ` Alfred M. Szmidt 2021-02-13 1:20 ` Karthik Chikmagalur 2021-02-13 8:22 ` Philip Kaludercic 3 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-12 17:36 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: gregory@heytings.org, emacs-devel@gnu.org > You don't seem to be hearing that I want more > than just reserving one prefix key, `C-o'. > > There are far more solutions to this problem than > just unbinding keys unconditionally for some unknown > future case that nobody can figure out. I never suggested unbinding any keys, to reserve them for 3rd-party code. I proposed that we put in place a moratorium on Emacs binding any more unbound keys, and that keys that currently are _not_ bound by default be reserved for 3rd-party code. The idea is that Emacs stop grabbing virgin territory for new default key bindings. This proposal I made didn't call for unbinding any keys. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 17:36 ` Drew Adams @ 2021-02-14 18:43 ` Alfred M. Szmidt 0 siblings, 0 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-14 18:43 UTC (permalink / raw) To: Drew Adams; +Cc: gregory, emacs-devel I never suggested unbinding any keys, to reserve them for 3rd-party code. I proposed that we put in place a moratorium on Emacs binding any more unbound keys, and that keys that currently are _not_ bound by default be reserved for 3rd-party code. The idea is that Emacs stop grabbing virgin territory for new default key bindings. This proposal I made didn't call for unbinding any keys. Drew's proposal is also a good one. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 8:21 ` Alfred M. Szmidt 2021-02-12 9:09 ` Gregory Heytings 2021-02-12 17:36 ` Drew Adams @ 2021-02-13 1:20 ` Karthik Chikmagalur 2021-02-13 10:55 ` Jean Louis 2021-02-13 8:22 ` Philip Kaludercic 3 siblings, 1 reply; 294+ messages in thread From: Karthik Chikmagalur @ 2021-02-13 1:20 UTC (permalink / raw) To: Alfred M. Szmidt, Drew Adams; +Cc: gregory, emacs-devel "Alfred M. Szmidt" <ams@gnu.org> writes: > Most (All?) keyboards today have a Super key -- why not allocate that > or parts of it to global third-party packages? The super key is used by desktop environments, window managers or by Windows for system level functions. For example, super+p brings up the display/projector configuration menu on KDE and in Windows. super+l locks the screen in windows. Pressing super brings up an activities menu in Gnome. These are often not easy to rebind at the system level (without significant tweaking) and Emacs cannot use them easily. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-13 1:20 ` Karthik Chikmagalur @ 2021-02-13 10:55 ` Jean Louis 0 siblings, 0 replies; 294+ messages in thread From: Jean Louis @ 2021-02-13 10:55 UTC (permalink / raw) To: Karthik Chikmagalur; +Cc: Alfred M. Szmidt, gregory, Drew Adams, emacs-devel * Karthik Chikmagalur <karthikchikmagalur@gmail.com> [2021-02-13 04:52]: > "Alfred M. Szmidt" <ams@gnu.org> writes: > > > Most (All?) keyboards today have a Super key -- why not allocate that > > or parts of it to global third-party packages? > > The super key is used by desktop environments, window managers or by > Windows for system level functions. For example, super+p brings up the > display/projector configuration menu on KDE and in Windows. super+l > locks the screen in windows. Pressing super brings up an activities menu > in Gnome. These are often not easy to rebind at the system level > (without significant tweaking) and Emacs cannot use them easily. That is not a reason to reject as that assumes generalized desktop environments. They also use Control and Alternative in combinations, so that would not be a reason to reject using Super in Emacs. Good example is Alt-TAB that is often overwritten or used by Window Manager but it has function in Emacs (don't stone me if I do not remember which one), maybe completion, I do not remember. You use those environments, I don't. I am using simple Window managers, it works well for me. Reservation of keys is not absolute reservation. But in general I would say that there is no need for any reservations as it will not solve problems of collisions. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 8:21 ` Alfred M. Szmidt ` (2 preceding siblings ...) 2021-02-13 1:20 ` Karthik Chikmagalur @ 2021-02-13 8:22 ` Philip Kaludercic 3 siblings, 0 replies; 294+ messages in thread From: Philip Kaludercic @ 2021-02-13 8:22 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: gregory, Drew Adams, emacs-devel [-- Attachment #1: Type: text/plain, Size: 415 bytes --] "Alfred M. Szmidt" <ams@gnu.org> writes: > You don't seem to be hearing that I want more > than just reserving one prefix key, `C-o'. > > Most (All?) keyboards today have a Super key -- why not allocate that > or parts of it to global third-party packages? I can imagine that window managers shadow that key for their own functionality -- this danger exists for all super keys. -- Philip K. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 658 bytes --] ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 9:21 ` Gregory Heytings ` (2 preceding siblings ...) 2021-02-05 18:26 ` [External] : " Drew Adams @ 2021-02-07 5:43 ` Richard Stallman 2021-02-12 8:35 ` Jean Louis 4 siblings, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-07 5:43 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > It seems to me that the root problem of this thread, and similar ones in > the past months, is the lack of a convention for external packages in > `(elisp) Key Binding Conventions'. There is a convention for users, there > are conventions for major and minor modes, but there is no convention for > external packages such as Magit, Drew's packages, and so forth. This is a good point. Maybe we should come up with one. It may be difficult, though, because good decisions would depend on how important each package is. If a package becomes very popular, and we include it in Emacs, we would want to give it a binding that doesn't conflict with anything else. That would mean changing its binding. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-05 9:21 ` Gregory Heytings ` (3 preceding siblings ...) 2021-02-07 5:43 ` Richard Stallman @ 2021-02-12 8:35 ` Jean Louis 4 siblings, 0 replies; 294+ messages in thread From: Jean Louis @ 2021-02-12 8:35 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-02-05 12:23]: > > It seems to me that the root problem of this thread, and similar ones in the > past months, is the lack of a convention for external packages in `(elisp) > Key Binding Conventions'. There is a convention for users, there are > conventions for major and minor modes, but there is no convention for > external packages such as Magit, Drew's packages, and so forth. > Consequently, the only solution for such packages is to use the currently > empty slots, with a sword of Damocles hanging over them: these empty slots > could at any time be reclaimed by Emacs. I too can sympathize with Drew's > (and other's) frustration when this happens. I am using Super key, the one between Ctrl and Alt. If Emacs on console would found automatic way to recognize that key in the same way how it recognizes it under X or graphical environment then maybe it could be one of solutions for third party packages. > This proposal has two forms: a weak and a strong one. The weak one would > only reserve the control key, the strong one would also reserve the meta and > control-meta keys. Meta or Alternative is just fine, it is equivalent to Control key, just one key. Both Control and Alternative (Meta) are harder to type and really not convenient for third party packages. > The candidate keys for that proposal are "z", "t" and "o". C-z, C-t, C-o are old commands. C-t works in bash the same, why then change the default Emacs binding that has been reflected into many other Emacs-like editors? Those proposals come very surprising to me. > IOW, one could for example reserve either "C-z" (weak version), or "C-z" and > "M-z" and "C-M-z" (strong version), for external packages. M-z is just fine to replace as it is not implemented in other Emacs-like editors and is not common, it is very nice and would disturb people using the zap to char. Somebody's habits will be sacrificed anyway. > This is a one-time change, which I'm sure will not be an easy one > for everyone, but is a long-term solution that will avoid such > repeated wars. As long as it is not C-z, C-t, C-o. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 22:16 ` Ergus 2021-02-04 0:41 ` Stefan Kangas @ 2021-02-12 8:19 ` Jean Louis 2021-02-12 11:19 ` Eli Zaretskii 1 sibling, 1 reply; 294+ messages in thread From: Jean Louis @ 2021-02-12 8:19 UTC (permalink / raw) To: Ergus; +Cc: Eli Zaretskii, emacs-devel, rms, drew.adams, kevin.legouguec * Ergus <spacibba@aol.com> [2021-02-04 01:38]: > I think Gregory already proposed the best approach, but now people are > arguing about Magit, projectile or philosophical questions. > > IMHO, I would prefer that after a deadline you make a decision (even if > it is the opposite to what I expect) and close it. Otherwise it becomes > a never ending collections of emails with no final results... I can understand that you had a purpose of discussion and such is probably reflected in the subject. Your focus is or was on the purpose. But then many people participate introduced various useful details. That makes the discussion informative, thought provoking and educational. I learn about other people's habits in using Emacs and their thoughts in developments. References to manuals then help me make better decisions on key bindings in packages I am developing. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-12 8:19 ` [External] : " Jean Louis @ 2021-02-12 11:19 ` Eli Zaretskii 0 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-12 11:19 UTC (permalink / raw) To: Jean Louis; +Cc: spacibba, emacs-devel, rms, drew.adams, kevin.legouguec > Date: Fri, 12 Feb 2021 11:19:45 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org, rms@gnu.org, > drew.adams@oracle.com, kevin.legouguec@gmail.com > > But then many people participate introduced various useful > details. That makes the discussion informative, thought provoking and > educational. I learn about other people's habits in using Emacs and > their thoughts in developments. References to manuals then help me > make better decisions on key bindings in packages I am developing. That kind of discussion is better taken elsewhere: help-gnu-emacs, for example. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 18:14 ` Eli Zaretskii 2021-02-03 22:16 ` Ergus @ 2021-02-12 8:05 ` Jean Louis 1 sibling, 0 replies; 294+ messages in thread From: Jean Louis @ 2021-02-12 8:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Ergus, emacs-devel, rms, drew.adams, kevin.legouguec * Eli Zaretskii <eliz@gnu.org> [2021-02-03 21:15]: > > Date: Wed, 3 Feb 2021 19:01:42 +0100 > > From: Ergus <spacibba@aol.com> > > Cc: Drew Adams <drew.adams@oracle.com>, emacs-devel@gnu.org, > > kevin.legouguec@gmail.com, rms@gnu.org > > > > > > > >> IMO, the binding should be removed until/unless > > >> the discussion here leads to a decision to add > > >> it back again. > > > > > >Please wait till the discussion comes to its conclusion. > > > > In my short experience here; when discussions start like this; then > > there is never a conclusion. They just slowly stop and no change is made > > at the end. I someone insists after some time, the again the same... > > > > In 3 years I have more than 30 examples... > > I don't think I understand what you are saying. You started this > discussion. If you don't like how discussions happen here, why did > you start it? https://www.gnu.org/fun/jokes/users-lightbulb.html ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 16:12 ` [External] : " Drew Adams 2021-02-03 17:13 ` Eli Zaretskii @ 2021-02-04 7:39 ` Joost Kremers 1 sibling, 0 replies; 294+ messages in thread From: Joost Kremers @ 2021-02-04 7:39 UTC (permalink / raw) To: emacs-devel On Wed, Feb 03 2021, Drew Adams wrote: > That's the problem: the discussion of a narrow > feature request and possible solutions turned > into a wider discussion. _And_ someone there > decided to change Emacs to add a global key > for reverting buffers. As an Emacs maintainer, isn't that their prerogative? -- Joost Kremers Life has its moments ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Concern about new binding. 2021-02-02 13:49 ` Concern about new binding Ergus 2021-02-02 15:21 ` Kévin Le Gouguec @ 2021-02-02 16:28 ` Drew Adams 2021-02-02 16:50 ` Karl Fogel ` (2 subsequent siblings) 4 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-02 16:28 UTC (permalink / raw) To: Ergus, emacs-devel@gnu.org [-- Attachment #1: Type: text/plain, Size: 1524 bytes --] > In a recent commit I see that the C-x g binding was taken for > revert-buffer. > > I suppose this should have been discussed previously, unless I don't > find the thread... but I have some concerns about this. > > 1) In general `C-x g` is used by magit; I know this is not a priority > (cause magit is an external package), but magit is a very popular > package. > > 2) In some threads before we have discussed that relative short > combinations must be reserved to maps in order to economize them... > > 3) In spite of revert-buffer is a very useful command it is useless in > many conditions like when auto-revert-mode is enable... so maybe it > makes sense to bind it to something longer (ex: C-x g r)?? > > There are more commands that could be set in a map inside C-x g IMHO: > toggle-read-only revert-buffer-with-fine-grain something to > enable/disable font-lock etc > > This way instead of limiting; could open a big spot to set useful > commands. I understand that longer commands are harder to discover, but > hopefully we could have which-key in the next release? > > I hope I am writing this soon enough that the author could consider > revert this change maybe with something more "general" does it makes > sense?? See attached mails, and the thread for bug #46151. I end that second mail saying this: All proposals to sacrifice keys to default bindings should really be discussed on emacs-devel. The first mail reiterates the reasons I oppose this binding. [-- Attachment #2: Type: message/rfc822, Size: 16089 bytes --] From: Drew Adams <drew.adams@oracle.com> To: Lars Ingebrigtsen <larsi@gnus.org>, Sean Whitton <spwhitton@spwhitton.name> Cc: "46151@debbugs.gnu.org" <46151@debbugs.gnu.org> Subject: bug#46151: [External] : bug#46151: 28.0.50; Set revert-buffer-function in shell command output buffers Date: Mon, 1 Feb 2021 16:14:13 +0000 Message-ID: <SA2PR10MB447470DA936B9CA0B2C8B9FDF3B69@SA2PR10MB4474.namprd10.prod.outlook.com> > I think a global `revert-buffer' binding is the way to go. How to > reload a file is something that comes up all the time, so I think it is > high time it got bound. I disagree, for reasons given before: 1. Anyone who wants it can bind it. (I do.) 2. It has no meaning for many modes. By its very nature it is essentially mode-specific. 3. Modes where it is useful typically already bind it. And they bind it to a key that makes sense for that particular mode. You just need to use `C-h m' to find out what the key is. 4. Given #3, if you add a global binding for it then there's not much point in those mode-specific bindings. 5. Emacs has been fine for 35+ years without any global binding for it. The "Founders" knew what they were doing in this regard. (Perhaps they were thinking of some of this list.) 6. Emacs should impose a moratorium on itself NOW, to stop binding keys by default. Just say NO. Seriously. The few keys that still have no default global bindings should be left as is, in general - left for users and 3rd-party code. 7. IF many users start using some binding over a period of years THEN Emacs can consider giving it a default binding. Don't be prematurely "optimizing" UI in this way for people when there has been no popular request for it. 8. YAGNI. One opinion. [-- Attachment #3: Type: message/rfc822, Size: 15544 bytes --] From: Drew Adams <drew.adams@oracle.com> To: Sean Whitton <spwhitton@spwhitton.name>, Lars Ingebrigtsen <larsi@gnus.org> Cc: "46151@debbugs.gnu.org" <46151@debbugs.gnu.org> Subject: bug#46151: [External] : bug#46151: 28.0.50; Set revert-buffer-function in shell command output buffers Date: Mon, 1 Feb 2021 19:43:11 +0000 Message-ID: <SA2PR10MB447405B60C67BB0746331779F3B69@SA2PR10MB4474.namprd10.prod.outlook.com> > > I think a global `revert-buffer' binding is the way to go. How to > > reload a file is something that comes up all the time, so I think it > > is high time it got bound. > > Okay, here is a patch. Please don't do this. Don't remove `C-x g' from the little remaining virgin (non-default) key territory. It is not "high time" to bind this or any other key by default. It's high time to _desist_ from having default Emacs taking over more territory. It doesn't need it, and it shouldn't take it. 35 years with no global binding for `revert-buffer'. No problem - thousands of users and hackers. But now, from one user request Lars decides it's "high time"... No need. All proposals to sacrifice keys to default bindings should really be discussed on emacs-devel. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 13:49 ` Concern about new binding Ergus 2021-02-02 15:21 ` Kévin Le Gouguec 2021-02-02 16:28 ` [External] : " Drew Adams @ 2021-02-02 16:50 ` Karl Fogel 2021-02-02 17:33 ` Invoking Magit (was: Concern about new binding) Stefan Monnier 2021-02-02 17:45 ` Concern about new binding Thibaut Verron 2021-02-02 22:10 ` Gregory Heytings 2021-02-03 5:52 ` Richard Stallman 4 siblings, 2 replies; 294+ messages in thread From: Karl Fogel @ 2021-02-02 16:50 UTC (permalink / raw) To: Ergus; +Cc: emacs-devel On 02 Feb 2021, Ergus wrote: >1) In general `C-x g` is used by magit; I know this is not a >priority (cause magit is an external package), but magit is a >very popular package. While Magit is indeed very popular and valuable, shouldn't it still adhere to convention and avoid binding things in the `C-x' space? That's really a point to be made on the Magit development mailing list, not here, but what I'm saying here is that Emacs shouldn't make special efforts to avoid interfering with package keybindings that violate Emacs's conventions anyway. Magit should instead suggest `C-c g' as an entry point for `magit-status', though a user can bind it however they want of course. I doubt there are any Magit users who would be daunted by the need to set up a keybinding for Magit's entry point. Best regards, -Karl ^ permalink raw reply [flat|nested] 294+ messages in thread
* Invoking Magit (was: Concern about new binding) 2021-02-02 16:50 ` Karl Fogel @ 2021-02-02 17:33 ` Stefan Monnier 2021-02-02 18:29 ` Invoking Magit Karl Fogel 2021-02-02 17:45 ` Concern about new binding Thibaut Verron 1 sibling, 1 reply; 294+ messages in thread From: Stefan Monnier @ 2021-02-02 17:33 UTC (permalink / raw) To: Karl Fogel; +Cc: Ergus, emacs-devel > Magit should instead suggest `C-c g' as an entry point for > `magit-status', though a user can bind it however they want of course. > I doubt there are any Magit users who would be daunted by the need to > set up a keybinding for Magit's entry point. I think it'd make more sense to use a keybinding under the `C-x v` prefix. Another option would be to hijack `find-file` like PCL-CVS did, i.e. make it so `C-x C-f .../.git` opens up Magit. Stefan ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Invoking Magit 2021-02-02 17:33 ` Invoking Magit (was: Concern about new binding) Stefan Monnier @ 2021-02-02 18:29 ` Karl Fogel 2021-02-02 19:59 ` Stefan Monnier 0 siblings, 1 reply; 294+ messages in thread From: Karl Fogel @ 2021-02-02 18:29 UTC (permalink / raw) To: Stefan Monnier; +Cc: Ergus, emacs-devel On 02 Feb 2021, Stefan Monnier wrote: >> Magit should instead suggest `C-c g' as an entry point for >> `magit-status', though a user can bind it however they want of >> course. I doubt there are any Magit users who would be daunted >> by the need to set up a keybinding for Magit's entry point. > I think it'd make more sense to use a keybinding under the `C-x >v` prefix. Well, sure, if Emacs wants to deliberately give some keybinding space to a popular 3rd-party package like Magit, that's fine (personally I think I'd be in favor in this case, given Magit's popularity). But Emacs makes that decision, not Magit. In other words, the crucial question is: who exactly is the subject of the verb "use" in your last sentence above? Is it Emacs, or the user? Emacs already has conventions [1] about keyspaces reserved for users versus those reserved for packages (well, modes, and this entry point to Magit is not exactly a mode). According to those conventions: * `C-c LETTER' is for users to do with as they like -- neither Emacs nor third-party packages should ever bind anything here. * `C-c C-LETTER' and `C-c DIGIT' and `C-c {}<>:;' are all reserved for major modes. In this case it doesn't matter whether the mode ships with GNU Emacs or is a 3rd-party mode, since only one major mode is active at a given time. If a user has chosen the mode, then they accept that part of the keybinding space (sure, they might customize it further, but that's up to them -- they understand that they may overwrite default bindings of the mode when they do that). * `C-c OTHER_STUFF' is for minor modes; I'll skip the details here. So Emacs is free to reserve space under `C-x v' for Magit entry points if it wants to. That would be an unusual decision, but there's no reason not to consider it. However, when you wrote this... >I think it'd make more sense to use a keybinding under the `C-x >v` prefix. ...I couldn't tell whether you meant it would make more sense for *users* to do that (i.e., by their choice), or for *Emacs* to do that (i.e., we reserve that slot for Magit). IMHO we shouldn't recommend the former, because we already recommend to users that `C-c LETTER' is where they should do such custom bindings, and we should encourage use of that convention. But if you meant the latter, then that's a different discussion and one worth having. >Another option would be to hijack `find-file` like PCL-CVS did, >i.e. make it so `C-x C-f .../.git` opens up Magit. (Oh my gosh, it's been *years* since I used PCL-CVS... you are bringing back memories... :-) ) I hope we wouldn't do that here. There are many reasons why someone might open up a .git directory in Dired Mode (I do it all the time) by doing `C-x C-f .../.git'. Best regards, -Karl [1] https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Invoking Magit 2021-02-02 18:29 ` Invoking Magit Karl Fogel @ 2021-02-02 19:59 ` Stefan Monnier 2021-02-02 22:49 ` Karl Fogel 0 siblings, 1 reply; 294+ messages in thread From: Stefan Monnier @ 2021-02-02 19:59 UTC (permalink / raw) To: Karl Fogel; +Cc: Ergus, emacs-devel > * `C-c LETTER' is for users to do with as they like -- neither Emacs > nor third-party packages should ever bind anything here. > > * `C-c C-LETTER' and `C-c DIGIT' and `C-c {}<>:;' are all reserved for > major modes. In this case it doesn't matter whether the mode ships > with GNU Emacs or is a 3rd-party mode, since only one major mode is > active at a given time. If a user has chosen the mode, then they > accept that part of the keybinding space (sure, they might customize > it further, but that's up to them -- they understand that they may > overwrite default bindings of the mode when they do that). > > * `C-c OTHER_STUFF' is for minor modes; I'll skip the details here. Those are for use *within* the major/minor mode. The keybinding under discussion is a global one to make it easier to enter Magit. It doesn't have much choice but to collide with something :-( But sometimes the better answer is not to use a keybinding at all. >> I think it'd make more sense to use a keybinding under the `C-x v` prefix. > ...I couldn't tell whether you meant it would make more sense for *users* to > do that (i.e., by their choice), or for *Emacs* to do that (i.e., we > reserve that slot for Magit). Neither/both. I meant for Magit to do that. >> Another option would be to hijack `find-file` like PCL-CVS did, i.e. make >> it so `C-x C-f .../.git` opens up Magit. > (Oh my gosh, it's been *years* since I used PCL-CVS... you are bringing back > memories... :-) ) > I hope we wouldn't do that here. There are many reasons why someone might > open up a .git directory in Dired Mode (I do it all the time) by doing `C-x > C-f .../.git'. I've never been super happy with that trick in PCL-CVS either, but in practice it worked great, IME. Of course, you sometimes do want to look at the CVS/.git/younameit dir or file, but that's what the C-u prefix was for. I do feel that Emacs would gain by developing some way to specify interactively *how* a given file should be viewed. In most cases there's only one reasonable choice, admittedly, but I find more and more cases where this is not so (e.g. ps-as-image vs ps-as-text, djvu-with-djvu-mode vs djvu-with-doc-view, odt-with-doc-view vs odt-as-zip-archive, html-as-text vs html-via-shr, ...). Stefan ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Invoking Magit 2021-02-02 19:59 ` Stefan Monnier @ 2021-02-02 22:49 ` Karl Fogel 0 siblings, 0 replies; 294+ messages in thread From: Karl Fogel @ 2021-02-02 22:49 UTC (permalink / raw) To: Stefan Monnier; +Cc: Ergus, emacs-devel On 02 Feb 2021, Stefan Monnier wrote: >Those are for use *within* the major/minor mode. The keybinding >under discussion is a global one to make it easier to enter >Magit. It doesn't have much choice but to collide with something >:-( Yes, I know? (Sorry; I think you maybe thought I was saying something I wasn't saying.) >>> I think it'd make more sense to use a keybinding under the >>> `C-x v` prefix. >> ...I couldn't tell whether you meant it would make more sense >> for *users* to >> do that (i.e., by their choice), or for *Emacs* to do that >> (i.e., we >> reserve that slot for Magit). > Neither/both. I meant for Magit to do that. What I'm proposing is cooperation between Emacs and popular independent 3rd-party packages: Emacs reserves certain bindings for a given package, so that when the package maintainers use those bindings, they know it's safe. Emacs would maintain a registry so it's clear to everyone what's going on. Let me put it this way: If Magit were shipped as part of Emacs, there would be no question in about what to do, right? Emacs would choose keybindings for the Magit entry points, the same way Emacs chooses keybindings for anything else. All I'm saying is, the fact that Magit is not shipped with Emacs is largely irrelevant here. What matters is its popularity, not its provenance. Emacs can still reserve keybindings for it, and the fact that the package is supplied from elsewhere is fine. (What those bindings would do when the package isn't loaded is simply display information about where to get the package in questions.) Best regards, -Karl ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 16:50 ` Karl Fogel 2021-02-02 17:33 ` Invoking Magit (was: Concern about new binding) Stefan Monnier @ 2021-02-02 17:45 ` Thibaut Verron 2021-02-02 18:04 ` Sean Whitton ` (3 more replies) 1 sibling, 4 replies; 294+ messages in thread From: Thibaut Verron @ 2021-02-02 17:45 UTC (permalink / raw) To: Karl Fogel; +Cc: Ergus, emacs-devel 2021-02-02 17:50 UTC+01:00, Karl Fogel <kfogel@red-bean.com>: > On 02 Feb 2021, Ergus wrote: >>1) In general `C-x g` is used by magit; I know this is not a >>priority (cause magit is an external package), but magit is a >>very popular package. > > While Magit is indeed very popular and valuable, shouldn't it > still adhere to convention and avoid binding things in the `C-x' > space? > > That's really a point to be made on the Magit development mailing > list, not here, but what I'm saying here is that Emacs shouldn't > make special efforts to avoid interfering with package keybindings > that violate Emacs's conventions anyway. > > Magit should instead suggest `C-c g' as an entry point for > `magit-status', though a user can bind it however they want of course. > I doubt there are any Magit users who would be daunted by the need to > set up a keybinding for Magit's entry point. To be clear, Magit itself does not bind anything by default. It suggests "C-x g" as a binding, and I see now that it also offers an option to enable that binding for the user. It is not the only high-level package using "C-x letter" as an entry point, another example coming to mind is projectile ("C-x p"). As for the conventions, as far as I can tell, they explicitly require to steer clear of "C-c letter", but they don't have anything about "C-x letter": https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html Thibaut ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 17:45 ` Concern about new binding Thibaut Verron @ 2021-02-02 18:04 ` Sean Whitton 2021-02-02 18:52 ` Karl Fogel 2021-02-02 18:51 ` Karl Fogel ` (2 subsequent siblings) 3 siblings, 1 reply; 294+ messages in thread From: Sean Whitton @ 2021-02-02 18:04 UTC (permalink / raw) To: thibaut.verron, Karl Fogel; +Cc: Ergus, emacs-devel Hello, On Tue 02 Feb 2021 at 06:45PM +01, Thibaut Verron wrote: > To be clear, Magit itself does not bind anything by default. It > suggests "C-x g" as a binding, and I see now that it also offers an > option to enable that binding for the user. Actually, it's on by default in current git master and in the version of magit in Debian. > It is not the only high-level package using "C-x letter" as an entry > point, another example coming to mind is projectile ("C-x p"). No, projectile was C-c p, but it eventually removed it and just suggested in its docs that users bind it themselves. I think that approach would be sensible for magit too. > As for the conventions, as far as I can tell, they explicitly require > to steer clear of "C-c letter", but they don't have anything about > "C-x letter": > https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html AFAICT, there's an implicit additional convention that major and minor modes stick to the sequences that are reserved for them. Given this, ISTM that as magit chose to bind C-x g, there was inevitably going to be a clash like this sooner or later. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 18:04 ` Sean Whitton @ 2021-02-02 18:52 ` Karl Fogel 0 siblings, 0 replies; 294+ messages in thread From: Karl Fogel @ 2021-02-02 18:52 UTC (permalink / raw) To: Sean Whitton; +Cc: Ergus, thibaut.verron, emacs-devel On 02 Feb 2021, Sean Whitton wrote: >No, projectile was C-c p, but it eventually removed it and just >suggested in its docs that users bind it themselves. I think >that approach would be sensible for magit too. +1, but apparently the Magit devs considered that possibility and rejected it :-/. >AFAICT, there's an implicit additional convention that major and >minor modes stick to the sequences that are reserved for them. >Given this, ISTM that as magit chose to bind C-x g, there was >inevitably going to be a clash like this sooner or later. Agreed. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 17:45 ` Concern about new binding Thibaut Verron 2021-02-02 18:04 ` Sean Whitton @ 2021-02-02 18:51 ` Karl Fogel 2021-02-02 20:02 ` Thibaut Verron 2021-02-02 18:56 ` Basil L. Contovounesios 2021-02-05 5:46 ` Richard Stallman 3 siblings, 1 reply; 294+ messages in thread From: Karl Fogel @ 2021-02-02 18:51 UTC (permalink / raw) To: Thibaut Verron; +Cc: Ergus, emacs-devel On 02 Feb 2021, Thibaut Verron wrote: >2021-02-02 17:50 UTC+01:00, Karl Fogel <kfogel@red-bean.com>: >> On 02 Feb 2021, Ergus wrote: >>>1) In general `C-x g` is used by magit; I know this is not a >>>priority (cause magit is an external package), but magit is a >>>very popular package. >> >> While Magit is indeed very popular and valuable, shouldn't it >> still adhere to convention and avoid binding things in the >> `C-x' space? >> >> That's really a point to be made on the Magit development >> mailing list, not here, but what I'm saying here is that Emacs >> shouldn't make special efforts to avoid interfering with >> package keybindings that violate Emacs's conventions anyway. >> >> Magit should instead suggest `C-c g' as an entry point for >> `magit-status', though a user can bind it however they want of >> course. I doubt there are any Magit users who would be daunted >> by the need to set up a keybinding for Magit's entry point. > To be clear, Magit itself does not bind anything by default. It >suggests "C-x g" as a binding, and I see now that it also offers >an option to enable that binding for the user. Actually, Magit does bind `C-x g' by default. There is a defcustom, `magit-define-global-key-bindings', and it defaults to `t' in magit.el since October 2020 -- see [1] for the history of that decision. When that variable is true, then that keybinding (and two others) are made automatically by Magit at load time. >It is not the only high-level package using "C-x letter" as an >entry point, another example coming to mind is projectile ("C-x >p"). As for the conventions, as far as I can tell, they >explicitly require to steer clear of "C-c letter", but they don't >have anything about "C-x letter": >https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html Uh, I mean... sure, okay, those guidelines don't say anything explicit about not binding `C-x LETTER' in your 3rd-party package, but does that kind of guidance really have to be made explicit? This is Emacs: everyone who develops for Emacs knows that the `C-x' map is crowded and used heavily by Emacs. If everyone's packages started binding things under there, they'd simply collide with *each other* all the time, as well as (eventually) with Emacs when Emacs decides to add a new `C-x' binding, as happened here. I mean, the guidelines don't say to avoid rebinding the letter `a' either, but people know not to do that :-). Magit should explicitly advise users to use `C-c LETTER' for Magit's entry points. The user-reserved space is there under `C-c LETTER' precisely so users can bind entry points to their favorite functionality. In other words, while Magit itself should "steer clear" of binding things under either `C-x' or `C-c LETTER', Magit is perfectly free to make recommendations. Right now, Magit's three main entry points are: C-x g `magit-status' C-x M-g `magit-dispatch' C-c M-g `magit-file-dispatch' And the doc string for `magit-define-global-key-bindings' even says the following: > We recommend that you bind "C-c g" instead of "C-c M-g" to > `magit-file-dispatch'. The former is a much better binding > but the "C-c <letter>" namespace is strictly reserved for > users; preventing Magit from using it by default. Now, clearly Magit's developers knew about the convention and decided to clobber the Emacs-reserved space anyway. I totally understand why they did so, even though I disagree with the decision. One solution to this would be for Emacs to reserve some keyspace for those three Magit entry points explicitly, outside the `C-c WHATEVER' conventions. Maybe it would be under `C-x', or maybe somewhere else. Magit is so popular that this might make sense -- essentially, bring Magit back into keybinding compliance by creating a reserved space for it. I'm not sure why Magit doesn't ship with Emacs; I presume it has something to do with copyright assignment issues. But I think the question of whether a package ships with Emacs can be, in principle, be independent of the question of whether Emacs reserves some keybinding space for that package. That might sound like a weird idea, but Magit is a good example of a situation where it could make sense. Best regards, -Karl [1] commit 5a38e1bb0fffa0326a1b5073c0ce9b05386e5109 Author: Jonas Bernoulli <jonas@bernoul.li> AuthorDate: Sat Oct 31 20:16:01 2020 +0100 Commit: Jonas Bernoulli <jonas@bernoul.li> CommitDate: Fri Nov 6 21:40:17 2020 +0100 Add three global key bindings by default For the longest time we have tried hard to avoid doing this but it is just not worth the effort and leads to an inferior result. Now we add three bindings by default. ;;;###autoload (when magit-define-global-key-bindings (let ((map (current-global-map))) (define-key map (kbd "C-x g") 'magit-status) (define-key map (kbd "C-x M-g") 'magit-dispatch) (define-key map (kbd "C-c M-g") 'magit-file-dispatch))) As you can see is easy to prevent these bindings from being added and I hope having to do so won't upset anyone too much. While we did not add global bindings we already added these bindings in all file-visiting buffers and we did not get any complaints about that. This completely replaces `magit-file-mode' and the global variant, which we define as an alias of the new variable. See #4237. M Documentation/magit.org M Documentation/magit.texi M lisp/magit-files.el M lisp/magit.el ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 18:51 ` Karl Fogel @ 2021-02-02 20:02 ` Thibaut Verron 0 siblings, 0 replies; 294+ messages in thread From: Thibaut Verron @ 2021-02-02 20:02 UTC (permalink / raw) To: Karl Fogel; +Cc: Ergus, emacs-devel 2021-02-02 19:51 UTC+01:00, Karl Fogel <kfogel@red-bean.com>: > On 02 Feb 2021, Thibaut Verron wrote: >>2021-02-02 17:50 UTC+01:00, Karl Fogel <kfogel@red-bean.com>: >>> On 02 Feb 2021, Ergus wrote: >>> Magit should instead suggest `C-c g' as an entry point for >>> `magit-status', though a user can bind it however they want of >>> course. I doubt there are any Magit users who would be daunted >>> by the need to set up a keybinding for Magit's entry point. >> To be clear, Magit itself does not bind anything by default. It >>suggests "C-x g" as a binding, and I see now that it also offers >>an option to enable that binding for the user. > > Actually, Magit does bind `C-x g' by default. > > There is a defcustom, `magit-define-global-key-bindings', and it > defaults to `t' in magit.el since October 2020 -- see [1] for the > history of that decision. When that variable is true, then that > keybinding (and two others) are made automatically by Magit at > load time. My bad, sorry. > >>It is not the only high-level package using "C-x letter" as an >>entry point, another example coming to mind is projectile ("C-x >>p"). As for the conventions, as far as I can tell, they >>explicitly require to steer clear of "C-c letter", but they don't >>have anything about "C-x letter": >>https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html >> > > Uh, I mean... sure, okay, those guidelines don't say anything > explicit about not binding `C-x LETTER' in your 3rd-party package, > but does that kind of guidance really have to be made explicit? > This is Emacs: everyone who develops for Emacs knows that the > `C-x' map is crowded and used heavily by Emacs. If everyone's > packages started binding things under there, they'd simply collide > with *each other* all the time, as well as (eventually) with Emacs > when Emacs decides to add a new `C-x' binding, as happened here. If a key space is reserved *for future usage*, that's most definitely something I would expect to see mentioned in the key binding conventions. I mean, isn't the point of having written conventions precisely to avoid relying on "everyone knows that"? My understanding until today was that C-x is indeed crowded, but that the few remaining keys are free. > I mean, the guidelines don't say to avoid rebinding the letter `a' > either, but people know not to do that :-). Because 'a' is already bound. In modes where self-insert-command makes no sense, a can be bound. And some modes also sensibly rebind some keys away from self-insert-command (typically for delimiters insertion). Some packages also rebind C-<, C-a or mouse-click. And let's not get started about evil... > Magit should explicitly advise users to use `C-c LETTER' for > Magit's entry points. The user-reserved space is there under `C-c > LETTER' precisely so users can bind entry points to their favorite > functionality. > > In other words, while Magit itself should "steer clear" of binding > things under either `C-x' or `C-c LETTER', Magit is perfectly free > to make recommendations. Right now, Magit's three main entry > points are: > > C-x g `magit-status' C-x M-g `magit-dispatch' C-c M-g > `magit-file-dispatch' > > And the doc string for `magit-define-global-key-bindings' even > says the following: > > > We recommend that you bind "C-c g" instead of "C-c M-g" to > > `magit-file-dispatch'. The former is a much better binding > > but the "C-c <letter>" namespace is strictly reserved for > > users; preventing Magit from using it by default. > > Now, clearly Magit's developers knew about the convention and > decided to clobber the Emacs-reserved space anyway. I totally > understand why they did so, even though I disagree with the > decision. Or they also took the guidelines and the convention at face value, acknowledging the status of C-c letter, but not mentioning anything about any emacs-reserved space. :) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 17:45 ` Concern about new binding Thibaut Verron 2021-02-02 18:04 ` Sean Whitton 2021-02-02 18:51 ` Karl Fogel @ 2021-02-02 18:56 ` Basil L. Contovounesios 2021-02-05 5:46 ` Richard Stallman 3 siblings, 0 replies; 294+ messages in thread From: Basil L. Contovounesios @ 2021-02-02 18:56 UTC (permalink / raw) To: Thibaut Verron; +Cc: Karl Fogel, Ergus, emacs-devel Thibaut Verron <thibaut.verron@gmail.com> writes: > To be clear, Magit itself does not bind anything by default. It > suggests "C-x g" as a binding, and I see now that it also offers an > option to enable that binding for the user. Which is turned on by default. -- Basil ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 17:45 ` Concern about new binding Thibaut Verron ` (2 preceding siblings ...) 2021-02-02 18:56 ` Basil L. Contovounesios @ 2021-02-05 5:46 ` Richard Stallman 3 siblings, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-05 5:46 UTC (permalink / raw) To: thibaut.verron; +Cc: kfogel, spacibba, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > As for the conventions, as far as I can tell, they explicitly require > to steer clear of "C-c letter", but they don't have anything about > "C-x letter": > https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html That's true. It isn't necessarily bad for a package to bind C-xLETTER. However, binding any of the remaining C-x LETTER keys is a digificant change, A package which binds one should be prepared to see that key get an important global binding, which would not quite compel a change in the package, but almost. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 13:49 ` Concern about new binding Ergus ` (2 preceding siblings ...) 2021-02-02 16:50 ` Karl Fogel @ 2021-02-02 22:10 ` Gregory Heytings 2021-02-02 22:22 ` [External] : " Drew Adams ` (2 more replies) 2021-02-03 5:52 ` Richard Stallman 4 siblings, 3 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-02 22:10 UTC (permalink / raw) To: Ergus; +Cc: emacs-devel > > 1) In general `C-x g` is used by magit; I know this is not a priority > (cause magit is an external package), but magit is a very popular > package. > Emacs is free to use the free C-x LETTER slots. There were only 5 such free slots until a few days ago: c g j w x. > > 3) In spite of revert-buffer is a very useful command it is useless in > many conditions like when auto-revert-mode is enable... so maybe it > makes sense to bind it to something longer (ex: C-x g r)?? > > There are more commands that could be set in a map inside C-x g IMHO: > toggle-read-only > revert-buffer-with-fine-grain > something to enable/disable font-lock etc > I agree with you that these free slots should probably be used as prefix commands. I also agree with you that revert-buffer is perhaps not useful enough to use a single letter C-x slot. I would suggest something like: C-x g c = clone-buffer C-x g d = diff-buffers C-x g f = fit-frame-to-buffer C-x g h = hexl-mode C-x g i = insert-buffer C-x g l = font-lock-mode C-x g n = rename-buffer C-x g r = revert-buffer C-x g R = revert-buffer-with-fine-grain C-x g t = toggle-truncate-lines and so forth. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-02 22:10 ` Gregory Heytings @ 2021-02-02 22:22 ` Drew Adams 2021-02-03 1:02 ` Ergus 2021-02-03 0:56 ` Ergus 2021-02-03 7:40 ` martin rudalics 2 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-02 22:22 UTC (permalink / raw) To: Gregory Heytings, Ergus; +Cc: emacs-devel@gnu.org > I agree with you that these free slots should probably be used as > prefix commands. Not by Emacs, please. Leave them for users and 3rd-party libraries (which would preferably make them optional in some way). Emacs should, in 2021, no longer be conquering key-sequence space. It should leave the little bit of space left there to users. There's a tendency for Emacs to gather more and more stuff (e.g. Project), and for its developers to want to add one or more prefix keys for that. That's forgivable (IMO) for 3rd-party libraries, but I no longer forgive it for Emacs itself. Time to tell Emacs to back off, IMO. > I would suggest something like: > > C-x g c = clone-buffer > C-x g d = diff-buffers > C-x g f = fit-frame-to-buffer > C-x g h = hexl-mode > C-x g i = insert-buffer > C-x g l = font-lock-mode > C-x g n = rename-buffer > C-x g r = revert-buffer > C-x g R = revert-buffer-with-fine-grain > C-x g t = toggle-truncate-lines > > and so forth. Please, no, absolutely not. You can do that for your own use. If zillions of users end up using exactly that for a considerable time, then emacs-devel can think about giving prefix key `C-x g' to Emacs that way. Till then, no, please. wAGNI. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-02 22:22 ` [External] : " Drew Adams @ 2021-02-03 1:02 ` Ergus 2021-02-03 2:32 ` Drew Adams 0 siblings, 1 reply; 294+ messages in thread From: Ergus @ 2021-02-03 1:02 UTC (permalink / raw) To: Drew Adams; +Cc: Gregory Heytings, emacs-devel@gnu.org >> I would suggest something like: >> >> C-x g c = clone-buffer >> C-x g d = diff-buffers >> C-x g f = fit-frame-to-buffer >> C-x g h = hexl-mode >> C-x g i = insert-buffer >> C-x g l = font-lock-mode >> C-x g n = rename-buffer >> C-x g r = revert-buffer >> C-x g R = revert-buffer-with-fine-grain >> C-x g t = toggle-truncate-lines >> >> and so forth. > >Please, no, absolutely not. > >You can do that for your own use. > >If zillions of users end up using exactly that >for a considerable time, then emacs-devel can >think about giving prefix key `C-x g' to Emacs >that way. Till then, no, please. wAGNI. > > Drew: The binding is already taken (that's why I started the thread), so the discussion will be to take it for something "better" than a single (maybe superfluous) command. If we start arguing as usual then the binding will stay and no change will be done (again as usual). Best, Ergus ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 1:02 ` Ergus @ 2021-02-03 2:32 ` Drew Adams 0 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 2:32 UTC (permalink / raw) To: Ergus; +Cc: Gregory Heytings, emacs-devel@gnu.org > >> I would suggest something like: > >> > >> C-x g c = clone-buffer > >> C-x g d = diff-buffers > >> C-x g f = fit-frame-to-buffer > >> C-x g h = hexl-mode > >> C-x g i = insert-buffer > >> C-x g l = font-lock-mode > >> C-x g n = rename-buffer > >> C-x g r = revert-buffer > >> C-x g R = revert-buffer-with-fine-grain > >> C-x g t = toggle-truncate-lines > >> > >> and so forth. > > > >Please, no, absolutely not. > > > >You can do that for your own use. > > > >If zillions of users end up using exactly that > >for a considerable time, then emacs-devel can > >think about giving prefix key `C-x g' to Emacs > >that way. Till then, no, please. wAGNI. > > Drew: > > The binding is already taken (that's why I started the thread), so the > discussion will be to take it for something "better" than a single > (maybe superfluous) command. IMO the decision should be to revert that binding. It doesn't make sense to take it as given at this point and only hope that at least other things get stuffed under it as a prefix key. > If we start arguing as usual then the binding will stay and no change > will be done (again as usual). The question should have been discussed. And it should be discussed here now, IMO. This mistake shouldn't be considered carved in stone. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 22:10 ` Gregory Heytings 2021-02-02 22:22 ` [External] : " Drew Adams @ 2021-02-03 0:56 ` Ergus 2021-02-03 3:28 ` Eli Zaretskii 2021-02-03 7:40 ` martin rudalics 2 siblings, 1 reply; 294+ messages in thread From: Ergus @ 2021-02-03 0:56 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel On Tue, Feb 02, 2021 at 10:10:06PM +0000, Gregory Heytings wrote: > >I agree with you that these free slots should probably be used as >prefix commands. I also agree with you that revert-buffer is perhaps >not useful enough to use a single letter C-x slot. I would suggest >something like: > >C-x g c = clone-buffer >C-x g d = diff-buffers >C-x g f = fit-frame-to-buffer >C-x g h = hexl-mode >C-x g i = insert-buffer >C-x g l = font-lock-mode >C-x g n = rename-buffer >C-x g r = revert-buffer >C-x g R = revert-buffer-with-fine-grain >C-x g t = toggle-truncate-lines > >and so forth. > Hi Gregory: Here I totally agree with you. Personally I prefer to keep the `C-x g` free; BUT if it is going to be taken, then we should use a map and not a single command (specially not one so unhelpful) I won't send any other email about this because I tend to spam too much. But Eli, Stefan, Lars... Do you approve this change? At least revert the binding? Because if we forget this now, after some time it will require deprecation and years... Best, Ergus ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 0:56 ` Ergus @ 2021-02-03 3:28 ` Eli Zaretskii 2021-02-03 3:58 ` Ergus 0 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 3:28 UTC (permalink / raw) To: Ergus; +Cc: gregory, emacs-devel > Date: Wed, 3 Feb 2021 01:56:42 +0100 > From: Ergus <spacibba@aol.com> > Cc: emacs-devel@gnu.org > > But Eli, Stefan, Lars... Do you approve this change? At least revert the > binding? Which change? what binding? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 3:28 ` Eli Zaretskii @ 2021-02-03 3:58 ` Ergus 2021-02-03 5:17 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: Ergus @ 2021-02-03 3:58 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, emacs-devel On Wed, Feb 03, 2021 at 05:28:28AM +0200, Eli Zaretskii wrote: >> Date: Wed, 3 Feb 2021 01:56:42 +0100 >> From: Ergus <spacibba@aol.com> >> Cc: emacs-devel@gnu.org >> >> But Eli, Stefan, Lars... Do you approve this change? At least revert the >> binding? > >Which change? what binding? > Commit: 7d15fa008af774789a91d7242055dc87497df66f All this thread is because of that. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 3:58 ` Ergus @ 2021-02-03 5:17 ` Eli Zaretskii 0 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 5:17 UTC (permalink / raw) To: Ergus; +Cc: gregory, emacs-devel On February 3, 2021 5:58:24 AM GMT+02:00, Ergus <spacibba@aol.com> wrote: > On Wed, Feb 03, 2021 at 05:28:28AM +0200, Eli Zaretskii wrote: > >> Date: Wed, 3 Feb 2021 01:56:42 +0100 > >> From: Ergus <spacibba@aol.com> > >> Cc: emacs-devel@gnu.org > >> > >> But Eli, Stefan, Lars... Do you approve this change? At least > revert the > >> binding? > > > >Which change? what binding? > > > Commit: 7d15fa008af774789a91d7242055dc87497df66f > > All this thread is because of that. This thread seems to be about a lot of things, including whether it's okay for 3rd party packages to use C-x SOME-LETTER, and even whether the Emacs developers are doing their job well enough. As for that particular commit: the discussion is still unfolding, and it isn't yet clear to me whether there's consensus or what it is. Some say that Magit was wrong in using "C-x g" to begin with, others (including yourself?) are okay with having "C-x g" globally bound to revert-buffer if we add to that more global bindings starting with "C-x g". And most of the points you raised in your OP didn't yet get any responses. So from my POV it's too early to make up my mind about this. Lars obviously didn't think the new binding was terribly wrong, or else he wouldn't have committed that change. And Stefan started a new thread to discuss a related but separate issue. So I think we should wait and see if some consensus emerges out of this discussion. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 22:10 ` Gregory Heytings 2021-02-02 22:22 ` [External] : " Drew Adams 2021-02-03 0:56 ` Ergus @ 2021-02-03 7:40 ` martin rudalics 2021-02-03 9:36 ` Gregory Heytings 2 siblings, 1 reply; 294+ messages in thread From: martin rudalics @ 2021-02-03 7:40 UTC (permalink / raw) To: Gregory Heytings, Ergus; +Cc: emacs-devel > Emacs is free to use the free C-x LETTER slots. There were only 5 > such free slots until a few days ago: c g j w x. I don't care about any keybindings because I always use my own. But why all this fuss with something as handy as M-g practically empty? martin ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 7:40 ` martin rudalics @ 2021-02-03 9:36 ` Gregory Heytings 2021-02-03 11:06 ` martin rudalics 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-03 9:36 UTC (permalink / raw) To: martin rudalics; +Cc: emacs-devel >> Emacs is free to use the free C-x LETTER slots. There were only 5 such >> free slots until a few days ago: c g j w x. > > I don't care about any keybindings because I always use my own. But why > all this fuss with something as handy as M-g practically empty? > I think M-g is for "goto" actions. What we have here are "buffer" actions. IMO it is better to put them on separate keymaps. The exception is C-x r, which is used for registers, rectangles and bookmarks, which is IMO confusing. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 9:36 ` Gregory Heytings @ 2021-02-03 11:06 ` martin rudalics 2021-02-04 5:39 ` Richard Stallman 0 siblings, 1 reply; 294+ messages in thread From: martin rudalics @ 2021-02-03 11:06 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > I think M-g is for "goto" actions. Then let's change the semantics of "g". > What we have here are "buffer" > actions. IMO it is better to put them on separate keymaps. The > exception is C-x r, which is used for registers, rectangles and > bookmarks, which is IMO confusing. Isn't it a bit ridiculous to desperately search for free keybindings for one given prefix while another prefix offers them for free? martin ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 11:06 ` martin rudalics @ 2021-02-04 5:39 ` Richard Stallman 0 siblings, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-04 5:39 UTC (permalink / raw) To: martin rudalics; +Cc: gregory, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Isn't it a bit ridiculous to desperately search for free keybindings for > one given prefix while another prefix offers them for free? Systematic use of a prefix for a certain purpose makes it easier to remember. That is very important for a system as complex as Emacs. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-02 13:49 ` Concern about new binding Ergus ` (3 preceding siblings ...) 2021-02-02 22:10 ` Gregory Heytings @ 2021-02-03 5:52 ` Richard Stallman 2021-02-03 9:37 ` Gregory Heytings 2021-02-03 19:22 ` Sean Whitton 4 siblings, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-03 5:52 UTC (permalink / raw) To: Ergus; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > In a recent commit I see that the C-x g binding was taken for > revert-buffer. I see another disadvantage in that binding: revert-buffer is a drastic operation, so we should not make it easier. I think it is wiser not to put it on a key -- which is why I never did. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 5:52 ` Richard Stallman @ 2021-02-03 9:37 ` Gregory Heytings 2021-02-03 10:50 ` Robert Pluim ` (2 more replies) 2021-02-03 19:22 ` Sean Whitton 1 sibling, 3 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-03 9:37 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-devel >> In a recent commit I see that the C-x g binding was taken for >> revert-buffer. > > I see another disadvantage in that binding: revert-buffer is a drastic > operation, so we should not make it easier. I think it is wiser not to > put it on a key -- which is why I never did. > It's true that it is a drastic operation, but it asks for confirmation, and it can be undone. An additional security measure would be to disable it by default: (put 'revert-buffer 'disabled t). ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 9:37 ` Gregory Heytings @ 2021-02-03 10:50 ` Robert Pluim 2021-02-03 11:12 ` Alfred M. Szmidt ` (2 more replies) 2021-02-04 0:41 ` Stefan Kangas 2021-02-04 5:39 ` Richard Stallman 2 siblings, 3 replies; 294+ messages in thread From: Robert Pluim @ 2021-02-03 10:50 UTC (permalink / raw) To: Gregory Heytings; +Cc: Richard Stallman, emacs-devel >>>>> On Wed, 03 Feb 2021 09:37:07 +0000, Gregory Heytings <gregory@heytings.org> said: >>> In a recent commit I see that the C-x g binding was taken for >>> revert-buffer. >> >> I see another disadvantage in that binding: revert-buffer is a >> drastic operation, so we should not make it easier. I think it is >> wiser not to put it on a key -- which is why I never did. >> Gregory> It's true that it is a drastic operation, but it asks for Gregory> confirmation, and it can be undone. An additional security measure Gregory> would be to disable it by default: (put 'revert-buffer 'disabled t). Please no, itʼs a useful operation in some situations, making it more confusing for people to use is not a good idea. Compromise binding: "C-x G", which doesnʼt clash with magit, and is relatively hard to type by accident. Robert ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 10:50 ` Robert Pluim @ 2021-02-03 11:12 ` Alfred M. Szmidt 2021-02-03 11:20 ` Andreas Schwab ` (2 more replies) 2021-02-03 11:31 ` Basil L. Contovounesios 2021-02-03 16:15 ` [External] : " Drew Adams 2 siblings, 3 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-03 11:12 UTC (permalink / raw) To: Robert Pluim; +Cc: gregory, rms, emacs-devel Why not C-x M-u for revert-buffer? Hard to type, follows the pattern of "undo" which revert-buffer basically is, is free, similar to the normal pattern of Emacs bindings where M- works on something larger than something without. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 11:12 ` Alfred M. Szmidt @ 2021-02-03 11:20 ` Andreas Schwab 2021-02-03 11:27 ` Alfred M. Szmidt 2021-02-03 16:18 ` Drew Adams 2021-02-03 16:16 ` Drew Adams 2021-02-04 17:03 ` Juri Linkov 2 siblings, 2 replies; 294+ messages in thread From: Andreas Schwab @ 2021-02-03 11:20 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: Robert Pluim, emacs-devel, gregory, rms On Feb 03 2021, Alfred M. Szmidt wrote: > Why not C-x M-u for revert-buffer? Why not M-x revert-buffer for revert-buffer? Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 11:20 ` Andreas Schwab @ 2021-02-03 11:27 ` Alfred M. Szmidt 2021-02-03 11:43 ` Andreas Schwab 2021-02-03 16:19 ` Drew Adams 2021-02-03 16:18 ` Drew Adams 1 sibling, 2 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-03 11:27 UTC (permalink / raw) To: Andreas Schwab; +Cc: rpluim, emacs-devel, gregory, rms > Why not C-x M-u for revert-buffer? Why not M-x revert-buffer for revert-buffer? Why not M-x undo for undo? Why not M-x find-file for find file? Why not remove all keybindings and let users typ in sexps all the time? Why not use flip switches for proramming instead of having a keyboard? Because people want to use it, and people want to make things nicer. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 11:27 ` Alfred M. Szmidt @ 2021-02-03 11:43 ` Andreas Schwab 2021-02-03 12:51 ` Alfred M. Szmidt 2021-02-03 16:19 ` Drew Adams 1 sibling, 1 reply; 294+ messages in thread From: Andreas Schwab @ 2021-02-03 11:43 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: rpluim, emacs-devel, gregory, rms On Feb 03 2021, Alfred M. Szmidt wrote: > Because people want to use it, and people want to make things nicer. You want a hard to type binding for revert-buffer, you already have that. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 11:43 ` Andreas Schwab @ 2021-02-03 12:51 ` Alfred M. Szmidt 2021-02-03 13:15 ` Thibaut Verron ` (2 more replies) 0 siblings, 3 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-03 12:51 UTC (permalink / raw) To: Andreas Schwab; +Cc: rpluim, emacs-devel, gregory, rms > Because people want to use it, and people want to make things nicer. You want a hard to type binding for revert-buffer, you already have that. It is not I who wanted it. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 12:51 ` Alfred M. Szmidt @ 2021-02-03 13:15 ` Thibaut Verron 2021-02-03 15:00 ` Eli Zaretskii ` (2 more replies) 2021-02-03 13:31 ` Andreas Schwab 2021-02-03 16:21 ` [External] : " Drew Adams 2 siblings, 3 replies; 294+ messages in thread From: Thibaut Verron @ 2021-02-03 13:15 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: rpluim, Andreas Schwab, gregory, rms, emacs-devel 2021-02-03 13:51 UTC+01:00, Alfred M. Szmidt <ams@gnu.org>: > > Because people want to use it, and people want to make things nicer. > > You want a hard to type binding for revert-buffer, you already have > that. > > It is not I who wanted it. What is still unclear to me is why a *global* binding for revert-buffer is useful. In text-editing buffers, we have M-x revert-buffer. We have the various auto-revert modes for when the file changes outside of the editor. And we have an entry in the "Files" menu. What scenario do they not cover? In special buffers, manually triggering a revert can be useful, but those buffers typically have a lot more keys to choose from. Not only that, they even already have a binding for revert-buffer ('g', in special-mode-map). If a mode has a more useful binding on 'g', they can either set revert-buffer-function or use another key for revert-buffer (or both). What problem does a global binding solve? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 13:15 ` Thibaut Verron @ 2021-02-03 15:00 ` Eli Zaretskii 2021-02-03 15:13 ` Dmitry Gutov 2021-02-03 16:27 ` Drew Adams 2021-02-03 16:23 ` Drew Adams 2021-02-04 5:48 ` Richard Stallman 2 siblings, 2 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 15:00 UTC (permalink / raw) To: thibaut.verron; +Cc: rms, rpluim, gregory, emacs-devel, ams, schwab > From: Thibaut Verron <thibaut.verron@gmail.com> > Date: Wed, 3 Feb 2021 14:15:48 +0100 > Cc: rpluim@gmail.com, Andreas Schwab <schwab@linux-m68k.org>, > gregory@heytings.org, rms@gnu.org, emacs-devel@gnu.org > > What is still unclear to me is why a *global* binding for > revert-buffer is useful. So that users could remember only a single key sequence, and it would do the job regardless of the current major mode. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 15:00 ` Eli Zaretskii @ 2021-02-03 15:13 ` Dmitry Gutov 2021-02-03 16:29 ` [External] : " Drew Adams 2021-02-03 16:27 ` Drew Adams 1 sibling, 1 reply; 294+ messages in thread From: Dmitry Gutov @ 2021-02-03 15:13 UTC (permalink / raw) To: Eli Zaretskii, thibaut.verron Cc: rms, rpluim, gregory, emacs-devel, ams, schwab On 03.02.2021 17:00, Eli Zaretskii wrote: > So that users could remember only a single key sequence, and it would > do the job regardless of the current major mode. Up until now, we've had a single key sequence for "special" revert commands. And that key sequence was 'g'. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 15:13 ` Dmitry Gutov @ 2021-02-03 16:29 ` Drew Adams 2021-02-03 17:12 ` Yuan Fu 0 siblings, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:29 UTC (permalink / raw) To: Dmitry Gutov, Eli Zaretskii, thibaut.verron@gmail.com Cc: rms@gnu.org, rpluim@gmail.com, gregory@heytings.org, emacs-devel@gnu.org, ams@gnu.org, schwab@linux-m68k.org > > So that users could remember only a single key sequence, and it would > > do the job regardless of the current major mode. > > Up until now, we've had a single key sequence for "special" revert > commands. > > And that key sequence was 'g'. Yes, we've decided that a key for `revert-buffer' makes sense for this or that mode. And yes, when possible we've used the same key for that, `g'. All of that is normal. Reverting a buffer is about, well, the buffer. And in particular it's related to the mode, a priori. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 16:29 ` [External] : " Drew Adams @ 2021-02-03 17:12 ` Yuan Fu 2021-02-03 17:24 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: Yuan Fu @ 2021-02-03 17:12 UTC (permalink / raw) To: Drew Adams Cc: rms@gnu.org, thibaut.verron@gmail.com, rpluim@gmail.com, ams@gnu.org, emacs-devel@gnu.org, gregory@heytings.org, schwab@linux-m68k.org, Dmitry Gutov, Eli Zaretskii I just want to addd that considering the amount of work and discussion involved in removing or changing default key bindings, we shouldn’t go too lightly on adding them. Yuan ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 17:12 ` Yuan Fu @ 2021-02-03 17:24 ` Eli Zaretskii 0 siblings, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 17:24 UTC (permalink / raw) To: Yuan Fu Cc: rms, thibaut.verron, rpluim, ams, emacs-devel, gregory, schwab, dgutov, drew.adams > From: Yuan Fu <casouri@gmail.com> > Date: Wed, 3 Feb 2021 12:12:46 -0500 > Cc: Dmitry Gutov <dgutov@yandex.ru>, > Eli Zaretskii <eliz@gnu.org>, > "thibaut.verron@gmail.com" <thibaut.verron@gmail.com>, > "rms@gnu.org" <rms@gnu.org>, > "rpluim@gmail.com" <rpluim@gmail.com>, > "gregory@heytings.org" <gregory@heytings.org>, > "emacs-devel@gnu.org" <emacs-devel@gnu.org>, > "ams@gnu.org" <ams@gnu.org>, > "schwab@linux-m68k.org" <schwab@linux-m68k.org> > > I just want to addd that considering the amount of work and discussion involved in removing or changing default key bindings, we shouldn’t go too lightly on adding them. I don't see any evidence that we are adding new key bindings too lightly. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 15:00 ` Eli Zaretskii 2021-02-03 15:13 ` Dmitry Gutov @ 2021-02-03 16:27 ` Drew Adams 2021-02-03 17:17 ` Eli Zaretskii 1 sibling, 1 reply; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:27 UTC (permalink / raw) To: Eli Zaretskii, thibaut.verron@gmail.com Cc: rms@gnu.org, rpluim@gmail.com, gregory@heytings.org, emacs-devel@gnu.org, ams@gnu.org, schwab@linux-m68k.org > > What is still unclear to me is why a *global* binding for > > revert-buffer is useful. > > So that users could remember only a single key sequence, and it would > do the job regardless of the current major mode. That's the reason for _any_ global key. But what's the reason for a global key for `revert-buffer'? Why does Emacs need to sacrifice a key for this by default? What happened to seeing what users actually do? If zillions of users bind a global key for `revert-buffer' - and especially if they're all wanting the same key - then we have a good case to consider. But we don't have that, do we? ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 16:27 ` Drew Adams @ 2021-02-03 17:17 ` Eli Zaretskii 2021-02-04 5:46 ` Richard Stallman 0 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-03 17:17 UTC (permalink / raw) To: Drew Adams; +Cc: rms, thibaut.verron, rpluim, gregory, emacs-devel, ams, schwab > From: Drew Adams <drew.adams@oracle.com> > CC: "rms@gnu.org" <rms@gnu.org>, "rpluim@gmail.com" <rpluim@gmail.com>, > "gregory@heytings.org" <gregory@heytings.org>, > "emacs-devel@gnu.org" > <emacs-devel@gnu.org>, > "ams@gnu.org" <ams@gnu.org>, > "schwab@linux-m68k.org" > <schwab@linux-m68k.org> > Date: Wed, 3 Feb 2021 16:27:23 +0000 > > > > What is still unclear to me is why a *global* binding for > > > revert-buffer is useful. > > > > So that users could remember only a single key sequence, and it would > > do the job regardless of the current major mode. > > That's the reason for _any_ global key. > > But what's the reason for a global key > for `revert-buffer'? That many modes have some kind of "revert" action. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-03 17:17 ` Eli Zaretskii @ 2021-02-04 5:46 ` Richard Stallman 2021-02-04 15:02 ` Eli Zaretskii 0 siblings, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-04 5:46 UTC (permalink / raw) To: Eli Zaretskii Cc: thibaut.verron, rpluim, gregory, emacs-devel, ams, schwab, drew.adams [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > But what's the reason for a global key > > for `revert-buffer'? > That many modes have some kind of "revert" action. Aren't they special modes? I think they already have a standard key for that: g. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-04 5:46 ` Richard Stallman @ 2021-02-04 15:02 ` Eli Zaretskii 2021-02-05 5:50 ` Richard Stallman 0 siblings, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-04 15:02 UTC (permalink / raw) To: rms; +Cc: thibaut.verron, rpluim, gregory, emacs-devel, ams, schwab, drew.adams > From: Richard Stallman <rms@gnu.org> > Cc: drew.adams@oracle.com, thibaut.verron@gmail.com, rpluim@gmail.com, > gregory@heytings.org, emacs-devel@gnu.org, ams@gnu.org, > schwab@linux-m68k.org > Date: Thu, 04 Feb 2021 00:46:14 -0500 > > > > But what's the reason for a global key > > > for `revert-buffer'? > > > That many modes have some kind of "revert" action. > > Aren't they special modes? I think they already have a standard key > for that: g. Some of them are special modes, but some aren't. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-04 15:02 ` Eli Zaretskii @ 2021-02-05 5:50 ` Richard Stallman 2021-02-05 7:12 ` Sean Whitton 2021-02-05 8:30 ` Eli Zaretskii 0 siblings, 2 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-05 5:50 UTC (permalink / raw) To: Eli Zaretskii Cc: thibaut.verron, rpluim, gregory, emacs-devel, ams, schwab, drew.adams [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > > That many modes have some kind of "revert" action. > > > > Aren't they special modes? I think they already have a standard key > > for that: g. > Some of them are special modes, but some aren't. That makes me curious; I'd like to understand how come. Can someone post about modes that have their own revert actions but are not special modes? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 5:50 ` Richard Stallman @ 2021-02-05 7:12 ` Sean Whitton 2021-02-05 8:30 ` Eli Zaretskii 1 sibling, 0 replies; 294+ messages in thread From: Sean Whitton @ 2021-02-05 7:12 UTC (permalink / raw) To: rms, Eli Zaretskii Cc: thibaut.verron, rpluim, gregory, emacs-devel, ams, schwab, drew.adams Hello, On Fri 05 Feb 2021 at 12:50AM -05, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > > > > > That many modes have some kind of "revert" action. > > > > > > Aren't they special modes? I think they already have a standard key > > > for that: g. > > > Some of them are special modes, but some aren't. > > That makes me curious; I'd like to understand how come. Can someone > post about modes that have their own revert actions but are not > special modes? *Shell Command Output* from M-! and *Async Command Output* from M-& now have this on master. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: [External] : Re: Concern about new binding. 2021-02-05 5:50 ` Richard Stallman 2021-02-05 7:12 ` Sean Whitton @ 2021-02-05 8:30 ` Eli Zaretskii 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-05 8:30 UTC (permalink / raw) To: rms; +Cc: thibaut.verron, rpluim, gregory, emacs-devel, ams, schwab, drew.adams > From: Richard Stallman <rms@gnu.org> > Cc: drew.adams@oracle.com, thibaut.verron@gmail.com, rpluim@gmail.com, > gregory@heytings.org, emacs-devel@gnu.org, ams@gnu.org, > schwab@linux-m68k.org > Date: Fri, 05 Feb 2021 00:50:43 -0500 > > > > > That many modes have some kind of "revert" action. > > > > > > Aren't they special modes? I think they already have a standard key > > > for that: g. > > > Some of them are special modes, but some aren't. > > That makes me curious; I'd like to understand how come. Can someone > post about modes that have their own revert actions but are not > special modes? Searching Emacs for files that set revert-buffer-function brings up the following list: apropos.el bookmark.el bs.el calendar/todo-mode.el chistory.el cus-theme.el dired.el emacs-backtrace.el emacs-ert.el emacs-package.el emacs-tabulated-list.el emacs-timer-list.el epa.el facemenu.el find-dired.el find-lisp.el forms.el help-mode.el hexl.el ibuffer.el info.el locate.el mail/mspools.el mail/rmail.el mail/rmailsum.el mh-e/mh-folder.el net/net-utils.el net/secrets.el net/telnet.el proced.el progmodes/compile.el progmodes/ebrowse.el progmodes/sql.el replace.el simple.el tar-mode.el time.el vc/diff.el vc/pcvs.el vc/vc-dir.el vc/vc.el wdired.el I think this gives a good idea about what modes have revert actions, but if details are needed, one can look inside these files and see. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 13:15 ` Thibaut Verron 2021-02-03 15:00 ` Eli Zaretskii @ 2021-02-03 16:23 ` Drew Adams 2021-02-04 5:48 ` Richard Stallman 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:23 UTC (permalink / raw) To: thibaut.verron@gmail.com, Alfred M. Szmidt Cc: rpluim@gmail.com, emacs-devel@gnu.org, Andreas Schwab, gregory@heytings.org, rms@gnu.org > What problem does a global binding solve? Exactly the question that should have been, and should be, the starting point. ___ (And how on earth has Emacs survived 35+ years without such a global key?) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 13:15 ` Thibaut Verron 2021-02-03 15:00 ` Eli Zaretskii 2021-02-03 16:23 ` Drew Adams @ 2021-02-04 5:48 ` Richard Stallman 2 siblings, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-04 5:48 UTC (permalink / raw) To: thibaut.verron; +Cc: ams, gregory, schwab, rpluim, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > In text-editing buffers, we have M-x revert-buffer. We have the > various auto-revert modes for when the file changes outside of the > editor. And we have an entry in the "Files" menu. > What scenario do they not cover? > In special buffers, manually triggering a revert can be useful, but > those buffers typically have a lot more keys to choose from. Not only > that, they even already have a binding for revert-buffer ('g', in > special-mode-map). 1+ -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 12:51 ` Alfred M. Szmidt 2021-02-03 13:15 ` Thibaut Verron @ 2021-02-03 13:31 ` Andreas Schwab 2021-02-03 13:43 ` Alfred M. Szmidt 2021-02-03 16:21 ` [External] : " Drew Adams 2 siblings, 1 reply; 294+ messages in thread From: Andreas Schwab @ 2021-02-03 13:31 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: rpluim, emacs-devel, gregory, rms On Feb 03 2021, Alfred M. Szmidt wrote: > > Because people want to use it, and people want to make things nicer. > > You want a hard to type binding for revert-buffer, you already have > that. > > It is not I who wanted it. Yes, you did: > Why not C-x M-u for revert-buffer? Hard to type, follows the pattern Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 13:31 ` Andreas Schwab @ 2021-02-03 13:43 ` Alfred M. Szmidt 2021-02-03 14:10 ` Andreas Schwab 2021-02-04 5:47 ` Richard Stallman 0 siblings, 2 replies; 294+ messages in thread From: Alfred M. Szmidt @ 2021-02-03 13:43 UTC (permalink / raw) To: Andreas Schwab; +Cc: rpluim, emacs-devel, gregory, rms > It is not I who wanted it. Yes, you did: I suggested a possible solution to the person I was replying to, who in turn was replying to Gregory who thought 'C-x g' was to easy to type. So, no, _I_ didn't. And I'd appreicate it if you stopped pretending you know anything about what I want -- specially when I explcitly said the opposite. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 13:43 ` Alfred M. Szmidt @ 2021-02-03 14:10 ` Andreas Schwab 2021-02-04 5:47 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Andreas Schwab @ 2021-02-03 14:10 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: rpluim, emacs-devel, gregory, rms It was a literal quote. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 13:43 ` Alfred M. Szmidt 2021-02-03 14:10 ` Andreas Schwab @ 2021-02-04 5:47 ` Richard Stallman 1 sibling, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-04 5:47 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: rpluim, schwab, gregory, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Would everyone please be kinder to those who don't agree? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 12:51 ` Alfred M. Szmidt 2021-02-03 13:15 ` Thibaut Verron 2021-02-03 13:31 ` Andreas Schwab @ 2021-02-03 16:21 ` Drew Adams 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:21 UTC (permalink / raw) To: Alfred M. Szmidt, Andreas Schwab Cc: rpluim@gmail.com, gregory@heytings.org, rms@gnu.org, emacs-devel@gnu.org >> Because people want to use it, and people want to make things nicer. > > You want a hard to type binding for revert-buffer, you already have > that. > > It is not I who wanted it. Every user can already have whatever behavior they want: 1. No global key 2. This or that global key for `revert-buffer' 3. This or that global key for `revert-buffer' without needing to confirm ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 11:27 ` Alfred M. Szmidt 2021-02-03 11:43 ` Andreas Schwab @ 2021-02-03 16:19 ` Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:19 UTC (permalink / raw) To: Alfred M. Szmidt, Andreas Schwab Cc: rpluim@gmail.com, gregory@heytings.org, rms@gnu.org, emacs-devel@gnu.org > Because people want to use it, and people want to make things nicer. "People" are free to do that. The question is whether Emacs should sacrifice a key for this _by default_. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 11:20 ` Andreas Schwab 2021-02-03 11:27 ` Alfred M. Szmidt @ 2021-02-03 16:18 ` Drew Adams 1 sibling, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:18 UTC (permalink / raw) To: Andreas Schwab, Alfred M. Szmidt Cc: Robert Pluim, gregory@heytings.org, rms@gnu.org, emacs-devel@gnu.org > > Why not C-x M-u for revert-buffer? > > Why not M-x revert-buffer for revert-buffer? +1. Absolutely. And anyone can bind a global key if they like. __ Personally, I do that. I bind `f5' to this: (defun revert-buffer-no-confirm () "Revert buffer without confirmation." (interactive) (revert-buffer t t)) And I use `f5' because that's the key for this global behavior on MS Windows. ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 11:12 ` Alfred M. Szmidt 2021-02-03 11:20 ` Andreas Schwab @ 2021-02-03 16:16 ` Drew Adams 2021-02-04 17:03 ` Juri Linkov 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:16 UTC (permalink / raw) To: Alfred M. Szmidt, Robert Pluim Cc: gregory@heytings.org, rms@gnu.org, emacs-devel@gnu.org > Why not C-x M-u for revert-buffer? Hard to type, follows the pattern > of "undo" which revert-buffer basically is, is free, similar to the > normal pattern of Emacs bindings where M- works on something larger > than something without. What are the reasons why we need Emacs to have _any_ default binding for `revert-buffer'? That should be the starting point. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 11:12 ` Alfred M. Szmidt 2021-02-03 11:20 ` Andreas Schwab 2021-02-03 16:16 ` Drew Adams @ 2021-02-04 17:03 ` Juri Linkov 2 siblings, 0 replies; 294+ messages in thread From: Juri Linkov @ 2021-02-04 17:03 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: Robert Pluim, emacs-devel, gregory, rms > Why not C-x M-u for revert-buffer? Hard to type, follows the pattern > of "undo" which revert-buffer basically is, is free, similar to the > normal pattern of Emacs bindings where M- works on something larger > than something without. Then C-x M-g would be better, since 'g' will retain its connection with the key 'g' bound in special modes. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 10:50 ` Robert Pluim 2021-02-03 11:12 ` Alfred M. Szmidt @ 2021-02-03 11:31 ` Basil L. Contovounesios 2021-02-04 5:39 ` Richard Stallman 2021-02-03 16:15 ` [External] : " Drew Adams 2 siblings, 1 reply; 294+ messages in thread From: Basil L. Contovounesios @ 2021-02-03 11:31 UTC (permalink / raw) To: Robert Pluim; +Cc: Gregory Heytings, Richard Stallman, emacs-devel Robert Pluim <rpluim@gmail.com> writes: > Compromise binding: "C-x G", which doesnʼt clash with magit, and is > relatively hard to type by accident. +1 -- Basil ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 11:31 ` Basil L. Contovounesios @ 2021-02-04 5:39 ` Richard Stallman 2021-02-04 8:31 ` Robert Pluim 0 siblings, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-04 5:39 UTC (permalink / raw) To: Basil L. Contovounesios; +Cc: rpluim, gregory, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Compromise binding: "C-x G", which doesnʼt clash with magit, and is > > relatively hard to type by accident. Letters following C-x are not case-sensitive. That is a systematic rule. Thai rule is not sacred; for a good enough reason, we could break it. But this is not an important reason; it is not sufficient reason to break a rule. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 5:39 ` Richard Stallman @ 2021-02-04 8:31 ` Robert Pluim 0 siblings, 0 replies; 294+ messages in thread From: Robert Pluim @ 2021-02-04 8:31 UTC (permalink / raw) To: Richard Stallman; +Cc: Basil L. Contovounesios, gregory, emacs-devel >>>>> On Thu, 04 Feb 2021 00:39:11 -0500, Richard Stallman <rms@gnu.org> said: Richard> [[[ To any NSA and FBI agents reading my email: please consider ]]] Richard> [[[ whether defending the US Constitution against all enemies, ]]] Richard> [[[ foreign or domestic, requires you to follow Snowden's example. ]]] >> > Compromise binding: "C-x G", which doesnʼt clash with magit, and is >> > relatively hard to type by accident. Richard> Letters following C-x are not case-sensitive. That is a systematic rule. Thatʼs a new one for me, I thought it was just C-<key>, since you canʼt distinguish case for those on a tty. Richard> Thai rule is not sacred; for a good enough reason, Richard> we could break it. But this is not an important reason; it is Richard> not sufficient reason to break a rule. OK. Maybe we can find an acceptable binding. Personally I use s-u, but thatʼs not a good candidate as a default binding. Robert ^ permalink raw reply [flat|nested] 294+ messages in thread
* RE: [External] : Re: Concern about new binding. 2021-02-03 10:50 ` Robert Pluim 2021-02-03 11:12 ` Alfred M. Szmidt 2021-02-03 11:31 ` Basil L. Contovounesios @ 2021-02-03 16:15 ` Drew Adams 2 siblings, 0 replies; 294+ messages in thread From: Drew Adams @ 2021-02-03 16:15 UTC (permalink / raw) To: Robert Pluim, Gregory Heytings; +Cc: Richard Stallman, emacs-devel@gnu.org > Compromise binding: "C-x G", which doesnʼt clash with magit, and is > relatively hard to type by accident. It's not a compromise with my position, at least. IMO we should not add any binding for this. And I presented several reasons: https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg00048.html ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 9:37 ` Gregory Heytings 2021-02-03 10:50 ` Robert Pluim @ 2021-02-04 0:41 ` Stefan Kangas 2021-02-04 5:39 ` Richard Stallman 2 siblings, 0 replies; 294+ messages in thread From: Stefan Kangas @ 2021-02-04 0:41 UTC (permalink / raw) To: Gregory Heytings, Richard Stallman; +Cc: emacs-devel Gregory Heytings <gregory@heytings.org> writes: >>> In a recent commit I see that the C-x g binding was taken for >>> revert-buffer. >> >> I see another disadvantage in that binding: revert-buffer is a drastic >> operation, so we should not make it easier. I think it is wiser not to >> put it on a key -- which is why I never did. >> FWIW, I think this is the correct idea here. In particular, I think `C-x g' is an unfortunate keybinding, as it is too easy to make a drastic mistake. If we need to have a keybinding, I like the idea of something like `C-x M-u' more. > It's true that it is a drastic operation, but it asks for confirmation, > and it can be undone. AFAIK, that depends on the size of your changes and the value of `undo-limit', `undo-strong-limit' and `undo-outer-limit'. > An additional security measure would be to disable it by default: (put > 'revert-buffer 'disabled t). I think making it easy to type only to make it harder to use would be both contradictory and self-defeating. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 9:37 ` Gregory Heytings 2021-02-03 10:50 ` Robert Pluim 2021-02-04 0:41 ` Stefan Kangas @ 2021-02-04 5:39 ` Richard Stallman 2 siblings, 0 replies; 294+ messages in thread From: Richard Stallman @ 2021-02-04 5:39 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > I see another disadvantage in that binding: revert-buffer is a drastic > > operation, so we should not make it easier. I think it is wiser not to > > put it on a key -- which is why I never did. > > > It's true that it is a drastic operation, but it asks for confirmation, > and it can be undone. An additional security measure would be to disable > it by default: (put 'revert-buffer 'disabled t). Typing 8 characters to invoke the command is not a big burden. I think it is a reasonable length for a command like this. How many times per day do you do revert-buffer in a file-visiting buffer? -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 5:52 ` Richard Stallman 2021-02-03 9:37 ` Gregory Heytings @ 2021-02-03 19:22 ` Sean Whitton 2021-02-04 5:41 ` Richard Stallman 1 sibling, 1 reply; 294+ messages in thread From: Sean Whitton @ 2021-02-03 19:22 UTC (permalink / raw) To: rms, Ergus; +Cc: emacs-devel Hello, > I see another disadvantage in that binding: revert-buffer is a drastic > operation, so we should not make it easier. I think it is wiser > not to put it on a key -- which is why I never did. You can easily undo it, however, with a quick C-/. -- Sean Whitton ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-03 19:22 ` Sean Whitton @ 2021-02-04 5:41 ` Richard Stallman 2021-02-04 8:49 ` Gregory Heytings 0 siblings, 1 reply; 294+ messages in thread From: Richard Stallman @ 2021-02-04 5:41 UTC (permalink / raw) To: Sean Whitton; +Cc: spacibba, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > You can easily undo it, however, with a quick C-/. I think that is limited to files under a certain size. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 5:41 ` Richard Stallman @ 2021-02-04 8:49 ` Gregory Heytings 2021-02-04 8:52 ` Lars Ingebrigtsen 0 siblings, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 8:49 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-devel >> You can easily undo it, however, with a quick C-/. > > I think that is limited to files under a certain size. > Yes, that limit is 'undo-outer-limit', set to 22 MB by default. Unfortunately, when you execute 'revert-buffer' on such a large buffer, you get a warning _after_ the reversion has happened that you cannot undo it anymore: "Warning (undo): Buffer '...' undo info was ... bytes long. The undo info was discarded because it exceeded `undo-outer-limit'." It would perhaps make sense to ask for confirmation _before_ executing the command ("The command '...' will discard undo info, really do it? (yes or no)"). ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 8:49 ` Gregory Heytings @ 2021-02-04 8:52 ` Lars Ingebrigtsen 2021-02-04 9:09 ` Lars Ingebrigtsen 0 siblings, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 8:52 UTC (permalink / raw) To: Gregory Heytings; +Cc: Richard Stallman, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > It would perhaps make sense to ask for confirmation _before_ executing > the command ("The command '...' will discard undo info, really do it? > (yes or no)"). Makes sense to me. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 8:52 ` Lars Ingebrigtsen @ 2021-02-04 9:09 ` Lars Ingebrigtsen 2021-02-04 9:49 ` Gregory Heytings 0 siblings, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 9:09 UTC (permalink / raw) To: Gregory Heytings; +Cc: Richard Stallman, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Gregory Heytings <gregory@heytings.org> writes: > >> It would perhaps make sense to ask for confirmation _before_ executing >> the command ("The command '...' will discard undo info, really do it? >> (yes or no)"). > > Makes sense to me. Or... if it could offer to to keep the undo info, even if it's over the current general limit, that would be even nicer, perhaps? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 9:09 ` Lars Ingebrigtsen @ 2021-02-04 9:49 ` Gregory Heytings 2021-02-04 10:10 ` Lars Ingebrigtsen 2021-02-04 11:08 ` Eli Zaretskii 0 siblings, 2 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 9:49 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Richard Stallman, emacs-devel >>> It would perhaps make sense to ask for confirmation _before_ executing >>> the command ("The command '...' will discard undo info, really do it? >>> (yes or no)"). >> >> Makes sense to me. > > Or... if it could offer to to keep the undo info, even if it's over the > current general limit, that would be even nicer, perhaps? > I don't have strong feelings about this. Perhaps offering to keep the undo info after the command has been executed would be nicer indeed. But not executing the command before a confirmation is perhaps less risky. It seems to me that if you see such a question before the command is executed, the question will have all your attention, because what you wanted did not happen yet. If you see it after the command is executed, the risk of answering "no" without really thinking about it is higher. On a side note, I don't understand the "At garbage collection time" in the doc string of "undo-outer-limit": Outer limit on size of undo information for one command. At garbage collection time, if the current command has produced more than this much undo information, it discards the info and displays a warning. This is a last-ditch limit to prevent memory overflow. It seems to me that this happens when the command is executed, not "at garbage collection time". ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 9:49 ` Gregory Heytings @ 2021-02-04 10:10 ` Lars Ingebrigtsen 2021-02-04 10:20 ` Gregory Heytings 2021-02-04 15:16 ` Eli Zaretskii 2021-02-04 11:08 ` Eli Zaretskii 1 sibling, 2 replies; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 10:10 UTC (permalink / raw) To: Gregory Heytings; +Cc: Richard Stallman, emacs-devel Gregory Heytings <gregory@heytings.org> writes: >> Or... if it could offer to to keep the undo info, even if it's over >> the current general limit, that would be even nicer, perhaps? > > I don't have strong feelings about this. Perhaps offering to keep the > undo info after the command has been executed would be nicer indeed. > But not executing the command before a confirmation is perhaps less > risky. I was thinking about asking before doing anything, if that's practically possible, but I haven't looked at the code. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 10:10 ` Lars Ingebrigtsen @ 2021-02-04 10:20 ` Gregory Heytings 2021-02-04 10:25 ` Lars Ingebrigtsen 2021-02-04 15:16 ` Eli Zaretskii 1 sibling, 1 reply; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 10:20 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Richard Stallman, emacs-devel >>> Or... if it could offer to to keep the undo info, even if it's over >>> the current general limit, that would be even nicer, perhaps? >> >> I don't have strong feelings about this. Perhaps offering to keep the >> undo info after the command has been executed would be nicer indeed. >> But not executing the command before a confirmation is perhaps less >> risky. > > I was thinking about asking before doing anything, if that's practically > possible, but I haven't looked at the code. > I misunderstood what you said indeed. I think asking before doing anything would be okay, but I guess in that case it would be necessary to introduce an "undo-outer-outer-limit" at, say, 250 MB, above which it would not be possible to keep the undo info. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 10:20 ` Gregory Heytings @ 2021-02-04 10:25 ` Lars Ingebrigtsen 2021-02-04 12:26 ` Gregory Heytings 0 siblings, 1 reply; 294+ messages in thread From: Lars Ingebrigtsen @ 2021-02-04 10:25 UTC (permalink / raw) To: Gregory Heytings; +Cc: Richard Stallman, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > I misunderstood what you said indeed. I think asking before doing > anything would be okay, but I guess in that case it would be necessary > to introduce an "undo-outer-outer-limit" at, say, 250 MB, above which > it would not be possible to keep the undo info. Ideally, we could ask "this action will take <foo> MB; really do it?", and we won't need any new variable. But like I said, I don't know how feasible this is to ask before the doing the action. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 10:25 ` Lars Ingebrigtsen @ 2021-02-04 12:26 ` Gregory Heytings 0 siblings, 0 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 12:26 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel >> I misunderstood what you said indeed. I think asking before doing >> anything would be okay, but I guess in that case it would be necessary >> to introduce an "undo-outer-outer-limit" at, say, 250 MB, above which >> it would not be possible to keep the undo info. > > Ideally, we could ask "this action will take <foo> MB; really do it?", > and we won't need any new variable. > > But like I said, I don't know how feasible this is to ask before the > doing the action. > In fact that option already exists (almost): undo-ask-before-discard. It would make sense to set its default value to t instead of nil. I said "almost" because it asks after executing the command, not before. But at least it asks... ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 10:10 ` Lars Ingebrigtsen 2021-02-04 10:20 ` Gregory Heytings @ 2021-02-04 15:16 ` Eli Zaretskii 1 sibling, 0 replies; 294+ messages in thread From: Eli Zaretskii @ 2021-02-04 15:16 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, rms, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Thu, 04 Feb 2021 11:10:20 +0100 > Cc: Richard Stallman <rms@gnu.org>, emacs-devel@gnu.org > > I was thinking about asking before doing anything, if that's practically > possible, but I haven't looked at the code. I don't think it's possible, since the messages comes from a function called by GC. At least this isn't an easy local change. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 9:49 ` Gregory Heytings 2021-02-04 10:10 ` Lars Ingebrigtsen @ 2021-02-04 11:08 ` Eli Zaretskii 2021-02-04 12:26 ` Gregory Heytings 1 sibling, 1 reply; 294+ messages in thread From: Eli Zaretskii @ 2021-02-04 11:08 UTC (permalink / raw) To: emacs-devel, Gregory Heytings, Lars Ingebrigtsen; +Cc: Richard Stallman On February 4, 2021 11:49:15 AM GMT+02:00, Gregory Heytings <gregory@heytings.org> wrote: > > On a side note, I don't understand the "At garbage collection time" in > the > doc string of "undo-outer-limit": > > Outer limit on size of undo information for one command. > At garbage collection time, if the current command has produced more > than > this much undo information, it discards the info and displays a > warning. > This is a last-ditch limit to prevent memory overflow. > > It seems to me that this happens when the command is executed, not "at > > garbage collection time". That discarding of the undo info happens in a function that compacts buffers and truncates their undo lists. That function is called from GC. If you see the message when the command is executed, it simply means that GC is called immediately after the command or even while the command still runs. ^ permalink raw reply [flat|nested] 294+ messages in thread
* Re: Concern about new binding. 2021-02-04 11:08 ` Eli Zaretskii @ 2021-02-04 12:26 ` Gregory Heytings 0 siblings, 0 replies; 294+ messages in thread From: Gregory Heytings @ 2021-02-04 12:26 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel >> On a side note, I don't understand the "At garbage collection time" in >> the doc string of "undo-outer-limit": >> >> Outer limit on size of undo information for one command. At garbage >> collection time, if the current command has produced more than this >> much undo information, it discards the info and displays a warning. >> This is a last-ditch limit to prevent memory overflow. >> >> It seems to me that this happens when the command is executed, not "at >> garbage collection time". > > That discarding of the undo info happens in a function that compacts > buffers and truncates their undo lists. That function is called from > GC. If you see the message when the command is executed, it simply > means that GC is called immediately after the command or even while the > command still runs. > You are correct. But with the default Emacs values, "gc-cons-threshold" is 800000 and "undo-outer-limit" is 24000000, GC will happen immediately. ^ permalink raw reply [flat|nested] 294+ messages in thread
end of thread, other threads:[~2021-02-16 5:37 UTC | newest] Thread overview: 294+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20210202134950.vybbpf3iewbymfjo.ref@Ergus> 2021-02-02 13:49 ` Concern about new binding Ergus 2021-02-02 15:21 ` Kévin Le Gouguec 2021-02-02 18:47 ` Óscar Fuentes 2021-02-02 18:53 ` Eli Zaretskii 2021-02-02 19:00 ` Óscar Fuentes 2021-02-02 19:16 ` Eli Zaretskii 2021-02-02 20:03 ` Óscar Fuentes 2021-02-02 22:14 ` [External] : " Drew Adams 2021-02-03 3:35 ` Eli Zaretskii 2021-02-03 4:44 ` Drew Adams 2021-02-03 5:36 ` Eli Zaretskii 2021-02-03 16:03 ` Drew Adams 2021-02-03 16:37 ` Stefan Monnier 2021-02-03 17:02 ` Eli Zaretskii 2021-02-05 5:46 ` Richard Stallman 2021-02-05 7:54 ` Eli Zaretskii 2021-02-05 10:04 ` Robert Pluim 2021-02-05 11:34 ` Eli Zaretskii 2021-02-05 18:27 ` Drew Adams 2021-02-07 5:33 ` Richard Stallman 2021-02-07 13:22 ` Robert Pluim 2021-02-07 14:54 ` Ergus 2021-02-07 18:44 ` Drew Adams 2021-02-07 5:59 ` Yuri Khan 2021-02-05 16:55 ` Drew Adams 2021-02-02 19:07 ` Dmitry Gutov 2021-02-02 19:14 ` Eli Zaretskii 2021-02-05 5:46 ` Richard Stallman 2021-02-05 7:11 ` Sean Whitton 2021-02-05 12:36 ` Dmitry Gutov 2021-02-05 18:31 ` [External] : " Drew Adams 2021-02-07 5:33 ` Richard Stallman 2021-02-07 18:19 ` Sean Whitton 2021-02-08 3:43 ` Richard Stallman 2021-02-08 5:41 ` Matt Armstrong 2021-02-08 6:06 ` Sean Whitton 2021-02-08 15:14 ` Eli Zaretskii 2021-02-08 18:00 ` Sean Whitton 2021-02-08 17:56 ` Matt Armstrong 2021-02-09 6:03 ` Richard Stallman 2021-02-09 16:22 ` Eli Zaretskii 2021-02-08 6:11 ` Sean Whitton 2021-02-12 9:29 ` Jean Louis 2021-02-13 3:26 ` Richard Stallman 2021-02-13 11:32 ` Rmail filter, or using sieve - was " Jean Louis 2021-02-05 8:02 ` Eli Zaretskii 2021-02-05 8:46 ` Eli Zaretskii 2021-02-05 10:21 ` Robert Pluim 2021-02-07 5:43 ` Richard Stallman 2021-02-07 15:07 ` Eli Zaretskii 2021-02-08 3:44 ` Richard Stallman 2021-02-08 15:09 ` Eli Zaretskii 2021-02-07 5:33 ` Richard Stallman 2021-02-02 22:07 ` [External] : " Drew Adams 2021-02-03 5:52 ` Richard Stallman 2021-02-03 6:08 ` Kévin Le Gouguec 2021-02-03 7:05 ` Eli Zaretskii 2021-02-03 16:12 ` [External] : " Drew Adams 2021-02-03 17:13 ` Eli Zaretskii 2021-02-03 18:01 ` spacibba--- via Emacs development discussions. 2021-02-03 18:14 ` Eli Zaretskii 2021-02-03 22:16 ` Ergus 2021-02-04 0:41 ` Stefan Kangas 2021-02-04 7:00 ` Ergus 2021-02-04 15:05 ` Eli Zaretskii 2021-02-04 15:56 ` Gregory Heytings 2021-02-04 16:28 ` Eli Zaretskii 2021-02-04 16:42 ` Gregory Heytings 2021-02-05 5:49 ` Richard Stallman 2021-02-04 16:46 ` Lars Ingebrigtsen 2021-02-04 17:55 ` Eli Zaretskii 2021-02-04 19:29 ` Lars Ingebrigtsen 2021-02-04 20:23 ` Joost Kremers 2021-02-04 20:52 ` Lars Ingebrigtsen 2021-02-05 15:58 ` Basil L. Contovounesios 2021-02-06 9:57 ` Lars Ingebrigtsen 2021-02-04 21:00 ` Kévin Le Gouguec 2021-02-04 21:15 ` Thibaut Verron 2021-02-04 22:02 ` Kévin Le Gouguec 2021-02-12 9:17 ` Jean Louis 2021-02-12 17:28 ` Kévin Le Gouguec 2021-02-04 21:15 ` Gregory Heytings 2021-02-04 22:12 ` Lars Ingebrigtsen 2021-02-05 0:45 ` [External] : " Drew Adams 2021-02-05 4:13 ` Karl Fogel 2021-02-05 7:27 ` Jose A. Ortega Ruiz 2021-02-05 23:38 ` Karl Fogel 2021-02-06 1:36 ` jao 2021-02-06 2:31 ` Karl Fogel 2021-02-12 9:07 ` Jean Louis 2021-02-12 13:27 ` Dmitry Gutov 2021-02-05 18:22 ` Drew Adams 2021-02-12 8:53 ` Jean Louis 2021-02-12 9:08 ` Thibaut Verron 2021-02-04 22:24 ` Juri Linkov 2021-02-05 8:59 ` Lars Ingebrigtsen 2021-02-05 9:12 ` Juri Linkov 2021-02-06 9:56 ` Lars Ingebrigtsen 2021-02-06 10:09 ` Gregory Heytings 2021-02-06 18:24 ` [External] : " Drew Adams 2021-02-06 19:20 ` Juri Linkov 2021-02-07 12:08 ` Lars Ingebrigtsen 2021-02-07 12:39 ` Lars Ingebrigtsen 2021-02-07 14:52 ` Ergus 2021-02-07 20:44 ` Lars Ingebrigtsen 2021-02-08 5:49 ` Teemu Likonen 2021-02-07 18:43 ` [External] : " Drew Adams 2021-02-07 23:57 ` Ergus 2021-02-08 1:18 ` Drew Adams 2021-02-10 8:49 ` Alfred M. Szmidt 2021-02-09 23:22 ` Karthik Chikmagalur 2021-02-15 18:15 ` Sean Whitton 2021-02-16 2:13 ` Karthik Chikmagalur 2021-02-16 5:37 ` Sean Whitton 2021-02-06 19:32 ` Sean Whitton 2021-02-06 19:58 ` Eli Zaretskii 2021-02-06 20:09 ` Sean Whitton 2021-02-06 20:20 ` Eli Zaretskii 2021-02-06 20:28 ` Sean Whitton 2021-02-06 20:37 ` Lars Ingebrigtsen 2021-02-06 20:44 ` Gregory Heytings 2021-02-06 20:49 ` Lars Ingebrigtsen 2021-02-06 21:00 ` Gregory Heytings 2021-02-06 21:02 ` Andreas Schwab 2021-02-06 20:59 ` Sean Whitton 2021-02-05 9:14 ` Thibaut Verron 2021-02-05 12:39 ` Dmitry Gutov 2021-02-04 23:20 ` Jose A. Ortega Ruiz 2021-02-05 0:46 ` [External] : " Drew Adams 2021-02-06 2:37 ` Richard Stallman 2021-02-05 7:22 ` Lars Ingebrigtsen 2021-02-05 7:51 ` jao 2021-02-04 18:02 ` Sean Whitton 2021-02-04 18:08 ` 28.0.50; Move revert-buffer global binding into a prefix map Sean Whitton 2021-02-04 19:49 ` bug#46300: [External] : " Drew Adams 2021-02-07 12:31 ` bug#46300: " Lars Ingebrigtsen 2021-02-07 12:31 ` Lars Ingebrigtsen 2021-02-07 18:41 ` bug#46300: [External] : " Drew Adams 2021-02-07 18:41 ` Drew Adams 2021-02-05 5:13 ` Concern about new binding Ergus 2021-02-06 7:28 ` Teemu Likonen 2021-02-06 9:40 ` Gregory Heytings 2021-02-06 9:59 ` Teemu Likonen 2021-02-04 16:06 ` [External] : " Drew Adams 2021-02-05 5:49 ` Richard Stallman 2021-02-05 8:16 ` Eli Zaretskii 2021-02-05 9:11 ` Thibaut Verron 2021-02-05 11:15 ` Eli Zaretskii 2021-02-05 11:35 ` Thibaut Verron 2021-02-05 12:55 ` Dmitry Gutov 2021-02-05 18:31 ` Drew Adams 2021-02-05 18:24 ` Drew Adams 2021-02-05 18:46 ` Eli Zaretskii 2021-02-05 19:41 ` Eli Zaretskii 2021-02-07 5:33 ` Richard Stallman 2021-02-07 15:05 ` Eli Zaretskii 2021-02-07 20:12 ` Drew Adams 2021-02-08 3:44 ` Richard Stallman 2021-02-05 9:21 ` Gregory Heytings 2021-02-05 9:38 ` Joost Kremers 2021-02-05 10:42 ` Gregory Heytings 2021-02-05 18:29 ` [External] : " Drew Adams 2021-02-06 1:32 ` Joost Kremers 2021-02-06 10:59 ` Gregory Heytings 2021-02-06 12:08 ` Andreas Schwab 2021-02-05 10:51 ` Thibaut Verron 2021-02-05 18:30 ` [External] : " Drew Adams 2021-02-05 18:28 ` Drew Adams 2021-02-12 7:34 ` Jean Louis 2021-02-05 11:21 ` Eli Zaretskii 2021-02-05 12:07 ` Gregory Heytings 2021-02-05 12:39 ` Eli Zaretskii 2021-02-05 12:39 ` Thibaut Verron 2021-02-05 12:41 ` Thibaut Verron 2021-02-06 15:23 ` Stefan Kangas 2021-02-06 18:19 ` Ergus 2021-02-12 9:47 ` Jean Louis 2021-02-05 18:31 ` [External] : " Drew Adams 2021-02-05 19:14 ` Ergus via Emacs development discussions. 2021-02-05 19:43 ` Eli Zaretskii 2021-02-05 23:57 ` chad 2021-02-05 18:26 ` [External] : " Drew Adams 2021-02-05 20:26 ` Gregory Heytings 2021-02-05 20:54 ` Drew Adams 2021-02-05 21:41 ` Gregory Heytings 2021-02-05 22:43 ` Drew Adams 2021-02-05 23:38 ` Gregory Heytings 2021-02-06 0:45 ` Drew Adams 2021-02-06 9:29 ` Gregory Heytings 2021-02-06 18:09 ` Drew Adams 2021-02-12 7:59 ` Jean Louis 2021-02-12 17:35 ` Drew Adams 2021-02-12 8:21 ` Alfred M. Szmidt 2021-02-12 9:09 ` Gregory Heytings 2021-02-12 11:26 ` Eli Zaretskii 2021-02-12 15:11 ` Alfred M. Szmidt 2021-02-12 15:30 ` Eli Zaretskii 2021-02-12 16:56 ` Gregory Heytings 2021-02-12 17:37 ` Drew Adams 2021-02-12 18:25 ` Gregory Heytings 2021-02-12 21:41 ` Super key in console? Jean Louis 2021-02-14 18:43 ` [External] : Re: Concern about new binding Alfred M. Szmidt 2021-02-14 19:14 ` Gregory Heytings 2021-02-15 10:57 ` Alfred M. Szmidt 2021-02-15 11:45 ` Gregory Heytings 2021-02-15 16:19 ` Alfred M. Szmidt 2021-02-15 13:44 ` Stefan Monnier 2021-02-12 17:36 ` Drew Adams 2021-02-14 18:43 ` Alfred M. Szmidt 2021-02-13 1:20 ` Karthik Chikmagalur 2021-02-13 10:55 ` Jean Louis 2021-02-13 8:22 ` Philip Kaludercic 2021-02-07 5:43 ` Richard Stallman 2021-02-12 8:35 ` Jean Louis 2021-02-12 8:19 ` [External] : " Jean Louis 2021-02-12 11:19 ` Eli Zaretskii 2021-02-12 8:05 ` Jean Louis 2021-02-04 7:39 ` Joost Kremers 2021-02-02 16:28 ` [External] : " Drew Adams 2021-02-02 16:50 ` Karl Fogel 2021-02-02 17:33 ` Invoking Magit (was: Concern about new binding) Stefan Monnier 2021-02-02 18:29 ` Invoking Magit Karl Fogel 2021-02-02 19:59 ` Stefan Monnier 2021-02-02 22:49 ` Karl Fogel 2021-02-02 17:45 ` Concern about new binding Thibaut Verron 2021-02-02 18:04 ` Sean Whitton 2021-02-02 18:52 ` Karl Fogel 2021-02-02 18:51 ` Karl Fogel 2021-02-02 20:02 ` Thibaut Verron 2021-02-02 18:56 ` Basil L. Contovounesios 2021-02-05 5:46 ` Richard Stallman 2021-02-02 22:10 ` Gregory Heytings 2021-02-02 22:22 ` [External] : " Drew Adams 2021-02-03 1:02 ` Ergus 2021-02-03 2:32 ` Drew Adams 2021-02-03 0:56 ` Ergus 2021-02-03 3:28 ` Eli Zaretskii 2021-02-03 3:58 ` Ergus 2021-02-03 5:17 ` Eli Zaretskii 2021-02-03 7:40 ` martin rudalics 2021-02-03 9:36 ` Gregory Heytings 2021-02-03 11:06 ` martin rudalics 2021-02-04 5:39 ` Richard Stallman 2021-02-03 5:52 ` Richard Stallman 2021-02-03 9:37 ` Gregory Heytings 2021-02-03 10:50 ` Robert Pluim 2021-02-03 11:12 ` Alfred M. Szmidt 2021-02-03 11:20 ` Andreas Schwab 2021-02-03 11:27 ` Alfred M. Szmidt 2021-02-03 11:43 ` Andreas Schwab 2021-02-03 12:51 ` Alfred M. Szmidt 2021-02-03 13:15 ` Thibaut Verron 2021-02-03 15:00 ` Eli Zaretskii 2021-02-03 15:13 ` Dmitry Gutov 2021-02-03 16:29 ` [External] : " Drew Adams 2021-02-03 17:12 ` Yuan Fu 2021-02-03 17:24 ` Eli Zaretskii 2021-02-03 16:27 ` Drew Adams 2021-02-03 17:17 ` Eli Zaretskii 2021-02-04 5:46 ` Richard Stallman 2021-02-04 15:02 ` Eli Zaretskii 2021-02-05 5:50 ` Richard Stallman 2021-02-05 7:12 ` Sean Whitton 2021-02-05 8:30 ` Eli Zaretskii 2021-02-03 16:23 ` Drew Adams 2021-02-04 5:48 ` Richard Stallman 2021-02-03 13:31 ` Andreas Schwab 2021-02-03 13:43 ` Alfred M. Szmidt 2021-02-03 14:10 ` Andreas Schwab 2021-02-04 5:47 ` Richard Stallman 2021-02-03 16:21 ` [External] : " Drew Adams 2021-02-03 16:19 ` Drew Adams 2021-02-03 16:18 ` Drew Adams 2021-02-03 16:16 ` Drew Adams 2021-02-04 17:03 ` Juri Linkov 2021-02-03 11:31 ` Basil L. Contovounesios 2021-02-04 5:39 ` Richard Stallman 2021-02-04 8:31 ` Robert Pluim 2021-02-03 16:15 ` [External] : " Drew Adams 2021-02-04 0:41 ` Stefan Kangas 2021-02-04 5:39 ` Richard Stallman 2021-02-03 19:22 ` Sean Whitton 2021-02-04 5:41 ` Richard Stallman 2021-02-04 8:49 ` Gregory Heytings 2021-02-04 8:52 ` Lars Ingebrigtsen 2021-02-04 9:09 ` Lars Ingebrigtsen 2021-02-04 9:49 ` Gregory Heytings 2021-02-04 10:10 ` Lars Ingebrigtsen 2021-02-04 10:20 ` Gregory Heytings 2021-02-04 10:25 ` Lars Ingebrigtsen 2021-02-04 12:26 ` Gregory Heytings 2021-02-04 15:16 ` Eli Zaretskii 2021-02-04 11:08 ` Eli Zaretskii 2021-02-04 12:26 ` Gregory Heytings
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.