* Suggested experimental test @ 2021-03-20 9:03 Gregory Heytings 2021-03-20 11:14 ` Jean Louis ` (2 more replies) 0 siblings, 3 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-20 9:03 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 441 bytes --] > > This concludes our first experimental test on the devel branch. The > amount of feedback wasn't overwhelming, but we did get some -- and I > guess the `M-o' command wasn't very popular, so I'm not really that > surprised. > > So I think it was a moderately successful experiment, and we should use > this way of trying out user interface changes more. > May I suggest the attached, slightly more controversial, experimental test? [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: Type: text/x-diff; name=0001-lisp-loadup.el-Change-the-C-o-open-line-binding-expe.patch, Size: 2185 bytes --] From 8282fa547f79230a112da9e4e49c4149d4c31f7f Mon Sep 17 00:00:00 2001 From: Gregory Heytings <gregory@heytings.org> Date: Fri, 19 Mar 2021 18:51:49 +0000 Subject: [PATCH] * lisp/loadup.el: Change the 'C-o' ('open-line') binding experimentally --- lisp/loadup.el | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lisp/loadup.el b/lisp/loadup.el index 4a0b8f508c..02808365f0 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -477,6 +477,40 @@ \f +(define-key global-map "\C-o" #'free-ctl-o) + +(defun free-ctl-o () + (interactive) + (setq prefix-arg current-prefix-arg) + (message "Repeat C-o to insert newlines after point, or type C-h or ? for help") + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-o") #'open-line) + (define-key map (kbd "C-h") #'free-ctl-o-explain) + (define-key map (kbd "?") #'free-ctl-o-explain) + (set-transient-map map t))) + +(defun free-ctl-o-explain () + (interactive) + (switch-to-buffer "*Change to C-o*") + (let ((inhibit-read-only t)) + (erase-buffer) + (insert "[Type `q' to exit this buffer.]\n\n" + "We've disabled the normal `C-o' binding for a month (until April\n" + "23th, 2021) in the development version of GNU Emacs, while keeping\n" + "the `open-line' command that was bound to `C-o' on repeated `C-o'.\n\n" + "If this change doesn't annoy too many people, the plan is to leave\n" + "the `C-o' key unbound, except when it is repeated, for usage by\n" + "third-party packages.\n\n" + "If you wish to restore the `C-o' binding, you can put the following\n" + "in your .emacs or .emacs.d/init.el file:\n\n" + "(global-set-key (kbd \"C-o\") #'open-line)\n\n" + "If you wish to protest this change, please send you thoughts to the\n" + "emacs-devel@gnu.org mailing list.\n")) + (goto-char (point-min)) + (special-mode)) + +\f + (if dump-mode (let ((output (cond ((equal dump-mode "pdump") "emacs.pdmp") ((equal dump-mode "dump") "emacs") -- 2.30.1 ^ permalink raw reply related [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-20 9:03 Suggested experimental test Gregory Heytings @ 2021-03-20 11:14 ` Jean Louis 2021-03-20 11:27 ` Eli Zaretskii 2021-03-20 11:34 ` Gregory Heytings 2021-03-20 12:37 ` Proposal to remove C-o binding [was: Suggested experimental test] Alan Mackenzie 2021-03-21 6:53 ` Suggested experimental test Lars Ingebrigtsen 2 siblings, 2 replies; 154+ messages in thread From: Jean Louis @ 2021-03-20 11:14 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-20 12:04]: > + "We've disabled the normal `C-o' binding for a month (until April\n" > + "23th, 2021) in the development version of GNU Emacs, > while keeping\n Yes, go ahead and make the test, why not. I like testing, but I also do not like changing this C-o to anything else than what it is. This time I will immediately revert it back due to how many times I use C-o in Emacs. C-o is in other editors because of Emacs standard keybindings also in many other Emacs related editors. I use zile editor, and mg editor and e3em editor depeding on what system I am, console or GUI, and if Emacs is installed or not. In all those editors I use C-o Also is one test like M-o now suppposed to endorse many new tests that are going against standard and well used keybindings. Imagine just how that impacts people who depend on instructions spread all over Internet for Emacs standard key bindings. Rutgers School of Arts and Sciences publishes it: https://resources.cs.rutgers.edu/docs/emacs-command-summary/ Yale has article "How to use Emacs" in the clas https://zoo.cs.yale.edu/classes/cs210/help/emacs.html Stanford: http://www-tcad.stanford.edu/local/DOC/emacs_21.html Michigan State University: https://www.cse.msu.edu/Resources/Facilities/Howto/TextEditing.php Columbia: https://cuit.columbia.edu/emacs Before making proposals out of the blue, I suggest that from a list of all key bindings then make: - a list of very basic standard and wide spread key bindings shall be made, that most probably should not change, as that is where one has to be reluctant. C-f is a sample member of this list, IMHO C-o as well. - with a list of other keys possible for some changes due to their improper placement, as we have seen that M-o was improperly placed globally instead of only in enriched mode. - do tests on the latter. Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-20 11:14 ` Jean Louis @ 2021-03-20 11:27 ` Eli Zaretskii 2021-03-20 11:34 ` Gregory Heytings 1 sibling, 0 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-20 11:27 UTC (permalink / raw) To: Jean Louis; +Cc: gregory, larsi, emacs-devel > Date: Sat, 20 Mar 2021 14:14:42 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org > > - with a list of other keys possible for some changes due to their > improper placement, as we have seen that M-o was improperly placed > globally instead of only in enriched mode. M-o is useful in Text mode (and hence many of its derivatives), not just in Enriched mode. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-20 11:14 ` Jean Louis 2021-03-20 11:27 ` Eli Zaretskii @ 2021-03-20 11:34 ` Gregory Heytings 1 sibling, 0 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-20 11:34 UTC (permalink / raw) To: Jean Louis; +Cc: Lars Ingebrigtsen, emacs-devel > > Before making proposals out of the blue, I suggest... > Before commenting on a proposed experiment, I suggest to read it (not just its two first lines), and possibly to try it. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Proposal to remove C-o binding [was: Suggested experimental test] 2021-03-20 9:03 Suggested experimental test Gregory Heytings 2021-03-20 11:14 ` Jean Louis @ 2021-03-20 12:37 ` Alan Mackenzie 2021-03-21 6:53 ` Suggested experimental test Lars Ingebrigtsen 2 siblings, 0 replies; 154+ messages in thread From: Alan Mackenzie @ 2021-03-20 12:37 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel Hello, Gregory. On Sat, Mar 20, 2021 at 09:03:39 +0000, Gregory Heytings wrote: > > This concludes our first experimental test on the devel branch. The > > amount of feedback wasn't overwhelming, but we did get some -- and I > > guess the `M-o' command wasn't very popular, so I'm not really that > > surprised. I anticipate there will be quite a lot of resentment about this when we release Emacs 28.1. > > So I think it was a moderately successful experiment, and we should use > > this way of trying out user interface changes more. Hmm. > May I suggest the attached, slightly more controversial, experimental > test? I suggest it remains just a suggestion - at least for now. We won't know how well or badly the removal of M-o will go until after the release of Emacs 28. C-o is a much used binding. Replacing it with the less convenient C-o C-o binding is going to annoy people greatly. Also, we don't really need to free up C-o - we've already got all of M-o unused. Where is this all going to stop? [ .... ] -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-20 9:03 Suggested experimental test Gregory Heytings 2021-03-20 11:14 ` Jean Louis 2021-03-20 12:37 ` Proposal to remove C-o binding [was: Suggested experimental test] Alan Mackenzie @ 2021-03-21 6:53 ` Lars Ingebrigtsen 2021-03-21 8:35 ` Alfred M. Szmidt 2021-03-21 10:48 ` Gregory Heytings 2 siblings, 2 replies; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-21 6:53 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel Gregory Heytings <gregory@heytings.org> writes: > May I suggest the attached, slightly more controversial, experimental > test? Removing `C-o' has already been suggested, and there's already been a lot of negative feedback on that, if I remember correctly. So I don't think there's much point in doing this experiment. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 6:53 ` Suggested experimental test Lars Ingebrigtsen @ 2021-03-21 8:35 ` Alfred M. Szmidt 2021-03-21 13:20 ` Gregory Heytings 2021-03-21 10:48 ` Gregory Heytings 1 sibling, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-21 8:35 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, emacs-devel > May I suggest the attached, slightly more controversial, experimental > test? Removing `C-o' has already been suggested, and there's already been a lot of negative feedback on that, if I remember correctly. So I don't think there's much point in doing this experiment. I think there was less negative feedback about C-o than about removing M-o M-s and friends. Yet that was removed, and not even moved to another binding -- indeed, rather calls for keeping at least some where promptly ignored. Why not just remove all keybindings? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 8:35 ` Alfred M. Szmidt @ 2021-03-21 13:20 ` Gregory Heytings 2021-03-21 18:16 ` Alfred M. Szmidt 0 siblings, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-21 13:20 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel > > I think there was less negative feedback about C-o than about removing > M-o M-s and friends. Yet that was removed, and not even moved to > another binding -- indeed, rather calls for keeping at least some where > promptly ignored. > Don't worry, they are not ignored, but it is not possible to do everything in one go. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 13:20 ` Gregory Heytings @ 2021-03-21 18:16 ` Alfred M. Szmidt 2021-03-21 22:16 ` Gregory Heytings 0 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-21 18:16 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > I think there was less negative feedback about C-o than about removing > M-o M-s and friends. Yet that was removed, and not even moved to > another binding -- indeed, rather calls for keeping at least some where > promptly ignored. Don't worry, they are not ignored, but it is not possible to do everything in one go. So is the plan to readd keybindings center-FOO? What about C-o -- that seems to be hitting the trash can, for whatever reason. Some of these bindings (C-o for example) have existed for 40 years in Emacs (M-o M-s was once upon a time on M-s). There was alot of thought put into it back then, and the intent was to make it easy to write code and text. That was the main intent of Emacs, and main design decisions in the bindings. These "freeing up keybindings" initiatives make it harder for people to use Emacs, not easier. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 18:16 ` Alfred M. Szmidt @ 2021-03-21 22:16 ` Gregory Heytings 2021-03-21 22:54 ` Alfred M. Szmidt ` (3 more replies) 0 siblings, 4 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-21 22:16 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel > > So is the plan to readd keybindings center-FOO? > There is no clear predefined plan, just some ideas I'm currently experimenting with. > > What about C-o -- that seems to be hitting the trash can, for whatever > reason. Some of these bindings (C-o for example) have existed for 40 > years in Emacs (M-o M-s was once upon a time on M-s). > > There was alot of thought put into it back then, and the intent was to > make it easy to write code and text. That was the main intent of Emacs, > and main design decisions in the bindings. These "freeing up > keybindings" initiatives make it harder for people to use Emacs, not > easier. > C-o is not at all "hitting the trash can", at the moment there is nothing more than a proposal to conduct an experiment to make a (small?) change to its meaning. Even among the C-LETTER and M-LETTER keys, there are quite a few whose meaning have changed during the last 40 years. I know at least of: C-h, C-l, M-g, M-j, M-n, M-o, M-p, M-r and M-s. That's 9 keys out of 52. C-o was described as follows in the 1985 Emacs manual: "When you want to insert a new line of text before an existing line, you can do it by typing the new line of text, followed by RET. However, it may be easier to see what you are doing if you first make a blank line and then insert the desired text into it. This is easy to do using the key C-o, which inserts a newline after point but leaves point in front of the newline. After C-o, type the text for the new line. C-o F O O has the same effect as F O O RET, except for the final location of point." It seems clear that C-o was thought as a convenience command, not as an essential editing command. C-o is, by the way, not even mentioned in the tutorial. Emacs evolves very conservatively, and if at some point it becomes clear that some key binding is not useful for 99.9% of its users, there is no reason to keep it as is just because 40 years ago, under very different circumstances, it was considered convenient or useful. I'd say that Emacs is a bit like the C programming language, which evolves as conservatively as (or perhaps even more conservatively than) Emacs. Just because a function was considered useful and was included in the standard library 30 years ago does not mean that it should forever remain in the standard library. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 22:16 ` Gregory Heytings @ 2021-03-21 22:54 ` Alfred M. Szmidt 2021-03-21 23:05 ` Gregory Heytings 2021-03-22 3:33 ` Eli Zaretskii ` (2 subsequent siblings) 3 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-21 22:54 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > What about C-o -- that seems to be hitting the trash can, for whatever > reason. Some of these bindings (C-o for example) have existed for 40 > years in Emacs (M-o M-s was once upon a time on M-s). > > There was alot of thought put into it back then, and the intent was to > make it easy to write code and text. That was the main intent of Emacs, > and main design decisions in the bindings. These "freeing up > keybindings" initiatives make it harder for people to use Emacs, not > easier. C-o is not at all "hitting the trash can", at the moment there is nothing more than a proposal to conduct an experiment to make a (small?) change to its meaning. It isn't a small change to remove a feature completely. When asked to keep _a_ binding, it has been meet with silence and it has been more important to inconvinence users than to listen to them, so I can only assume that this will a similar case for C-o. The overal tone of the discussion of removing keybindings has been to remove them without considering users, and that it is more important to free them up at all costs. C-o is, by the way, not even mentioned in the tutorial. Not everything is mentioned in the tutorial, nor can it. Emacs evolves very conservatively, and if at some point it becomes clear that some key binding is not useful for 99.9% of its users, there is no reason to keep it as is just because 40 years ago, under very different circumstances, it was considered convenient or useful. emacs-devel is not even 1% of people using Emacs, and the more I see these statements the more I am inclined to think that people on this list don't use Emacs. When it has been suggested to actually do a poll, it is far to cumbersome, and instead complicated schemes are devised. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 22:54 ` Alfred M. Szmidt @ 2021-03-21 23:05 ` Gregory Heytings 2021-03-21 23:13 ` Alfred M. Szmidt 2021-03-22 11:07 ` Jean Louis 0 siblings, 2 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-21 23:05 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel > > It isn't a small change to remove a feature completely. When asked to > keep _a_ binding, it has been meet with silence and it has been more > important to inconvinence users than to listen to them, so I can only > assume that this will a similar case for C-o. > Your assumption is wrong. Please have a look at the proposed experiment: it moves open-line to repeated C-o. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 23:05 ` Gregory Heytings @ 2021-03-21 23:13 ` Alfred M. Szmidt 2021-03-21 23:46 ` Gregory Heytings 2021-03-22 11:07 ` Jean Louis 1 sibling, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-21 23:13 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > It isn't a small change to remove a feature completely. When asked to > keep _a_ binding, it has been meet with silence and it has been more > important to inconvinence users than to listen to them, so I can only > assume that this will a similar case for C-o. Your assumption is wrong. Neither center-line nor center-paragraph have been given an alternative binding. The same is also applicable for facemenu. Despite requests for it. Please have a look at the proposed experiment: it moves open-line to repeated C-o. A proposal is not reality, and such a behaviour would be yet again beyond annoying. How about doing polls first instead of doing this blind experiments where it will be far to late when these changes sneak into Emacs for them to be changed back. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 23:13 ` Alfred M. Szmidt @ 2021-03-21 23:46 ` Gregory Heytings 2021-03-22 0:40 ` Alfred M. Szmidt 2021-03-22 11:21 ` Jean Louis 0 siblings, 2 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-21 23:46 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel >>> It isn't a small change to remove a feature completely. When asked to >>> keep _a_ binding, it has been meet with silence and it has been more >>> important to inconvinence users than to listen to them, so I can only >>> assume that this will a similar case for C-o. >> >> Your assumption is wrong. > > Neither center-line nor center-paragraph have been given an alternative > binding. The same is also applicable for facemenu. Despite requests for > it. > This is another topic, unrelated to the current one, and as I said earlier I'm currently experimenting ways to readd these commands. I do this thinking specifically of you. >> Please have a look at the proposed experiment: it moves open-line to >> repeated C-o. > > A proposal is not reality, and such a behaviour would be yet again > beyond annoying. How about doing polls first instead of doing this > blind experiments > What kind of poll would you like to see? What would you consider to be a significant enough fraction of Emacs users? How would you poll them? There has been a survey a few months ago, and in spite of the fact that there were more than 7000 replies, many complained that the results were not representative. Moreover, polling with abstract questions is not a good way to discuss UI changes. The point of conducting experiments on the trunk is that users concretely experiment potential changes. > > where it will be far to late when these changes sneak into Emacs for > them to be changed back. > Fortunately, such changes are easy to revert for users who would dislike them, and the way to revert them is documented in the NEWS file. As I said, there have been many changes even to the C-LETTER and M-LETTER keys in the past, when it was thought that the key in question could be used in a better way. Another example, which I forgot in my previous list, is C-c, which was changed from exit-recursive-edit to a prefix key in Emacs 16, and exit-recursive-edit was moved to C-M-c. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 23:46 ` Gregory Heytings @ 2021-03-22 0:40 ` Alfred M. Szmidt 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 11:21 ` Jean Louis 1 sibling, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 0:40 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > Neither center-line nor center-paragraph have been given an alternative > binding. The same is also applicable for facemenu. Despite requests for > it. This is another topic, unrelated to the current one, and as I said earlier I'm currently experimenting ways to readd these commands. I do this thinking specifically of you. Thanks, I'm flattered, but I'd hope you rather consider those who do not read this list first than grumpy Emacs users. >> Please have a look at the proposed experiment: it moves open-line to >> repeated C-o. > > A proposal is not reality, and such a behaviour would be yet again > beyond annoying. How about doing polls first instead of doing this > blind experiments What kind of poll would you like to see? What would you consider to be a significant enough fraction of Emacs users? How would you poll them? There has been a survey a few months ago, and in spite of the fact that there were more than 7000 replies, many complained that the results were not representative. The best polling suggestion I've seen so far has been from rms, and those have had good track records over the years. Moreover, polling with abstract questions is not a good way to discuss UI changes. The point of conducting experiments on the trunk is that users concretely experiment potential changes. I think you can make these questions less abstract, even to the point of a yes / no question. "Do you use M-o (frobnicate-line)? Yes/No.". Sending out a questionare for each release would be unrealistic, so one could accumulate a set of proposal in release 20, send it out during release 21, and delibrate and implement for 22. One could also add some extra details, like if the change is for something in a very recent version such a long cycle isn't required, but if it is has existed since Emacs 18 it is. > where it will be far to late when these changes sneak into Emacs for > them to be changed back. Fortunately, such changes are easy to revert for users who would dislike them, and the way to revert them is documented in the NEWS file. From my experience, it isn't the case. The usual argument is that "we just changed it, lets keep it for a bit more" -- and then it becomes permanent. As I said, there have been many changes even to the C-LETTER and M-LETTER keys in the past, when it was thought that the key in question could be used in a better way. Another example, which I forgot in my previous list, is C-c, which was changed from exit-recursive-edit to a prefix key in Emacs 16, and exit-recursive-edit was moved to C-M-c. Elided much of that since if I didn't, my reply would become a rather longer rant. Changing the semantics slightly is I think less annoying than completle removing a keybinding. The bare minimum I think is that if removing a long standing keybinding, it should at least get a new one. Make it a three stage rocket, M-s got punted to M-o M-s .. this could get punted to H-x M-o M-s (or something slighly more paltable) ... and then removed. With actual polls inbetween to get a feel of what people outside this list prefer, but also a heavier handed touch of deciding on an actual policy of how exactly bindings should be mapped. The way Emacs did it is that C- is smaller than M- which is smaller than C-M-. Right now, there is no such decision process, and its quite random. As an example if I do not recall incorrectly, C-o used to insert new line, M-o would also adjust for indentation, and C-M-o would keep the same indentation as the current line. It is these small things that make Emacs make sense for new users. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 0:40 ` Alfred M. Szmidt @ 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 18:14 ` Alfred M. Szmidt 0 siblings, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 10:05 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel >>> Neither center-line nor center-paragraph have been given an >>> alternative binding. The same is also applicable for facemenu. >>> Despite requests for it. >> >> This is another topic, unrelated to the current one, and as I said >> earlier I'm currently experimenting ways to readd these commands. I do >> this thinking specifically of you. > > Thanks, I'm flattered, but I'd hope you rather consider those who do not > read this list first than grumpy Emacs users. > I do consider them, too. But I think that "grumpy Emacs users" who express themselves also speak for (at least some of) those who do not read this list. >> Moreover, polling with abstract questions is not a good way to discuss >> UI changes. The point of conducting experiments on the trunk is that >> users concretely experiment potential changes. > > I think you can make these questions less abstract, even to the point of > a yes / no question. "Do you use M-o (frobnicate-line)? Yes/No.". > Sending out a questionare for each release would be unrealistic, > That doesn't answer the main question: how do you concretely poll these users? and what would you consider to be a significant enough fraction of Emacs users for the poll to be representative? Would 500 answers be enough? 1000? 5000? 10000? What would you do with the result of such a poll? What if only 50 or 100 in those 10000 answer "yes"? Should the feature be kept for those 50 or 100? Moreover the result of a yes/no poll like "Do you use M-o (frobnicate-line)?" is not very useful: "No, I don't use it, because I did not know it exists" "No, I don't use it, I know it exists and I'm sure I'll never use it" "No, I don't use it at the moment, but I may use it in the future" "Yes, I do use it, but I use viper-mode/evil-mode, so it's not bound to M-o" "Yes, I do use it, but I bind it to another key in my init file and use M-o for something else" "Yes, I do use it, but not frequently, so I wouldn't mind if it were moved to another key" "Yes, I do use it, but not frequently, and I wouldn't mind if I had to use M-x frobnicate-line instead" "Yes, I do use it frequently, but I wouldn't mind if it were moved to another key" "Yes, I do use it frequently, and would prefer that it remains on the same key" "Yes, I do use it frequently, and would rebind it to the current key in my init file if its binding changed" ... are all valid answers with very different consequences, that cannot be seen in a yes/no poll. > > so one could accumulate a set of proposal in release 20, send it out > during release 21, and delibrate and implement for 22. > That would be unrealistic, it would mean a four to six years waiting period before an UI change can be implemented, long enough to discourage anyone in advance to even envision the possibility of proposing such a change. >> Fortunately, such changes are easy to revert for users who would >> dislike them, and the way to revert them is documented in the NEWS >> file. > > From my experience, it isn't the case. > Of course it is, for example the way to revert the M-o change is documented in the NEWS file, both for those who would like to only revert facemenu, and for those who would like to only revert the two center-foo commands. >> Another example, which I forgot in my previous list, is C-c, which was >> changed from exit-recursive-edit to a prefix key in Emacs 16, and >> exit-recursive-edit was moved to C-M-c. > > Changing the semantics slightly is I think less annoying than completle > removing a keybinding. > Changing "C-c" from exit-recursive-edit to a prefix key was not changing its semantics slightly, and the proposed experiment in this thread is not about completely removing a key binding, it is about changing its semantics slightly. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 10:05 ` Gregory Heytings @ 2021-03-22 18:14 ` Alfred M. Szmidt 2021-03-22 19:06 ` Gregory Heytings 0 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 18:14 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel That doesn't answer the main question: how do you concretely poll these users? and what would you consider to be a significant enough fraction of Emacs users for the poll to be representative? Would 500 answers be enough? 1000? 5000? 10000? I don't have the link at hand, but RMS had posted how to do exactly this time of poll. I can try to locate it for you if you want. What would you do with the result of such a poll? What if only 50 or 100 in those 10000 answer "yes"? Should the feature be kept for those 50 or 100? The idea behind a poll is to gather some data and get an idea of the overal situation. emacs-devel isn't a very good place for such information. Moreover the result of a yes/no poll like "Do you use M-o (frobnicate-line)?" is not very useful: What is the issue understanding those answers? They give some insight as to what users might prefer and what they do. > so one could accumulate a set of proposal in release 20, send it out > during release 21, and delibrate and implement for 22. That would be unrealistic, it would mean a four to six years waiting period before an UI change can be implemented, long enough to discourage anyone in advance to even envision the possibility of proposing such a change. Would that be a bad thing? Why is there such a hurry to change _existing_ behaviour, or specifically _removing_ existing behaviour? We aren't talking about every single UI change. Emacs is stable, and significant changes in the UI should take time (I consider C-o to be more significant than M-o -- which at least when it got modified the key got a different useful meaning). >> Fortunately, such changes are easy to revert for users who would >> dislike them, and the way to revert them is documented in the >> NEWS file. > > From my experience, it isn't the case. Of course it is, for example the way to revert the M-o change is documented in the NEWS file, both for those who would like to only revert facemenu, and for those who would like to only revert the two center-foo commands. We are misscommunicating, I am talking about restoring the previous behaviour in Emacs, not on a per user basis. The point here is that the suggestions have been removing featues, without replacing them. exit-recursive-edit got moved to a different binding, and the semantics of C-c got changed to something useful. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:14 ` Alfred M. Szmidt @ 2021-03-22 19:06 ` Gregory Heytings 2021-03-22 19:56 ` [External] : " Drew Adams 2021-03-22 21:08 ` Alfred M. Szmidt 0 siblings, 2 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 19:06 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: emacs-devel > > I don't have the link at hand, but RMS had posted how to do exactly this > time of poll. I can try to locate it for you if you want. > I would indeed be interested in seeing it. > > The point here is that the suggestions have been removing featues, > without replacing them. exit-recursive-edit got moved to a different > binding, and the semantics of C-c got changed to something useful. > Once again, the point of the suggested experiment is _not_ to remove a feature. open-line would be moved to a different binding, and the semantics of C-o would be changed to something useful. (Obviously, I'm not proposing this just to leave the that key unused.) ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [External] : Re: Suggested experimental test 2021-03-22 19:06 ` Gregory Heytings @ 2021-03-22 19:56 ` Drew Adams 2021-03-22 21:03 ` Alfred M. Szmidt 2021-03-22 21:08 ` Alfred M. Szmidt 1 sibling, 1 reply; 154+ messages in thread From: Drew Adams @ 2021-03-22 19:56 UTC (permalink / raw) To: Gregory Heytings, Alfred M. Szmidt; +Cc: emacs-devel@gnu.org > Obviously, I'm not proposing this just to leave the that key unused. Oh, but I wish that _were_ the proposal... Unused AND with an intention not to bind it by default at all. If we can remove preloading of facemenu or whatever then why can't we remove this or that default binding? Post the change in NEWS, with the code to reenable it for anyone who needs it: (global-set-key ...). I'm in favor of freeing up `C-o' for preferential use by 3rd-party code (e.g. as a prefix key or a repeating command or ...). I sympathize with anyone who has a longstanding habit of using some key that's been bound by default. But nothing is easier for a user than binding such a key. Voila. You asked for opinions. Apologies to all who objected to the proposed change for other/opposite reasons. My objection is not to removal of the existing binding; it's to binding `C-o' in some other default way. Just unbind it and declare Emacs's intention, at least for the foreseeable future, to not bind it by default. Give it up to 3rd-party code, unless/until Emacs really gets a screaming/important need to bind it by default. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [External] : Re: Suggested experimental test 2021-03-22 19:56 ` [External] : " Drew Adams @ 2021-03-22 21:03 ` Alfred M. Szmidt 2021-03-22 21:26 ` Drew Adams 0 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 21:03 UTC (permalink / raw) To: Drew Adams; +Cc: gregory, emacs-devel > Obviously, I'm not proposing this just to leave the that key > unused. Oh, but I wish that _were_ the proposal... Unused AND with an intention not to bind it by default at all. Seeing that to get sensible behaviour in Emacs is to re-bind it, why can't you do the same and ignore whatever it is bound too? ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [External] : Re: Suggested experimental test 2021-03-22 21:03 ` Alfred M. Szmidt @ 2021-03-22 21:26 ` Drew Adams 2021-03-23 8:06 ` Alfred M. Szmidt 0 siblings, 1 reply; 154+ messages in thread From: Drew Adams @ 2021-03-22 21:26 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: gregory@heytings.org, emacs-devel@gnu.org > > Obviously, I'm not proposing this just to leave the that key > > unused. > > Oh, but I wish that _were_ the proposal... Unused AND > with an intention not to bind it by default at all. > > Seeing that to get sensible behaviour in Emacs is to re-bind it, why > can't you do the same and ignore whatever it is bound too? As a user, of course I can. I'm talking about 3rd-party code. And sure, 3rd-party code can likewise trample on Emacs default bindings. But that's asking for trouble. I don't think we want to _encourage_ that. But by binding more and more keys by default, Emacs dev does indeed risk encouraging just that - a wild free-for-all. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [External] : Re: Suggested experimental test 2021-03-22 21:26 ` Drew Adams @ 2021-03-23 8:06 ` Alfred M. Szmidt 0 siblings, 0 replies; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-23 8:06 UTC (permalink / raw) To: Drew Adams; +Cc: gregory, emacs-devel And sure, 3rd-party code can likewise trample on Emacs default bindings. But that's asking for trouble. And removing features from users isn't? :-) I don't think we want to _encourage_ that. But by binding more and more keys by default, Emacs dev does indeed risk encouraging just that - a wild free-for-all. There is plenty of keybindings available for third-party modes. Emacs could also just state a policy that 3rd party stuff can some keybindings like C-o / M-o for other purposes, with a caveat emperor instead of removing those features. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:06 ` Gregory Heytings 2021-03-22 19:56 ` [External] : " Drew Adams @ 2021-03-22 21:08 ` Alfred M. Szmidt 1 sibling, 0 replies; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 21:08 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > I don't have the link at hand, but RMS had posted how to do exactly this > time of poll. I can try to locate it for you if you want. I would indeed be interested in seeing it. Attached is one way of polling users that was suggested. ===File ~/how-to-poll-users.text============================ Content-Type: text/plain; charset=Utf-8 From: Richard Stallman <rms@gnu.org> To: Dmitry Gutov <dgutov@yandex.ru> Cc: luangruo@yahoo.com, seb@k-7.ch, pcr910303@icloud.com, emacs-devel@gnu.org In-Reply-To: <0ce06d95-0593-bc55-983f-6b6601503a1a@yandex.ru> (message from Dmitry Gutov on Tue, 21 Apr 2020 16:55:39 +0300) Subject: How to poll the users Reply-To: rms@gnu.org Date: Tue, 21 Apr 2020 23:14:05 -0400 [[[ 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. ]]] > Also note that we don't really have the ability to poll even our > existing users, We have done it many times. Here's the method I developed for polls in the past: * Make a file for the replies to go into. * Make a mailing address which drops all mail into the file. * Mail to info-gnu-emacs and help-gnu-emacs, and any other suitable place, presenting the proposed change in sufficient detail that people can judge it, and where to email the response, as well as what kind of information we seek. What we seek is not "votes", but understanding. If you are for the change, please explain why. Would it help you directly? If so, in what scenario, and what would the benefit be? And how important? Or is it that you think it will help Emacs development by helping others? Please distinguish between what you know and what you guess. Likewise, if you are against the change, please explain why. Would it inconvenience you directly? If so, in what scenario, and what would the inconvenience be? And how important? Or is it that you think it will harm Emacs development by inconveniencing others? We invite you also to propose changes in the proposal that would improve it, for you -- saying in what scenario, and how. * We state a deadline some weeks in the future, but since there is no hurry, we wait some extra time before we look at the responses. * Ultimately, we do not restrict ourselves to choosing between "make the change" and "don't make it". The best outcome is that the feedback enables us to design a way to please almost everyone. -- 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] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 23:46 ` Gregory Heytings 2021-03-22 0:40 ` Alfred M. Szmidt @ 2021-03-22 11:21 ` Jean Louis 1 sibling, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-22 11:21 UTC (permalink / raw) To: Gregory Heytings; +Cc: Alfred M. Szmidt, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-22 02:47]: > What kind of poll would you like to see? What would you consider to be a > significant enough fraction of Emacs users? How would you poll them? There > has been a survey a few months ago, and in spite of the fact that there were > more than 7000 replies, many complained that the results were not > representative. You do not need a poll of many users. But you have to make proper study. Editor and any software and computer usability may be measured with few people only. References: https://www.nngroup.com/articles/why-you-only-need-to-test-with-5-users/ https://www.nngroup.com/videos/usability-testing-w-5-users-design-process/ In my opinion here we talk about usability related to inserting a new line. The fundamental useful command is inserting a new line or `open-line'. What you are here proposing is to replace key binding with something else like C-o C-o -- but you forget the fundamental usefulness of it. How about talking about the fundamental feauture of opening a new line or inserting new empty line and improving that, if at all possible? How do you do? How other users do it? Why would it be more usable for user to press C-o C-o to insert new line rather than C-o ? That is better discussed rather than purpose of removing or replacing key bindings for purpose of some other commands on C-o -- I hope you understand difference between those purposes. Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 23:05 ` Gregory Heytings 2021-03-21 23:13 ` Alfred M. Szmidt @ 2021-03-22 11:07 ` Jean Louis 1 sibling, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-22 11:07 UTC (permalink / raw) To: Gregory Heytings; +Cc: Alfred M. Szmidt, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-22 02:06]: > > It isn't a small change to remove a feature completely. When asked to > > keep _a_ binding, it has been meet with silence and it has been more > > important to inconvinence users than to listen to them, so I can only > > assume that this will a similar case for C-o. > > Your assumption is wrong. Please have a look at the proposed > experiment: it moves open-line to repeated C-o. If you have followed my personal usage of C-o from my previous email: - behavior #1, cursor at beginnin of line, C-o inserts new line, and I start typing - behavior #2, cursor anywhere else on the line, C-a C-o moves to beginning of line, opens new line - behavior #3 is the one explained in 1985 manual, to start typing text in the middle of the line while bringin the remainder of text down -- this one I do not use then now please imagine how it would like like with your change: - behavior #1 above, would require 2 key bindings instead of 1 - behavior #2, above, would require now 3 key bindings instead of 2 - behavior #3 as you explained from 1985 manual, I do not use, almost never Among all those I would choose the vi like `O' to open new line, but it does not work within Emacs key binding style. I am not really fan of moving or customizing any default key bindings, as for those personal customizations I use either Super key or Hyper on Caps Lock or C-c LETTER bindings. Reason I am not fan of changing default key bindings myself is that I wish to have consistent behavior across multipe operating systems, multiple remote virtual private servers that run multiple various free operating systems, across multiple Emacs versions and across multiple Emacs-like editors. But would I be fan of customizing some default key bindings I would then replace C-o with C-a C-o like this: (defun my-C-o () "Opens new line regardless where is cursor positioned." (interactive) (move-beginning-of-line nil) (open-line 1)) (global-set-key (kbd "C-o") #'my-C-o) But I am not doing that, as I do not like having habit on default key bindings as that breaks my habits on those other computers where I do not use any customizations. Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 22:16 ` Gregory Heytings 2021-03-21 22:54 ` Alfred M. Szmidt @ 2021-03-22 3:33 ` Eli Zaretskii 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 8:59 ` Rudolf Schlatte 2021-03-22 10:49 ` Jean Louis 3 siblings, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 3:33 UTC (permalink / raw) To: Gregory Heytings; +Cc: ams, emacs-devel > Date: Sun, 21 Mar 2021 22:16:59 +0000 > From: Gregory Heytings <gregory@heytings.org> > Cc: emacs-devel@gnu.org > > Even among the C-LETTER and M-LETTER keys, there are quite a few whose > meaning have changed during the last 40 years. I know at least of: C-h, > C-l, M-g, M-j, M-n, M-o, M-p, M-r and M-s. That's 9 keys out of 52. Please describe those changes one by one. At least for some of these keys I'm unaware of any changes in their bindings, so I'm curious what exactly is considered a "change" in this context. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 3:33 ` Eli Zaretskii @ 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 11:37 ` Philip Kaludercic ` (2 more replies) 0 siblings, 3 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 10:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ams, emacs-devel >> Even among the C-LETTER and M-LETTER keys, there are quite a few whose >> meaning have changed during the last 40 years. I know at least of: >> C-h, C-l, M-g, M-j, M-n, M-o, M-p, M-r and M-s. That's 9 keys out of >> 52. > > Please describe those changes one by one. At least for some of these > keys I'm unaware of any changes in their bindings, so I'm curious what > exactly is considered a "change" in this context. > C-c: was initially exit-recursive-edit, and was changed to a prefix key for modes in Emacs 16; exit-recursive-edit was then moved to C-M-c C-h: was initially (and in other Emacsen) the same as C-b, and was (very early in the development of GNU Emacs) changed into the help character C-l: was 'recenter' up to and including Emacs 22, then became 'recenter-top-bottom', which changes its semantics when is repeated C-z: was initially (and in other Emacsen) a prefix character, was at some point bound exit-recursive-edit, then became (in GNU Emacs 1.11) bound to suspend-emacs M-g: was initially bound to fill-region, was used for facemenu in Emacs 19-21, and is used for goto-like commands since Emacs 22 M-j: was initially unused, became indent-new-comment-line in Emacs 1.7 M-n and M-p: were initially unused, became what they are now in Emacs 17 M-o: was unused before Emacs 22, was used for facemenu in Emacs 22-27 M-r: was initially unused, became 'move-to-window-line' in Emacs 16, then became 'move-to-window-line-top-bottom', which changed its semantics when it is repeated M-s: was initially unused, became center-line for text-modes in Emacs 16, and is used for search-like commands since Emacs 23 ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 10:05 ` Gregory Heytings @ 2021-03-22 11:37 ` Philip Kaludercic 2021-03-22 12:20 ` Gregory Heytings 2021-03-22 17:38 ` Eli Zaretskii 2021-03-22 18:14 ` Alfred M. Szmidt 2 siblings, 1 reply; 154+ messages in thread From: Philip Kaludercic @ 2021-03-22 11:37 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, ams, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > M-n and M-p: were initially unused, became what they are now in Emacs 17 M-n and M-p are still unused? Or did the convention A major mode can also rebind the keys ‘M-n’, ‘M-p’ and ‘M-s’. The bindings for ‘M-n’ and ‘M-p’ should normally be some kind of moving forward and backward, but this does not necessarily mean cursor motion. (elisp) Major Mode Conventions not exist before Emacs 17? -- Philip K. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 11:37 ` Philip Kaludercic @ 2021-03-22 12:20 ` Gregory Heytings 0 siblings, 0 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 12:20 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Eli Zaretskii, ams, emacs-devel [-- Attachment #1: Type: text/plain, Size: 796 bytes --] >> M-n and M-p: were initially unused, became what they are now in Emacs 17 > > M-n and M-p are still unused? Or did the convention > > A major mode can also rebind the keys ‘M-n’, ‘M-p’ and ‘M-s’. The bindings for ‘M-n’ and ‘M-p’ should normally be some kind of moving forward and backward, but this does not necessarily mean cursor motion. > > (elisp) Major Mode Conventions > > not exist before Emacs 17? > No, M-n/M-p are of course not unused. They were unused before Emacs 17 (except in rmail mode). The current convention for M-n/M-p started to exist with the binding of M-n/M-p in the minibuffer to move to the next/previous command in the command history in Emacs 17. But of course at that point it was not formalized as a convention. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 11:37 ` Philip Kaludercic @ 2021-03-22 17:38 ` Eli Zaretskii 2021-03-22 17:48 ` Gregory Heytings 2021-03-22 18:14 ` Alfred M. Szmidt 2 siblings, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 17:38 UTC (permalink / raw) To: Gregory Heytings; +Cc: ams, emacs-devel > Date: Mon, 22 Mar 2021 10:05:31 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: ams@gnu.org, emacs-devel@gnu.org > > > >> Even among the C-LETTER and M-LETTER keys, there are quite a few whose > >> meaning have changed during the last 40 years. I know at least of: > >> C-h, C-l, M-g, M-j, M-n, M-o, M-p, M-r and M-s. That's 9 keys out of > >> 52. > > > > Please describe those changes one by one. At least for some of these > > keys I'm unaware of any changes in their bindings, so I'm curious what > > exactly is considered a "change" in this context. > > > > C-c: was initially exit-recursive-edit, and was changed to a prefix key > for modes in Emacs 16; exit-recursive-edit was then moved to C-M-c > > C-h: was initially (and in other Emacsen) the same as C-b, and was (very > early in the development of GNU Emacs) changed into the help character > > C-l: was 'recenter' up to and including Emacs 22, then became > 'recenter-top-bottom', which changes its semantics when is repeated > > C-z: was initially (and in other Emacsen) a prefix character, was at some > point bound exit-recursive-edit, then became (in GNU Emacs 1.11) bound to > suspend-emacs > > M-g: was initially bound to fill-region, was used for facemenu in Emacs > 19-21, and is used for goto-like commands since Emacs 22 > > M-j: was initially unused, became indent-new-comment-line in Emacs 1.7 > > M-n and M-p: were initially unused, became what they are now in Emacs 17 > > M-o: was unused before Emacs 22, was used for facemenu in Emacs 22-27 > > M-r: was initially unused, became 'move-to-window-line' in Emacs 16, then > became 'move-to-window-line-top-bottom', which changed its semantics when > it is repeated > > M-s: was initially unused, became center-line for text-modes in Emacs 16, > and is used for search-like commands since Emacs 23 Thanks, this matches my recollection: only 3 keys (M-g, M-o, M-s) were changed recently enough to count for this discussion. The rest are ancient history (more than 35 years ago), and C-l's change is very much minor (it _adds_ to the previous user-visible behavior, but doesn't change it). So my summary would be different: since 35 years ago, only a handful of these keys were ever changed. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:38 ` Eli Zaretskii @ 2021-03-22 17:48 ` Gregory Heytings 2021-03-22 18:11 ` Eli Zaretskii 2021-03-22 18:15 ` Alfred M. Szmidt 0 siblings, 2 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 17:48 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ams, emacs-devel >>>> Even among the C-LETTER and M-LETTER keys, there are quite a few >>>> whose meaning have changed during the last 40 years. I know at least >>>> of: C-h, C-l, M-g, M-j, M-n, M-o, M-p, M-r and M-s. That's 9 keys >>>> out of 52. >>> >>> Please describe those changes one by one. At least for some of these >>> keys I'm unaware of any changes in their bindings, so I'm curious what >>> exactly is considered a "change" in this context. >> >> C-c: was initially exit-recursive-edit, and was changed to a prefix key >> for modes in Emacs 16; exit-recursive-edit was then moved to C-M-c >> >> C-h: was initially (and in other Emacsen) the same as C-b, and was >> (very early in the development of GNU Emacs) changed into the help >> character >> >> C-l: was 'recenter' up to and including Emacs 22, then became >> 'recenter-top-bottom', which changes its semantics when is repeated >> >> C-z: was initially (and in other Emacsen) a prefix character, was at >> some point bound exit-recursive-edit, then became (in GNU Emacs 1.11) >> bound to suspend-emacs >> >> M-g: was initially bound to fill-region, was used for facemenu in Emacs >> 19-21, and is used for goto-like commands since Emacs 22 >> >> M-j: was initially unused, became indent-new-comment-line in Emacs 1.7 >> >> M-n and M-p: were initially unused, became what they are now in Emacs >> 17 >> >> M-o: was unused before Emacs 22, was used for facemenu in Emacs 22-27 >> >> M-r: was initially unused, became 'move-to-window-line' in Emacs 16, >> then became 'move-to-window-line-top-bottom', which changed its >> semantics when it is repeated >> >> M-s: was initially unused, became center-line for text-modes in Emacs >> 16, and is used for search-like commands since Emacs 23 > > Thanks, this matches my recollection: only 3 keys (M-g, M-o, M-s) were > changed recently enough to count for this discussion. The rest are > ancient history (more than 35 years ago), and C-l's change is very much > minor (it _adds_ to the previous user-visible behavior, but doesn't > change it). > You forget M-r, changed in Emacs 23. > > So my summary would be different: since 35 years ago, only a handful of > these keys were ever changed. > I was replying to Alfred, who said that nothing had changed during the last 40 years. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:48 ` Gregory Heytings @ 2021-03-22 18:11 ` Eli Zaretskii 2021-03-22 18:15 ` Alfred M. Szmidt 1 sibling, 0 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 18:11 UTC (permalink / raw) To: Gregory Heytings; +Cc: ams, emacs-devel > Date: Mon, 22 Mar 2021 17:48:44 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: ams@gnu.org, emacs-devel@gnu.org > > You forget M-r, changed in Emacs 23. Right. However, that's still a handful. > > So my summary would be different: since 35 years ago, only a handful of > > these keys were ever changed. > > > > I was replying to Alfred, who said that nothing had changed during the > last 40 years. Yes, but you said "many keys" have been changed. I don't think that's accurate, since the number of people here who used Emacs before v18.x is less than the number of keys whose bindings were changed since then ;-) ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:48 ` Gregory Heytings 2021-03-22 18:11 ` Eli Zaretskii @ 2021-03-22 18:15 ` Alfred M. Szmidt 1 sibling, 0 replies; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 18:15 UTC (permalink / raw) To: Gregory Heytings; +Cc: eliz, emacs-devel > So my summary would be different: since 35 years ago, only a handful of > these keys were ever changed. I was replying to Alfred, who said that nothing had changed during the last 40 years. Eh? I didn't say that at all. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 11:37 ` Philip Kaludercic 2021-03-22 17:38 ` Eli Zaretskii @ 2021-03-22 18:14 ` Alfred M. Szmidt 2 siblings, 0 replies; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 18:14 UTC (permalink / raw) To: Gregory Heytings; +Cc: eliz, emacs-devel >> Even among the C-LETTER and M-LETTER keys, there are quite a few whose >> meaning have changed during the last 40 years. I know at least of: >> C-h, C-l, M-g, M-j, M-n, M-o, M-p, M-r and M-s. That's 9 keys out of >> 52. > > Please describe those changes one by one. At least for some of these > keys I'm unaware of any changes in their bindings, so I'm curious what > exactly is considered a "change" in this context. So 6 keybinding got added, not changed. Two/Three got semantics changed slightly. And an equal amount got rebound to something else. I don't think this means that they changed that much meaning over the last 40 years. Since you mentioned "other" Emacsen.... C-c: was initially exit-recursive-edit, and was changed to a prefix key for modes in Emacs 16; exit-recursive-edit was then moved to C-M-c Zmacs / TECO had this unbound. C-h: was initially (and in other Emacsen) the same as C-b, and was (very early in the development of GNU Emacs) changed into the help character Not in TECO or ZMACS; C-h was unbound (though, the key on the keyboard said help, but it was initiated using TOP-h or some such). C-l: was 'recenter' up to and including Emacs 22, then became 'recenter-top-bottom', which changes its semantics when is repeated Same in Zmacs / TECO, ignoring the minor semantical difference. C-z: was initially (and in other Emacsen) a prefix character, was at some point bound exit-recursive-edit, then became (in GNU Emacs 1.11) bound to suspend-emacs C-z has always meant to punt Emacs to the background since the early days of Emacs. M-g: was initially bound to fill-region, was used for facemenu in Emacs 19-21, and is used for goto-like commands since Emacs 22 Which is also what TECO and Zmacs had it too (fill-region)... M-j: was initially unused, became indent-new-comment-line in Emacs 1.7 M-j was in Zmacs for changing fonts. M-n and M-p: were initially unused, became what they are now in Emacs 17 These where normaly mode specific, but generally speaking comment down/up line. M-o: was unused before Emacs 22, was used for facemenu in Emacs 22-27 Once upon a time, this was "this indentation", i.e. new line but keep same column. M-r: was initially unused, became 'move-to-window-line' in Emacs 16, then became 'move-to-window-line-top-bottom', which changed its semantics when it is repeated Zmacs / Teco have this as "move to screen edge". M-s: was initially unused, became center-line for text-modes in Emacs 16, and is used for search-like commands since Emacs 23 Center line in TECO / Zmacs. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 22:16 ` Gregory Heytings 2021-03-21 22:54 ` Alfred M. Szmidt 2021-03-22 3:33 ` Eli Zaretskii @ 2021-03-22 8:59 ` Rudolf Schlatte 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 10:49 ` Jean Louis 3 siblings, 1 reply; 154+ messages in thread From: Rudolf Schlatte @ 2021-03-22 8:59 UTC (permalink / raw) To: emacs-devel Gregory Heytings <gregory@heytings.org> writes: >> >> So is the plan to readd keybindings center-FOO? >> > > There is no clear predefined plan, just some ideas I'm currently > experimenting with. [...] > C-o is not at all "hitting the trash can", at the moment there is > nothing more than a proposal to conduct an experiment to make a > (small?) change to its meaning. Could you maybe repeat what change is planned? I looked at the proposed patch and it seems to only remove the C-o keybinding. Apologies if the proposal was posted already; I don't assume the plan is to leave C-o unbound? Since I use C-o frequently, I'm curious what will happen when my fingers press it while editing text, and to what extent I will have to reconfigure standard Emacs keybindings (which is something I try to avoid). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 8:59 ` Rudolf Schlatte @ 2021-03-22 10:05 ` Gregory Heytings 0 siblings, 0 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 10:05 UTC (permalink / raw) To: Rudolf Schlatte; +Cc: emacs-devel >> C-o is not at all "hitting the trash can", at the moment there is >> nothing more than a proposal to conduct an experiment to make a >> (small?) change to its meaning. > > Could you maybe repeat what change is planned? I looked at the proposed > patch and it seems to only remove the C-o keybinding. > No change is planned, at the moment there is nothing more than a proposal to conduct an experiment to make a (small?) change to its meaning, namely to move the open-line command to repeated C-o. > > Since I use C-o frequently, I'm curious what will happen when my fingers > press it while editing text, and to what extent I will have to > reconfigure standard Emacs keybindings (which is something I try to > avoid). > This is precisely the purpose of time-limited experiments, during which users such as you can see what happens with their fingers, whether they can adapt to the new default binding, or whether they have to reconfigure something. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 22:16 ` Gregory Heytings ` (2 preceding siblings ...) 2021-03-22 8:59 ` Rudolf Schlatte @ 2021-03-22 10:49 ` Jean Louis 3 siblings, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-22 10:49 UTC (permalink / raw) To: Gregory Heytings; +Cc: Alfred M. Szmidt, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-22 01:18]: > C-o is not at all "hitting the trash can", at the moment there is nothing > more than a proposal to conduct an experiment to make a (small?) change to > its meaning. I hope you started keeping notes of number of those who agree and those who disagree, did you? In my opinion the experiment started by introducing it. Some disagreer could read in the patch what is going on, and there is no need for it to be experimented, as the disagreement is already there due to high usage of C-o personally. But I can understand that your experiment comes from a different view point, I can bet you do not use C-o as much as I do, you probably never use it, am I right? Me I learned about it long time ago, and I use it in every Emacs-like editor. Did you hear of zile-on-guile editor? There is also Emacs that runs on Guile, there is mg, e3em, zile, those are most common that I use, but I may sometimes use > C-o was described as follows in the 1985 Emacs manual: "When you want to > insert a new line of text before an existing line, you can do it by typing > the new line of text, followed by RET. However, it may be easier to see > what you are doing if you first make a blank line and then insert the > desired text into it. This is easy to do using the key C-o, which inserts a > newline after point but leaves point in front of the newline. After C-o, > type the text for the new line. C-o F O O has the same effect as F O O RET, > except for the final location of point." It seems clear that C-o was > thought as a convenience command, not as an essential editing > command. I do understand the above. Because cursor is often located at the beginning of the line, C-o opens up new line and allows me to basically insert new line of text. The behavior described in this paragraph is somewhat different than the behavior described in the above paragraph from 1985. It is inserting a new line in this specific example, do you see? Another personal usage of C-o is whe cursor is located somewhere on the line, but not at beginning of the line, then C-a C-o is what I mostly use. That is how I insert new line above the current one with cursor in such position. You can see that this behavior in this paragraph is definitely not the same as the behavior described in 1985 manual, but also not same as behavior in the previous paragraph. I could be doing instead C-a RET C-p or C-a RET ARROW-UP -- and I am kind of thankful for C-a C-o sequence as that is what I use so often. At this point I would like to know, how do you insert new line? Do you insert them at all? 124 -- ONE LINE -- 345 -- LAST LINE -- ^ When your cursor is on the letter L in the second line above, what do you do to insert one line there? When your cursor is on the number 3 on last line, what do you do to insert new line? Both questions are beyond the behavior as described in the 1985 manual that you assume to be the default and not usable behavior today. This analysis is also part of your experiment, and I am genuinely interested how people insert new line above the current line. I use C-o or C-a C-o combination when cursor is not at beginning of the line. > Emacs evolves very conservatively, and if at some point it becomes clear > that some key binding is not useful for 99.9% of its users, there is no > reason to keep it as is just because 40 years ago, under very different > circumstances, it was considered convenient or useful. If you have a list of number of people agreeing and disagreeing, then you can make one true mathematical percentage as result. As now you presented some information and then also your opinion that somehow relates 99.9% to C-o not being useful, but opinions should not be biased, as if you do the experiment, count the number of people agreeing or disagreeing. Also explain how you insert new lines, and if you insert them at all. Give some reasoning. In vi and vim editors I use often O to insert new line, it is little easier than C-o as it works with cursor being anywhere on the line. The point is, I do insert empty lines all the time, every single day, every hour. > I'd say that Emacs is a bit like the C programming language, which > evolves as conservatively as (or perhaps even more conservatively > than) Emacs. Just because a function was considered useful and was > included in the standard library 30 years ago does not mean that it > should forever remain in the standard library. Yes, I do agree on that, but you are relating that statement which is opinion to experiment, which was supposed to be some observable countable fact, and experiment would not even involve casual Emacs users, only those people reading this mailing list. It could not be really complete without getting feedback from many other users. How do you insert new lines? Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 6:53 ` Suggested experimental test Lars Ingebrigtsen 2021-03-21 8:35 ` Alfred M. Szmidt @ 2021-03-21 10:48 ` Gregory Heytings 2021-03-21 10:58 ` Sv: " arthur miller ` (3 more replies) 1 sibling, 4 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-21 10:48 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel >> May I suggest the attached, slightly more controversial, experimental >> test? > > Removing `C-o' has already been suggested, and there's already been a > lot of negative feedback on that, if I remember correctly. So I don't > think there's much point in doing this experiment. > Well... the suggested experiment does not remove C-o, it changes C-o in a way that is, I believe, painless. We cannot know whether it is indeed painless without experimenting at a larger scale. The few who objected against changing C-o may well find out, after trying it out, that this small change is not as bad as they thought. As far as I remember, there has not been a lot of negative feedback on changing C-o, the negative feedback was (to my surprise) mostly about the possibility of changing the behavior of C-z. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Sv: Suggested experimental test 2021-03-21 10:48 ` Gregory Heytings @ 2021-03-21 10:58 ` arthur miller 2021-03-21 13:20 ` Gregory Heytings ` (2 more replies) 2021-03-22 10:14 ` Jean Louis ` (2 subsequent siblings) 3 siblings, 3 replies; 154+ messages in thread From: arthur miller @ 2021-03-21 10:58 UTC (permalink / raw) To: Gregory Heytings, Lars Ingebrigtsen; +Cc: emacs-devel@gnu.org [-- Attachment #1: Type: text/plain, Size: 1536 bytes --] I don't understand why people are so passionately wasting time on arguing about shortcuts. As I understand Emacs it is supposed to be molded after each ones preference. Personally to me I rebind almost anything to my liking and what makes sense to me. So go ahead please, do any change you wish to C-o or whatever other shortcut, including C-z, M-x or C-x if you would like 🙂. ________________________________ Från: Emacs-devel <emacs-devel-bounces+arthur.miller=live.com@gnu.org> för Gregory Heytings <gregory@heytings.org> Skickat: den 21 mars 2021 11:48 Till: Lars Ingebrigtsen <larsi@gnus.org> Kopia: emacs-devel@gnu.org <emacs-devel@gnu.org> Ämne: Re: Suggested experimental test >> May I suggest the attached, slightly more controversial, experimental >> test? > > Removing `C-o' has already been suggested, and there's already been a > lot of negative feedback on that, if I remember correctly. So I don't > think there's much point in doing this experiment. > Well... the suggested experiment does not remove C-o, it changes C-o in a way that is, I believe, painless. We cannot know whether it is indeed painless without experimenting at a larger scale. The few who objected against changing C-o may well find out, after trying it out, that this small change is not as bad as they thought. As far as I remember, there has not been a lot of negative feedback on changing C-o, the negative feedback was (to my surprise) mostly about the possibility of changing the behavior of C-z. [-- Attachment #2: Type: text/html, Size: 3307 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 10:58 ` Sv: " arthur miller @ 2021-03-21 13:20 ` Gregory Heytings 2021-03-21 18:16 ` Sv: " Alfred M. Szmidt 2021-03-22 10:24 ` Sv: " Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-21 13:20 UTC (permalink / raw) To: arthur miller; +Cc: emacs-devel > > I don't understand why people are so passionately wasting time on > arguing about shortcuts. As I understand Emacs it is supposed to be > molded after each ones preference. > Of course Emacs can be molded to ones preferences, but the discussion is about Emacs' default bindings, about sensible defaults that improve Emacs' user experience for newcomers. This is not a waste of time, at least not more than, say, creating new color themes, or improving the help-for-help screen. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Sv: Suggested experimental test 2021-03-21 10:58 ` Sv: " arthur miller 2021-03-21 13:20 ` Gregory Heytings @ 2021-03-21 18:16 ` Alfred M. Szmidt 2021-03-22 5:11 ` Richard Stallman 2021-03-22 10:24 ` Sv: " Jean Louis 2 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-21 18:16 UTC (permalink / raw) To: arthur miller; +Cc: gregory, larsi, emacs-devel If I go to the bakery and buy a tiger sponge cake, I don't expect coming home with an unbaked cake and all the ingredients in a shooping bag with broken eggs, and then having a baker with the galls telling me that I'm wasting my time asking for a pre-baked cake cause "this is better, you can do anything you want". I just want a tiger sponge cake, and eat it. Emacs is first and for most a text editor for code and prose, and not some bag of pre-mixed ingredients that one has to bake first before using it. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 18:16 ` Sv: " Alfred M. Szmidt @ 2021-03-22 5:11 ` Richard Stallman 0 siblings, 0 replies; 154+ messages in thread From: Richard Stallman @ 2021-03-22 5:11 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: gregory, larsi, arthur.miller, 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. ]]] > Emacs is first and for most a text editor for code and prose, and not > some bag of pre-mixed ingredients that one has to bake first before > using it. Yes, exactly. We do not release Emacs as a kit for making editors. Emacs _is an editor_. -- 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] 154+ messages in thread
* Re: Sv: Suggested experimental test 2021-03-21 10:58 ` Sv: " arthur miller 2021-03-21 13:20 ` Gregory Heytings 2021-03-21 18:16 ` Sv: " Alfred M. Szmidt @ 2021-03-22 10:24 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-22 10:24 UTC (permalink / raw) To: arthur miller; +Cc: Gregory Heytings, Lars Ingebrigtsen, emacs-devel@gnu.org * arthur miller <arthur.miller@live.com> [2021-03-21 13:59]: > I don't understand why people are so passionately wasting time > on arguing about shortcuts. As I understand Emacs it is supposed > to be molded after each ones preference. Personally to me I rebind > almost anything to my liking and what makes sense to me. To help you understand from my perspective, I am maintaining multiple remote servers, and have multiple computers, and each time when working on those computers I do not use any custom key bindings, and I do some extensive, personally important editing. Some computers use older Emacs versions, only one is using the development version, some are on different free operating systems, currently we use 4 different operating systems. I do expect Emacs to behave by how we used to know it by habit. Being passionate is virtue and benefit for Emacs development. I cannot see it as a waste of time as by following last months or years of development I can just see great improvements without which I would not be able to do my work right now. It is easy, after all discussions, to then say how some of emails were waste of time, but that falls into the context of saying that it is easy to be general after the battle. Discussions bring about good things, and they create new software and incite people to create new software. Many disagreements may bring some programmers to make new useful software, we can see that in case of ergonomical key bindings in the package `ergoemacs-mode' of Xah, we can see that disagreements come up with new excellent Emacs extensions like Spacemacs or Doom Emacs, that people like so much. Emacs may be customizes as one wish, but there are expectations by Emacs users that can annoy and break the habits. That is price. If the price is affordable, then changing some key bindings like M-o is quite alright as for now. If we however start changing key bindings like it is some kind of a priority, we will see decline of Emacs users as some may find it silly. Human editors tend to learn methods and rely on its software. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 10:48 ` Gregory Heytings 2021-03-21 10:58 ` Sv: " arthur miller @ 2021-03-22 10:14 ` Jean Louis 2021-03-22 12:06 ` Lars Ingebrigtsen 2021-03-22 18:42 ` Sean Whitton 3 siblings, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-22 10:14 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-21 13:52]: > > > > May I suggest the attached, slightly more controversial, > > > experimental test? > > > > Removing `C-o' has already been suggested, and there's already been a > > lot of negative feedback on that, if I remember correctly. So I don't > > think there's much point in doing this experiment. > > > > Well... the suggested experiment does not remove C-o, it changes C-o in a > way that is, I believe, painless. We cannot know whether it is indeed > painless without experimenting at a larger scale. The few who objected > against changing C-o may well find out, after trying it out, that this small > change is not as bad as they thought. We learned in sales to take the viewpoint of a customer to understand customer better. Now imagine people using C-o for decades and now C-o does not do what it is supposed to do, but then in other editors related to Emacs it does what is supposed to do. This impacts users greatly. I am multi-editor user, so imagine I start using in vi editor something like `i i' to insert letters, or `O O' to insert new line, then one Emacs version will be claiming that C-o does this, the other that C-o C-o does what C-o was doing. Counting with millions of Emacs users that brings some implications. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 10:48 ` Gregory Heytings 2021-03-21 10:58 ` Sv: " arthur miller 2021-03-22 10:14 ` Jean Louis @ 2021-03-22 12:06 ` Lars Ingebrigtsen 2021-03-22 12:23 ` Gregory Heytings ` (5 more replies) 2021-03-22 18:42 ` Sean Whitton 3 siblings, 6 replies; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 12:06 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel Gregory Heytings <gregory@heytings.org> writes: > Well... the suggested experiment does not remove C-o, it changes C-o > in a way that is, I believe, painless. Sorry; I didn't read the patch carefully. So it basically moves `C-o' to `C-o C-o' (and makes the `C-o' prefix open for new commands)? I don't use `C-o' myself, so I can't really say to what degree this would be annoying or not for users. Any `C-o' users who have an opinion here? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 12:06 ` Lars Ingebrigtsen @ 2021-03-22 12:23 ` Gregory Heytings 2021-03-22 16:15 ` Jean Louis 2021-03-22 16:14 ` Jean Louis ` (4 subsequent siblings) 5 siblings, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 12:23 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel >> Well... the suggested experiment does not remove C-o, it changes C-o in >> a way that is, I believe, painless. > > Sorry; I didn't read the patch carefully. So it basically moves `C-o' > to `C-o C-o' (and makes the `C-o' prefix open for new commands)? > Yes and yes. > > I don't use `C-o' myself, so I can't really say to what degree this > would be annoying or not for users. Any `C-o' users who have an opinion > here? > I think we won't really know without experimenting. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 12:23 ` Gregory Heytings @ 2021-03-22 16:15 ` Jean Louis 0 siblings, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-22 16:15 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-22 15:24]: > > > > Well... the suggested experiment does not remove C-o, it changes C-o > > > in a way that is, I believe, painless. > > > > Sorry; I didn't read the patch carefully. So it basically moves `C-o' > > to `C-o C-o' (and makes the `C-o' prefix open for new commands)? > > > > Yes and yes. > > > > > I don't use `C-o' myself, so I can't really say to what degree this > > would be annoying or not for users. Any `C-o' users who have an opinion > > here? > > > > I think we won't really know without experimenting. Gregory, don't you think that 3 users including me who expressed their objections is not part of the experiment already? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 12:06 ` Lars Ingebrigtsen 2021-03-22 12:23 ` Gregory Heytings @ 2021-03-22 16:14 ` Jean Louis 2021-03-22 17:08 ` Gregory Heytings 2021-03-22 17:20 ` Robin Tarsiger ` (3 subsequent siblings) 5 siblings, 1 reply; 154+ messages in thread From: Jean Louis @ 2021-03-22 16:14 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel * Lars Ingebrigtsen <larsi@gnus.org> [2021-03-22 15:07]: > Gregory Heytings <gregory@heytings.org> writes: > > > Well... the suggested experiment does not remove C-o, it changes C-o > > in a way that is, I believe, painless. > > Sorry; I didn't read the patch carefully. So it basically moves `C-o' > to `C-o C-o' (and makes the `C-o' prefix open for new commands)? > > I don't use `C-o' myself, so I can't really say to what degree this > would be annoying or not for users. Any `C-o' users who have an opinion > here? For now I count 3 people from mailing lists who already objected to it, including me. How do you Lars insert new lines, before the current line with cursor? Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 16:14 ` Jean Louis @ 2021-03-22 17:08 ` Gregory Heytings 2021-03-22 17:46 ` Alan Mackenzie 2021-03-22 18:03 ` Jean Louis 0 siblings, 2 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 17:08 UTC (permalink / raw) To: Jean Louis; +Cc: Lars Ingebrigtsen, emacs-devel >>> Well... the suggested experiment does not remove C-o, it changes C-o >>> in a way that is, I believe, painless. >> >> Sorry; I didn't read the patch carefully. So it basically moves `C-o' >> to `C-o C-o' (and makes the `C-o' prefix open for new commands)? >> >> I don't use `C-o' myself, so I can't really say to what degree this >> would be annoying or not for users. Any `C-o' users who have an >> opinion here? > > For now I count 3 people from mailing lists who already objected to it, > including me. > I've only seen one (you), and perhaps a second one (Alfred), but I'm not quite sure because he initially thought that open-line would be removed. > > How do you Lars insert new lines, before the current line with cursor? > I can't speak for Lars, but if this is something that I frequently needed, I would either learn the C-p C-e C-m sequence, or make it a command in my init file, for example: (global-set-key (kbd "M-RET") (lambda () (interactive) (previous-line) (end-of-line) (newline-and-indent))) (M-RET has a similar purpose in org-mode.) > > Gregory, don't you think that 3 users including me who expressed their > objections is not part of the experiment already? > No, precisely because nobody actually experimented the potential change. You cannot give an opinion on a change before experimenting it for some time, say, at least a day. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:08 ` Gregory Heytings @ 2021-03-22 17:46 ` Alan Mackenzie 2021-03-22 17:59 ` Gregory Heytings ` (2 more replies) 2021-03-22 18:03 ` Jean Louis 1 sibling, 3 replies; 154+ messages in thread From: Alan Mackenzie @ 2021-03-22 17:46 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, Jean Louis, emacs-devel Hello, Gregory. On Mon, Mar 22, 2021 at 17:08:32 +0000, Gregory Heytings wrote: [ .... ] > > For now I count 3 people from mailing lists who already objected to it, > > including me. > I've only seen one (you), and perhaps a second one (Alfred), but I'm not > quite sure because he initially thought that open-line would be removed. You ignored my objections on Saturday. That makes at least 3 people who've objected. That's not counting the people who have merely "commented" rather than objected whole-heartedly. [ .... ] > > Gregory, don't you think that 3 users including me who expressed their > > objections is not part of the experiment already? > No, precisely because nobody actually experimented the potential change. There's no need for any "experiment". It's perfectly obvious what you're proposing and the effect it will have. And describing it as an "experiment", as though your intention is purely to discover something about Emacs use, is more than a little disingenuous. There remains the possibility that you intend to push through this removal of the C-o binding, and describing it as "an experiment" should soften the resistance to it. Of course, it is very easy to forget to restore the binding once the "experiment" is over. C-o is a much used binding, valued by lots of people, including me. > You cannot give an opinion on a change before experimenting it for some > time, say, at least a day. Anybody who wishes to experiment with this thing is perfectly able to make the temporary adjustments to his own key maps without annoying other users of the master branch. -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:46 ` Alan Mackenzie @ 2021-03-22 17:59 ` Gregory Heytings 2021-03-22 18:23 ` Alfred M. Szmidt 2021-03-23 6:09 ` Richard Stallman 2 siblings, 0 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 17:59 UTC (permalink / raw) To: Alan Mackenzie; +Cc: emacs-devel > > And describing it as an "experiment", as though your intention is purely > to discover something about Emacs use, is more than a little > disingenuous. > Thank you so much for your kind words. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:46 ` Alan Mackenzie 2021-03-22 17:59 ` Gregory Heytings @ 2021-03-22 18:23 ` Alfred M. Szmidt 2021-03-23 6:09 ` Richard Stallman 2 siblings, 0 replies; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 18:23 UTC (permalink / raw) To: Alan Mackenzie; +Cc: gregory, larsi, bugs, emacs-devel Well said. And describing it as an "experiment", as though your intention is purely to discover something about Emacs use, is more than a little disingenuous. It is exactly how M-o was forced through, "an experiment" -- people objected, those who just didn't care the keybinding (i.e. people who had already rebound it, or didn't use it) weren't effected. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:46 ` Alan Mackenzie 2021-03-22 17:59 ` Gregory Heytings 2021-03-22 18:23 ` Alfred M. Szmidt @ 2021-03-23 6:09 ` Richard Stallman 2 siblings, 0 replies; 154+ messages in thread From: Richard Stallman @ 2021-03-23 6:09 UTC (permalink / raw) To: Alan Mackenzie; +Cc: gregory, larsi, bugs, 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. ]]] > > > Gregory, don't you think that 3 users including me who expressed their > > > objections is not part of the experiment already? > > No, precisely because nobody actually experimented the potential change. > There's no need for any "experiment". It's perfectly obvious what you're > proposing and the effect it will have. What we don't know is how many users will oppose the change, nor what reasons they will give us. It is not absurd to try an experiment to find out. However, when people say before the experiment that they oppose the removal, they do count. They are users and they know they use this feature. -- 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] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:08 ` Gregory Heytings 2021-03-22 17:46 ` Alan Mackenzie @ 2021-03-22 18:03 ` Jean Louis 1 sibling, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-22 18:03 UTC (permalink / raw) To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-22 20:08]: > > > > > Well... the suggested experiment does not remove C-o, it changes > > > > C-o in a way that is, I believe, painless. > > > > > > Sorry; I didn't read the patch carefully. So it basically moves > > > `C-o' to `C-o C-o' (and makes the `C-o' prefix open for new > > > commands)? > > > > > > I don't use `C-o' myself, so I can't really say to what degree this > > > would be annoying or not for users. Any `C-o' users who have an > > > opinion here? > > > > For now I count 3 people from mailing lists who already objected to it, > > including me. > > > > I've only seen one (you), and perhaps a second one (Alfred), but I'm not > quite sure because he initially thought that open-line would be > removed. Plus Rudolf Schlatte who explained using `C-o` frequently. Those are 3 for now. > > How do you Lars insert new lines, before the current line with cursor? > > > > I can't speak for Lars, but if this is something that I frequently needed, I > would either learn the C-p C-e C-m sequence, or make it a command in my init > file, for example: > > (global-set-key (kbd "M-RET") (lambda () (interactive) (previous-line) (end-of-line) (newline-and-indent))) > > (M-RET has a similar purpose in org-mode.) That is good that you tell how you do it. Sounds funny to me, obviously we have different ways to getting to same result. I am inserting lines frequently and I would never think of using `C-p C-e C-m` -- which now makes sense, as from your side you probably do not insert lines, so for you `C-o` does not make sense. In considerations if some change is useful one has to consider also what other people are doing when they want to achieve functionality X, in this case `open-line` which is often used to insert new lines before the current one. From your viewpoint, you are already using 3 keys to get to the result, for you is fine to replace `C-o` with `C-o C-o` as that one would any way shorten your own 3-keys sequence. But it looks like you do not even use C-o to open a new line, like `C-a C-o` seems something you did not use when cursor is not at beginning of wthe line. Meeting users and their behavior of editing in relation to specific feature is better, it is more productive, and gives more insights. > > Gregory, don't you think that 3 users including me who expressed their > > objections is not part of the experiment already? > > No, precisely because nobody actually experimented the potential > change. You cannot give an opinion on a change before experimenting > it for some time, say, at least a day. I am also thankful for that insight. For me, the experiment begins with the simple introduction at the moment of understanding it. For you it begins then when people actually start using it -- but you miss the fact that some people would not even start experimenting with it as they do not find it useful in the first place and do not want to change their habits. Experiment should not be conducted for the sake of experiment alone. It should be conducted to improve the usability or user experience with editor. In my opinion, experiments of changing key bindings should not be conducted with the purpose of introduction of new commands, but with the purpose of making usability or user experience or efficiency of editing better. Checklist for key binding experiments: 1. [ ] - Conduct research, is the key binding included in Emacs-like editors like Emacs on Guile, Zile on Guile, Zile, mg, e3m, MIT Scheme's Edwin, and maybe few other similar. 2. [ ] - Conduct online research if the command and key binding is frequently asked for by users, review occurences of mentioning the command and the key binding on EmacsWiki, manual, and other websites by using search engines. 3. [ ] - Instead of proposing the experiment too early, ask people how they are doing the functionality X -- don't ask if they are using specific command `you-name-it`; example is how I have asked you and Lars "How are you inserting new line from the current line?" -- and I am still curious how people are doing it. Question is not really related to `C-o` or `open-line` but to the result of it that could be achieved by various different ways. 4. [ ] - Decide what is your proposal to replace key binding, define it well, but don't publish on the mailing list (or do publish). 5. [ ] - Compare your proposal to the existing key binding and the command and make list of reasons why would your replaced key binding be more useful and beneficial for users, user experience or efficiency in editing than the already present key binding. For example if you have never used `C-o` it would be better to fully understand its usage as it can be you have quite different idea on how to insert new lines. But if you did not understand usage of `C-o` you should or could assume that your proposal is maybe biased by your own user experience. 6. [ ] - After the review, if you think your proposal is improving editing efficiency, or usability, or user experience, then propose the new change. Provide patch, initiate experiments, or ask people about it. 7. [ ] - Do not assume that experiment, objections, protests, begin with the actual invokation of the experiment, as people on the mailing list already understand by reading the Emacs Lisp code, consider their opinions as valid objections and count them even if they did not practically experiment with it -- as they obviously did not find it practical to experiment with. 8. [ ] - Count pro and contras. Even if there are more positives for your experiment, do not assume that it would really enhance user experience, or that you got users' feedback, as we are on this mailing list testing Emacs in development stage, while users will be using it in their daily life. Consider various implications, breaking habits of millions of people. Consider butterfly effects before introducing it in new stable version of Emacs. Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 12:06 ` Lars Ingebrigtsen 2021-03-22 12:23 ` Gregory Heytings 2021-03-22 16:14 ` Jean Louis @ 2021-03-22 17:20 ` Robin Tarsiger 2021-03-22 17:40 ` Eli Zaretskii ` (2 subsequent siblings) 5 siblings, 0 replies; 154+ messages in thread From: Robin Tarsiger @ 2021-03-22 17:20 UTC (permalink / raw) To: larsi; +Cc: emacs-devel Lars Ingebrigtsen wrote: > I don't use `C-o' myself, so I can't really say to what degree this > would be annoying or not for users. Any `C-o' users who have an opinion > here? I'm a corner case here, FWIW. I use C-o quite frequently to open a new line... except I didn't like Emacs's line-splitting behavior! Instead I define dxc/vim-style-open-line as (goto-char (point-at-eol)) (insert "\n") to approximate what 'o' does in Vim. I should possibly add support for a prefix argument to switch to before the current line, and maybe indentation... I think I mentioned in an earlier thread that any redefinition of C-o would probably make me grumble for a short while before adjusting my customizations to compensate, if nothing else. But I'm also quite sympathetic to the "increasing skew between people's keymaps creates fragmentation issues" line of thought---I'm just already invested in one branch of response to that in practice... -RTT ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 12:06 ` Lars Ingebrigtsen ` (2 preceding siblings ...) 2021-03-22 17:20 ` Robin Tarsiger @ 2021-03-22 17:40 ` Eli Zaretskii 2021-03-22 17:55 ` Gregory Heytings ` (2 more replies) 2021-03-22 18:11 ` [EXTERNAL] " Stephan Mueller 2021-03-22 20:33 ` Jose A. Ortega Ruiz 5 siblings, 3 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 17:40 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Mon, 22 Mar 2021 13:06:09 +0100 > Cc: emacs-devel@gnu.org > > I don't use `C-o' myself, so I can't really say to what degree this > would be annoying or not for users. Any `C-o' users who have an opinion > here? I use it _a_lot_. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:40 ` Eli Zaretskii @ 2021-03-22 17:55 ` Gregory Heytings 2021-03-22 18:13 ` Eli Zaretskii 2021-03-22 18:17 ` Lars Ingebrigtsen 2021-03-22 20:56 ` Thierry Volpiatto 2 siblings, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 17:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, emacs-devel >> I don't use `C-o' myself, so I can't really say to what degree this >> would be annoying or not for users. Any `C-o' users who have an >> opinion here? > > I use it _a_lot_. > But of course, as you said a month ago: > > This question also goes to everyone else in this long dispute who wants > their precious key bindings preserved: why is such a long discussion > needed when it is so easy to restore, in your init file, a binding you > want preserved? > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:55 ` Gregory Heytings @ 2021-03-22 18:13 ` Eli Zaretskii 2021-03-22 20:22 ` Gregory Heytings 0 siblings, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 18:13 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Mon, 22 Mar 2021 17:55:31 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org > > >> I don't use `C-o' myself, so I can't really say to what degree this > >> would be annoying or not for users. Any `C-o' users who have an > >> opinion here? > > > > I use it _a_lot_. > > > > But of course, as you said a month ago: > > > > > This question also goes to everyone else in this long dispute who wants > > their precious key bindings preserved: why is such a long discussion > > needed when it is so easy to restore, in your init file, a binding you > > want preserved? Sure. But what I wrote then didn't prevent you-all from flooding this list with precisely the discussions I tried to prevent. And anyway, I was responding to Lars's question about the use of this key. I said nothing else. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:13 ` Eli Zaretskii @ 2021-03-22 20:22 ` Gregory Heytings 2021-03-23 8:06 ` Eli Zaretskii 0 siblings, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 20:22 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >>>> I don't use `C-o' myself, so I can't really say to what degree this >>>> would be annoying or not for users. Any `C-o' users who have an >>>> opinion here? >>> >>> I use it _a_lot_. >> >> But of course, as you said a month ago: >> >>> This question also goes to everyone else in this long dispute who >>> wants their precious key bindings preserved: why is such a long >>> discussion needed when it is so easy to restore, in your init file, a >>> binding you want preserved? > > Sure. But what I wrote then didn't prevent you-all from flooding this > list with precisely the discussions I tried to prevent. > I'm sorry for this, that's not what I wanted. What would be the way to conduct such an experiment without provoking such a flooding, for those who do not have write access to the trunk? IMO Emacs is now in a position that is similar to that of Emacs 16, when RMS introduced modes. He realized that he needed a prefix key for them, and he did not choose to use one of the yet unused meta keys: instead he repurposed C-c and moved its command somewhere else. The need for such a prefix key is something that he could not have envisioned while writing Emacs 1, it became apparent only later. Likewise, some time later, when user configuration files became common, the C-c LETTER keys were freed. Again the need for this could not have been seen beforehand, and again RMS did not choose to use a free meta key for this. Now the situation is that third-party packages are becoming more and more popular, something which couldn't have been envisioned twenty years ago, and these packages can't be installed in a simple way, that is, without asking users to fiddle with their configuration files, to define some global key bindings that these packages need. I don't see why we shouldn't act in the same way RMS acted, that is, by repurposing one control key for them. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:22 ` Gregory Heytings @ 2021-03-23 8:06 ` Eli Zaretskii 2021-03-23 14:15 ` Gregory Heytings 0 siblings, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 8:06 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Mon, 22 Mar 2021 20:22:21 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: larsi@gnus.org, emacs-devel@gnu.org > > >>> This question also goes to everyone else in this long dispute who > >>> wants their precious key bindings preserved: why is such a long > >>> discussion needed when it is so easy to restore, in your init file, a > >>> binding you want preserved? > > > > Sure. But what I wrote then didn't prevent you-all from flooding this > > list with precisely the discussions I tried to prevent. > > I'm sorry for this, that's not what I wanted. What would be the way to > conduct such an experiment without provoking such a flooding, for those > who do not have write access to the trunk? I basically think you cannot. Any such theme is bound to produce a long heated discussion. We cannot do anything practical to prevent it. That's life. > IMO Emacs is now in a position that is similar to that of Emacs 16, when > RMS introduced modes. He realized that he needed a prefix key for them, > and he did not choose to use one of the yet unused meta keys: instead he > repurposed C-c and moved its command somewhere else. The need for such a > prefix key is something that he could not have envisioned while writing > Emacs 1, it became apparent only later. Likewise, some time later, when > user configuration files became common, the C-c LETTER keys were freed. > Again the need for this could not have been seen beforehand, and again RMS > did not choose to use a free meta key for this. > > Now the situation is that third-party packages are becoming more and more > popular, something which couldn't have been envisioned twenty years ago, > and these packages can't be installed in a simple way, that is, without > asking users to fiddle with their configuration files, to define some > global key bindings that these packages need. I don't see why we > shouldn't act in the same way RMS acted, that is, by repurposing one > control key for them. The difference is that 37 years have passed, and what was then a recent keybinding in a program that had only a very limited user base is now a keybinding many users have hardwired into their muscles. Another thing that changed is that there are nowadays many more active contributors to Emacs who have their own (and different!) views on this subject. See below. It was easy to make such decisions when Emacs was an RCS repository on Richard's own machine, and he was the only one who actually made changes. Yet another thing that's changed is that we nowadays have much fewer free keys to work with, and many of those, while unbound globally, are likely to be bound by some mode which is dear to someone. Part of the reasons for the differences in opinions is that different people use different modes and have different usage patterns, and thus keybinding that are important to some might be unimportant (or even unknown, as these discussions repeatedly show!) to others. How can we ever significantly agree on removing or changing a keybinding under these circumstances? And one more thought, regarding the problem that 3rd-party packages have: it can be argued that this is not our problem. Why should users of Emacs that never heard of package P and will likely never use it pay the price? why couldn't the developers of P solve the problem which is in a way caused by P and whose solution benefits the users of P? Some might think that shifting the price to the Emacs core is the wrong way of dealing with the problem. The solution could be for P to use longer key sequences (which usurps fewer keys on the top level), and if some users of P are unhappy about that, then those users could rebind the commands privately to any key they like. Think about it. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 8:06 ` Eli Zaretskii @ 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 14:37 ` Eli Zaretskii 2021-03-24 6:10 ` Jean Louis 0 siblings, 2 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-23 14:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel > > The difference is that 37 years have passed, and what was then a recent > keybinding in a program that had only a very limited user base is now a > keybinding many users have hardwired into their muscles. > > Another thing that changed is that there are nowadays many more active > contributors to Emacs who have their own (and different!) views on this > subject. See below. It was easy to make such decisions when Emacs was > an RCS repository on Richard's own machine, and he was the only one who > actually made changes. > > Yet another thing that's changed is that we nowadays have much fewer > free keys to work with, and many of those, while unbound globally, are > likely to be bound by some mode which is dear to someone. Part of the > reasons for the differences in opinions is that different people use > different modes and have different usage patterns, and thus keybinding > that are important to some might be unimportant (or even unknown, as > these discussions repeatedly show!) to others. How can we ever > significantly agree on removing or changing a keybinding under these > circumstances? > I see your points, but all this is rather sad, because it means that Emacs is forever locked by what looks very much like a historical accident. > > And one more thought, regarding the problem that 3rd-party packages > have: it can be argued that this is not our problem. Why should users > of Emacs that never heard of package P and will likely never use it pay > the price? why couldn't the developers of P solve the problem which is > in a way caused by P and whose solution benefits the users of P? Some > might think that shifting the price to the Emacs core is the wrong way > of dealing with the problem. The solution could be for P to use longer > key sequences (which usurps fewer keys on the top level), and if some > users of P are unhappy about that, then those users could rebind the > commands privately to any key they like. Think about it. > I'm not sure if the above ("this is not our problem") is your opinion, or if you just present a possible viewpoint you do not necessarily share. This has been discussed to death already, and (as you already know) IMO it is a problem that will have to be solved by Emacs itself, sooner or later. It does not apply to a single package P, or only to a few packages. Just type emacs -Q, M-x list-packages RET, RET. The package you now see ('ace-window') asks you to fiddle with your init file by adding a 'global-set-key' to it. The second package in the list ('ack') does the same. And so forth. That's not a problem for you and me, it is a problem for newcomers, and these 'global-set-key's should be done automatically, during the installation process. Do you know any other software that asks you to change a configuration file manually to use an extension package? As the author of Magit wrote when he added the "C-x g" global binding: "Some [...] beginners will initially have a low threshold for things not working out of the box and I don't want to (continue to) scare them off by immediately forcing them to learn how to add key bindings and what that even means. There's a lot of talk about making Emacs friendlier for beginners and this is a small step in that direction." [1] [1] https://github.com/magit/magit/pull/4237#issuecomment-723495053 ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 14:15 ` Gregory Heytings @ 2021-03-23 14:37 ` Eli Zaretskii 2021-03-23 16:51 ` Gregory Heytings 2021-03-24 6:10 ` Jean Louis 1 sibling, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 14:37 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Tue, 23 Mar 2021 14:15:26 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: larsi@gnus.org, emacs-devel@gnu.org > > I see your points, but all this is rather sad, because it means that Emacs > is forever locked by what looks very much like a historical accident. I disagree, on both counts: Emacs isn't locked, and what we have is not an accident. The utmost easiness with which users can change the key bindings means there isn't, and can never be, a lockdown. > I'm not sure if the above ("this is not our problem") is your opinion, or > if you just present a possible viewpoint you do not necessarily share. Does it matter? > Just type emacs -Q, M-x list-packages RET, RET. The package you now see > ('ace-window') asks you to fiddle with your init file by adding a > 'global-set-key' to it. The second package in the list ('ack') does the > same. And so forth. That's not a problem for you and me, it is a problem > for newcomers, and these 'global-set-key's should be done automatically, > during the installation process. Do you know any other software that asks > you to change a configuration file manually to use an extension package? I disagree that it's a problem. Customizing key bindings is an integral part of using Emacs wisely and efficiently, and the sooner newcomers learn that the better. Emacs is unlike many other editors in this regard. > As the author of Magit wrote when he added the "C-x g" global binding: > > "Some [...] beginners will initially have a low threshold for things not > working out of the box and I don't want to (continue to) scare them off by > immediately forcing them to learn how to add key bindings and what that > even means. There's a lot of talk about making Emacs friendlier for > beginners and this is a small step in that direction." [1] > > [1] https://github.com/magit/magit/pull/4237#issuecomment-723495053 I can only say I disagree, with all due respect to Magit and its authors. Trying to make everybody happy with the default Emacs key bindings is a dead end. Trying to solve that unsolvable problem is a waste of energy. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 14:37 ` Eli Zaretskii @ 2021-03-23 16:51 ` Gregory Heytings 2021-03-23 17:13 ` Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-23 16:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel >> I see your points, but all this is rather sad, because it means that >> Emacs is forever locked by what looks very much like a historical >> accident. > > I disagree, on both counts: Emacs isn't locked, and what we have is not > an accident. > I think you understood what I meant: the "C-o" key is locked in the default bindings, and the fact that "C-o" was bound to open-line is a historical accident. > > I disagree that it's a problem. Customizing key bindings is an integral > part of using Emacs wisely and efficiently, and the sooner newcomers > learn that the better. Emacs is unlike many other editors in this > regard. > Let's (again) agree to disagree then. IMO Emacs should aim at being fully usable, including all its extensions, without ever having to edit configuration files manually (and without restarting Emacs). Packages that need to define keys globally should have a way to do that, just like major and minor mode packages. Major and minor mode packages can define keys that work out of the box in buffers in which these modes are enabled. I suppose everyone would agree that asking users who install a foo-mode package to add (define-key foo-mode-map (kbd "<some key>") #'foo-mode-do-something) lines in their init configuration file (and to restart Emacs) before being able to use foo-mode would be cumbersome. > > Trying to make everybody happy with the default Emacs key bindings is a > dead end. Trying to solve that unsolvable problem is a waste of energy. > That's not at all what I aim(ed) at. And the problem I want(ed) to solve is not unsolvable, it has a simple solution. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 16:51 ` Gregory Heytings @ 2021-03-23 17:13 ` Eli Zaretskii 2021-03-23 18:08 ` Alfred M. Szmidt 2021-03-24 6:32 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 17:13 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, emacs-devel > Date: Tue, 23 Mar 2021 16:51:47 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: larsi@gnus.org, emacs-devel@gnu.org > > >> I see your points, but all this is rather sad, because it means that > >> Emacs is forever locked by what looks very much like a historical > >> accident. > > > > I disagree, on both counts: Emacs isn't locked, and what we have is not > > an accident. > > I think you understood what I meant: the "C-o" key is locked in the > default bindings, and the fact that "C-o" was bound to open-line is a > historical accident. Yes, understood and disagreed with both. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 16:51 ` Gregory Heytings 2021-03-23 17:13 ` Eli Zaretskii @ 2021-03-23 18:08 ` Alfred M. Szmidt 2021-03-23 21:06 ` Gregory Heytings 2021-03-24 6:32 ` Jean Louis 2 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-23 18:08 UTC (permalink / raw) To: Gregory Heytings; +Cc: eliz, larsi, emacs-devel >> I see your points, but all this is rather sad, because it means that >> Emacs is forever locked by what looks very much like a historical >> accident. > > I disagree, on both counts: Emacs isn't locked, and what we have is not > an accident. I think you understood what I meant: the "C-o" key is locked in the default bindings, and the fact that "C-o" was bound to open-line is a historical accident. C-o is bound where it is because when Emacs was written, someone -- most probpobly RMS -- bound it there, so it isn't really a historical accident but rather an active design decision. There is also a reason why C-x C-o where it is. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 18:08 ` Alfred M. Szmidt @ 2021-03-23 21:06 ` Gregory Heytings 2021-03-23 21:43 ` Alfred M. Szmidt ` (2 more replies) 0 siblings, 3 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-23 21:06 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: eliz, larsi, emacs-devel > > C-o is bound where it is because when Emacs was written, someone -- most > probpobly RMS -- bound it there, so it isn't really a historical > accident but rather an active design decision. There is also a reason > why C-x C-o where it is. > I digged further in my archives. In case some are interested: As most of you know, the original Emacs was written in TECO. C-o was a command of TECO's real-time editing feature (which was entered with C-r), which was imported into Emacs. The purpose of C-o in TECO was to optimize redisplay: when point on in the middle of a non-empty line, C-o F O O required less redisplay than F O O RET. C-o in the original Emacs didn't quite do what C-o now does: the line(s) created by C-o were "eated" by the text that was inserted. In other words, RET in the line(s) created with C-o did not push the next lines down, it went on the next created line (if any). In other words again, let's assume the following initial situation: A |D E where | is the point. After C-u 2 C-o B RET C RET, the buffer was now: A B C |D E In other words again, C-o was meant to "create some blank space on the screen" (not in the buffer) to optimize redisplay. Do you now see the "historical accident"? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 21:06 ` Gregory Heytings @ 2021-03-23 21:43 ` Alfred M. Szmidt 2021-03-23 21:57 ` Gregory Heytings 2021-03-24 5:16 ` Richard Stallman 2021-03-24 6:39 ` Jean Louis 2 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-23 21:43 UTC (permalink / raw) To: Gregory Heytings; +Cc: eliz, larsi, emacs-devel [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 1492 bytes --] [WARNING: I AM A TECO EMACS USER!] C-o in the original Emacs didn't quite do what C-o now does: the line(s) created by C-o were "eated" by the text that was inserted. In other words, RET in the line(s) created with C-o did not push the next lines down, it went on the next created line (if any). It does exactly the same thing it does today. Maybe you are confusing this with the way the gap buffer works? In other words again, let's assume the following initial situation: A |D E where | is the point. After C-u 2 C-o B RET C RET, the buffer was now: A B C |D E That is not the behaviour of TECO emacs, you would have two extra two newlines there, like in GNU emacs. "So, FOO Return is equivalent to C-o FOO." > You can make several blank lines by typing ‘C-o’ several times, or by >giving it a numeric argument specifying how many blank lines to make. >*Note Arguments::, for how. If you have a fill prefix, the ‘C-o’ >command inserts the fill prefix on the new line, if typed at the >beginning of a line. *Note Fill Prefix::. > > The easy way to get rid of extra blank lines is with the command ‘C-x >C-o’ (‘delete-blank-lines’). If point lies within a run of several >blank lines, ‘C-x C-o’ deletes all but one of them. If point is on a >single blank line, ‘C-x C-o’ deletes it. If point is on a nonblank >line, ‘C-x C-o’ deletes all following blank lines, if any exists. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 21:43 ` Alfred M. Szmidt @ 2021-03-23 21:57 ` Gregory Heytings 2021-03-23 22:08 ` Alfred M. Szmidt 0 siblings, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-23 21:57 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: eliz, larsi, emacs-devel > > [WARNING: I AM A TECO EMACS USER!] > Of which version? > > It does exactly the same thing it does today. > No it didn't. See AIM memo 554, written by RMS, dated October 1981: "If you want to insert many lines, you can type many C-O's at the beginning (or you can give C-O an argument to tell it how many blank lines to make [...]). As you then insert lines of text, you will notice that Return behaves strangely: it "uses up" the blank lines instead of pushing them down." ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 21:57 ` Gregory Heytings @ 2021-03-23 22:08 ` Alfred M. Szmidt 2021-03-23 22:14 ` Gregory Heytings 2021-03-24 5:15 ` Richard Stallman 0 siblings, 2 replies; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-23 22:08 UTC (permalink / raw) To: Gregory Heytings; +Cc: eliz, larsi, emacs-devel > [WARNING: I AM A TECO EMACS USER!] Of which version? 162. > It does exactly the same thing it does today. No it didn't. I stand by my claim, maybe you should login on an ITS machine before trying to contradict someone who uses the system on a semi-regular basis? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 22:08 ` Alfred M. Szmidt @ 2021-03-23 22:14 ` Gregory Heytings 2021-03-23 22:42 ` Alfred M. Szmidt 2021-03-24 5:15 ` Richard Stallman 1 sibling, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-23 22:14 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: eliz, larsi, emacs-devel >>> It does exactly the same thing it does today. >> >> No it didn't. > > I stand by my claim, maybe you should login on an ITS machine before > trying to contradict someone who uses the system on a semi-regular > basis? > I gave a quote of the 1981 manual written by RMS, for "EMACS version 161" (AIM memo 554), which everyone can download and read. It's very well possible that C-o was changed in version 162. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 22:14 ` Gregory Heytings @ 2021-03-23 22:42 ` Alfred M. Szmidt 2021-03-23 23:05 ` Gregory Heytings 0 siblings, 1 reply; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-23 22:42 UTC (permalink / raw) To: Gregory Heytings; +Cc: eliz, larsi, emacs-devel It's very well possible that C-o was changed in version 162. From what I can see (release notes, older versions), it wasn't. Much of the memo is a direct copy of the manual, so it is more plausible that this is just a very old note that didn't get pruned from the memo and refers to a very early Emacs which quickly modifed the behaviour. If you want, we can continue the archeology somewhere else, don't think this is teco-history@ ;) ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 22:42 ` Alfred M. Szmidt @ 2021-03-23 23:05 ` Gregory Heytings 0 siblings, 0 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-23 23:05 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: eliz, larsi, emacs-devel > > From what I can see (release notes, older versions), it wasn't. Much of > the memo is a direct copy of the manual, so it is more plausible that > this is just a very old note that didn't get pruned from the memo and > refers to a very early Emacs which quickly modifed the behaviour. > I stand by what I said, except that I now understand that it's the behavior of RET that was changed. But that doesn't change the fact that C-o was initially meant to optimize redisplay by creating some blank space before filling it. See below: Date: 12 September 1981 03:11-EDT From: Richard M. Stallman <RMS at MIT-AI> Subject: poll on C-S, C-O, and Return To: INFO-EMACS-RECIPIENTS at MIT-AI What do you think of these two suggested changes to EMACS? 1) Make Altmode not be ignored when it terminates a search, so that it would still function as a Metizer. Some other character would have to be provided instead as a way of terminating a search and doing nothing else. C-D was suggested, but I don't like it. I'd like to hear other suggestions. 2) Make C-O do what C-A C-O Tab does now. 3) Also, how many people now find it useful or desirable that Return eats up blank lines? This feature was invented in the days when terminals did not have insert/delete line. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 22:08 ` Alfred M. Szmidt 2021-03-23 22:14 ` Gregory Heytings @ 2021-03-24 5:15 ` Richard Stallman 1 sibling, 0 replies; 154+ messages in thread From: Richard Stallman @ 2021-03-24 5:15 UTC (permalink / raw) To: Alfred M. Szmidt; +Cc: larsi, gregory, 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. ]]] > > It does exactly the same thing it does today. > No it didn't. > I stand by my claim, maybe you should login on an ITS machine before > trying to contradict someone who uses the system on a semi-regular > basis? If you could disagree in a more friendly tone, it would make this mailing list more civil to be on. Could this disagreement perhaps be moved to emacs-tangents? -- 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] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 21:06 ` Gregory Heytings 2021-03-23 21:43 ` Alfred M. Szmidt @ 2021-03-24 5:16 ` Richard Stallman 2021-03-24 6:39 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Richard Stallman @ 2021-03-24 5:16 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, ams, 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. ]]] > C-o in the original Emacs didn't quite do what C-o now does: the line(s) > created by C-o were "eated" by the text that was inserted. In other > words, RET in the line(s) created with C-o did not push the next lines > down, it went on the next created line (if any). For historical accuracy, I should correct that statement. C-o inserted a line break in the buffer after point. RET advanced over a newline into a blank line; otherwise it inserted a newline. In this way, RET would eat up the blank lines. Both of them operated by modifying the buffer, and the screen reflected the buffer contents. I sometimes made several black lines with C-u C-o or C-u C-u C-o, then filled them in, advancing by RET. At the end, if exta blank lines remained, I removed them with C-x C-o. -- 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] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 21:06 ` Gregory Heytings 2021-03-23 21:43 ` Alfred M. Szmidt 2021-03-24 5:16 ` Richard Stallman @ 2021-03-24 6:39 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-24 6:39 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-24 00:07]: > > > > > C-o is bound where it is because when Emacs was written, someone -- most > > probpobly RMS -- bound it there, so it isn't really a historical > > accident but rather an active design decision. There is also a reason > > why C-x C-o where it is. > > > > I digged further in my archives. In case some are interested: > > As most of you know, the original Emacs was written in TECO. C-o was a > command of TECO's real-time editing feature (which was entered with C-r), > which was imported into Emacs. The purpose of C-o in TECO was to optimize > redisplay: when point on in the middle of a non-empty line, C-o F O O > required less redisplay than F O O RET. As "Emacs" by name, it was maybe in TECO, but we are here in GNU Emacs, not in TECO by its name. Please see this timeline (no accuracy guarantee) from: https://www.jwz.org/doc/emacs-timeline.html 1976 TECMAC and TMACS a pair of "TECO-macro realtime editors." by Guy Steele, Dave Moon, Richard Greenblatt, Charles Frankston, et al. | | 1976 EMACS by Richard Stallman, Guy Steele, EINE (EINE Is Not EMACS) and Dave Moon. by Dan Weinreb. Merger of TECMAC and TMACS, plus for MIT Lisp Machine. a dynamic loader and Meta-key cmds. First Emacs written in Lisp. Ran on ITS and TWENEX (Tops-20) | written in TECO and PDP 10 assembly. | | | 1978 Multics Emacs ZWEI (ZWEI Was EINE Initially) by Bernie Greenberg. by Dan Weinreb and Mike McMahon. written in MacLisp; | also used Lisp as its | extension language. | 1980 ZMACS (direct descendant of ZWEI) on Symbolics LM-2, LMI LispM, and later, TI Explorer (1983-1989) 1981 Gosling Emacs : by James Gosling : written in C; with "Mocklisp" as its extension language. / | 1983 / | / Unipress Emacs (6-may-83) / $395 commercial product. 1984 / Hemlock / by Bill Chiles, / Rob MacLachlan, et al. 1985 GNU Emacs 13.0? (20-mar-85) written in Spice Lisp by Richard Stallman. (CMU Common Lisp) initial public release? : | : GNU Emacs 15.10 (11-apr-85) : | GNU Emacs 15.34 (07-may-85) | GNU Emacs 16.56 (15-jul-85) (Gosling code expunged for copyright reasons) | | GNU Emacs 16.60 (19-sep-85) (contained first patches from the net, including preliminary SYSV support) | | GNU Emacs 17.36 (20-dec-85) (included TeX manual; first version that worked on SYSV out of the box) | | 1986 GNU Emacs 18.24 beta (02-oct-86) | 1987 GNU Emacs 18.41 (22-mar-87) | GNU Emacs 18.45 (02-jun-87) | GNU Emacs 18.49 (18-sep-87) | \ | \________________________________________________ | \ | \ | Early work on Epoch begins (1987) | by Alan M. Carroll 1988 GNU Emacs 18.50 (13-feb-88) | | | GNU Emacs 18.51 (07-may-88) | | | GNU Emacs 18.52 (01-sep-88) | | Epoch 1.0 (14-dec-88) | by Alan M. Carroll with Simon Kaplan 1989 GNU Emacs 18.53 (24-feb-89) | | \ | | \________________________________________________ | _____ | | \ GNU Emacs 18.54 (26-apr-89) | \ | | \ GNU Emacs 18.55 (23-aug-89) | \ | | | \ | | | NEmacs 3.2.1 (15-dec-89) | | | "Nihongo Emacs": a fork | | | with multi-byte Japanese | | | language support. | | | | | | Epoch 2.0 (23-dec-89) | | | | | | | | | 1990 | | Epoch 3.1 (06-feb-90) | | | | | | \ | NEmacs 3.3.1 (3-mar-90) | \ | | | \ Epoch 3.2 (11-dec-90) | | \ last Carroll release. | | \____ (sporadic work on | | | GNU Emacs 19 begins) | | | | | | | | | | | | Epoch 4.0 (27-aug-90) | | | Now maintained by NCSA. | | | | | 1991 GNU Emacs 18.57 (??-jan-91) | | | | | | | GNU Emacs 18.58 (??-???-91) | | | | | | | 1992 | |___ | MULE 0.9.0b (4-mar-92) | | \ | "Multilingual | | \ | Enhancements to Emacs": | | \ | support for input methods | | \ | and various languages | | Lucid Emacs 19.0 (??-apr-92) | including Japanese, | | by Jamie Zawinski et al. | Chinese, Korean, Greek, | | | | Hebrew, and Cyrillic. | | Lucid Emacs 19.1 (04-jun-92) | | | | | | | | | Lucid Emacs 19.2 (19-jun-92) | | | | | | | | | Lucid Emacs 19.3 (09-sep-92) | | GNU Emacs 18.59 (31-oct-92) | | | | | | | | | 1993 | / Lucid Emacs 19.4 (21-jan-93) | | | / | | | | / Lucid Emacs 19.5 (05-feb-93) | | | / (trade-show giveaway CD only) | | | / | | | | ____________/ Lucid Emacs 19.6 (09-apr-93) | | | / | | | | / | | | GNU Emacs 19.7 beta (22-may-93) | /| | first public v19 beta | / | | | | / | ...___ | GNU Emacs 19.8 beta (27-may-93) | / | \ | | \ | / | \ | | \________________ | ___________________/ | MULE 1.0 (1-aug-93) | \ | / | (based on GNU Emacs 18.59) | Lucid Emacs 19.8 (06-sep-93) | | | (Epoch merger, preliminary | | | I18N support) | | | | | | GNU Emacs 19.22 beta (28-nov-93) | | | | | | | 1994 | Lucid Emacs 19.9 (12-may-94) / | | (scrollbars, Athena) / | | | / | GNU Emacs 19.23 beta (17-may-94) | / | | \ | / | | \____________ | ___________________/ | | \ | / | | Lucid Emacs 19.10 (27-may-94) | | last JWZ release. | | | | GNU Emacs 19.24 beta (16-may-94) | | | | ...___ | | | \ | | | \ | | | MULE 2.0 (6-aug-94) | | (based on GNU Emacs 19.25) | | | | XEmacs 19.11 (13-sep-94) | | Lucid Emacs -> XEmacs renaming. | | now maintained by Chuck Thompson | | and Ben Wing. | | | | GNU Emacs 19.27 beta (14-sep-94) | | | | | GNU Emacs 19.28 (01-nov-94) | | first official v19 release. | ...___ | | | \ | | | \ | | | MULE 2.2 (28-dec-94) | | (based on GNU Emacs 19.28) | | | | | | 1995 | | MULE 2.3 (24-jul-95) | | . | XEmacs 19.12 (23-jun-95) . | (tty support) \ . GNU Emacs 19.29 (21-jun-95) | \ . | | (work on 20.x begins) . GNU Emacs 19.30 (24-nov-95) | : . | \ | : . | \_____________ | . | \ | . | XEmacs 19.13 (01-sep-95) . 1996 GNU Emacs 19.31 (25-may-96) | . | XEmacs 19.14 (23-jun-96) . GNU Emacs 19.34 (21-aug-96) | \ . 1997 | XEmacs 20.0 (09-feb-97) \ . | now maintained by \ . | Steve Baur. | . | | XEmacs 19.15 (26-mar-97) . | | | . | XEmacs 20.1 (15-apr-97) | . | | | . | XEmacs 20.2 (16-may-97) | . GNU Emacs 20.1 (17-sep-97) | | . | | | . GNU Emacs 20.2 (20-sep-97) | | . | | XEmacs 19.16 (31-oct-97) . | | . | XEmacs 20.3 (21-nov-97) . | | / | | ________________________________/ | | / | | / 1998 | XEmacs 20.4 (28-feb-98) | first reasonably stable | release with MULE support. | XEmacs "core" and "packages" | now packaged separately. | | | | | XEmacs 21.0-pre5 (18-jul-98) | Numbering scheme goes wonky due to | switch to stable + unstable branches. GNU Emacs 20.3 (19-aug-98) | | | | XEmacs 21.0.60 (10-dec-98) | / \___________________ | / \ 1999 | / XEmacs 21.2.9 (03-feb-99) | / (trunk / unstable branch) | / | | XEmacs 21.1.3 (26-jun-99) | | (stable / maintenance branch) | | maintained by Vin Shelton. | | | | GNU Emacs 20.4 (12-jul-99) | | | | | 2000 | | XEmacs 21.2.27 (18-jan-00) | | | | XEmacs 21.1.9 (13-feb-00) | | | | GNU Emacs 21.1 (20-oct-01) | XEmacs 21.2.36 (04-oct-00) | | | 2001 | XEmacs 21.1.14 (27-jan-01) | | (branch retired) | | XEmacs 21.2.40 (08-jan-01) | ____________________/ | | / | | / XEmacs 21.5.0 (18-apr-01) | / (trunk / unstable branch) | / | | XEmacs 21.4.0 (16-apr-01) | | (stable / maintenance branch) | | Maintained by Stephen Turnbull. | | Shipped by Red Hat, Debian, | | Mandrake, etc. | | | | 2002 GNU Emacs 21.2 (16-mar-02) | XEmacs 21.5.6 (05-apr-02) | | | | XEmacs 21.4.7 (04-may-02) | | | | 2003 | XEmacs 21.4.12 (15-jan-03) | | first "stable" 21.4 | | | | GNU Emacs 21.3 (19-mar-03) | | | | | | XEmacs 21.4.13 (25-may-03) | | maintained by Vin Shelton. | | | | | | XEmacs 21.5.14 (01-jun-03) | | | | XEmacs 21.4.14 (05-sep-03) | | | | | | XEmacs 21.5.16 (26-sep-03) 2004 | | | | XEmacs 21.4.15 (03-feb-04) | | | | | | XEmacs 21.5.18 (22-oct-04) | | | | XEmacs 21.4.17 (06-feb-05) | 2005 | | | GNU Emacs 21.4a (17-feb-05) | XEmacs 21.5.19 (18-feb-05) | | | | | XEmacs 21.5.23 (26-oct-05) | | | | XEmacs 21.4.18 (03-dec-05) | | | | | | XEmacs 21.5.24 (19-dec-05) | | | 2006 | XEmacs 21.4.19 (28-jan-06) | | | | | | XEmacs 21.5.28 (21-may-06) | | | XEmacs 21.4.20 (09-dec-06) | | GNU Emacs 22.1 (02-jun-07) | | 2007 XEmacs 21.4.21 (14-oct-07) ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 16:51 ` Gregory Heytings 2021-03-23 17:13 ` Eli Zaretskii 2021-03-23 18:08 ` Alfred M. Szmidt @ 2021-03-24 6:32 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-24 6:32 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, larsi, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-23 20:53]: > IMO Emacs should aim at being fully usable, including all its > extensions, without ever having to edit configuration files manually > (and without restarting Emacs). From that specific view point how you think Emacs should work that users ever edit configuration file manually, I do understand it. It would increase the usability of Emacs by beginners, but it would hide the configuration file which is program and software that users create. We have got butterfly effect in Emacs from where you and other people came to improve Emacs and created many other software. Reference: https://en.wikipedia.org/wiki/Butterfly_effect Because Emacs was never Android with "click and play" features, it created so many programmers. Because it is programmable Editor it helped many programmers to extend Emacs. Would we have all the features in Emacs by the system "Click and Play" very easy to go -- we would have less people collaborating on creating free software and also software extending Emacs. We can see that in example on Android devices where users are clueless, totally clueless that they can change, modify, create some software. They are not told so, they are shaped as consumers, used, who use applications and considered as number, not human, without any collaboration or participation in software. They have no idea what is Android, how it runs, how could they contribute, not even file bugs, few free software repositories help on that like F-Droid -- but from beginners' view point, software is too usable, but users may not even be aware that it is software, as all what they did is "click and play". It shaped our society to have largest number of computer users ever, also the largest number of programmers, but it made the worse ever ratio of number of programmers to number of computers! Emacs such as it is, is raising the number of programmers to the number of computers, as it gives incentives to users, incidentally or planned, to evaluate things, to work with other software, to configure this and that, and that is how programmers evolve. I would not be thus changing Emacs into situation where use is not supposed to think and create, as that situation we already have with Android and society of computer users who do not even know they are computer users. From the general view point of Emacs usability for beginners, beginners use arrows, they move cursor, use mouse, insert letters, symbols and numbers, open and save files. Emacs is thus very user friendly. I was beginner, we all were beginners, was it difficult to open and save files, write files? It was never difficult to me. > Major and minor mode packages can define keys that work out of the box in > buffers in which these modes are enabled. I suppose everyone would agree > that asking users who install a foo-mode package to add > > (define-key foo-mode-map (kbd "<some key>") #'foo-mode-do-something) > > lines in their init configuration file (and to restart Emacs) before being > able to use foo-mode would be cumbersome. I am sure it may look cumbersome, but user installing it is not a beginner. If it is beginner, one will start looking into function definition, it is incitement to learn programming, and yields with new Emacs contributors and programmers making extensions for software. By hiding configurations, we would limit evolvement of number of programmers in future. One other good example of people becoming programmers by casual incitement is the scratch buffer. Removing it, would make less programmers. Providing scratch buffers in various languages, would make more programmers. Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 14:37 ` Eli Zaretskii @ 2021-03-24 6:10 ` Jean Louis 1 sibling, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-24 6:10 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, larsi, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-23 17:19]: > Just type emacs -Q, M-x list-packages RET, RET. The package you now see > ('ace-window') asks you to fiddle with your init file by adding a > 'global-set-key' to it. The second package in the list ('ack') does the > same. And so forth. That's not a problem for you and me, it is a problem > for newcomers, and these 'global-set-key's should be done automatically, > during the installation process. I really do not believe it is a problem for newcomers, but if you do, I would like to see how you get that data. Newcomers in almost any editor will be able to: - move cursors with arrows - insert chars with letters - delete chars with backspace or DEL - open and save files That is it. More than that newcomers do not need. Almost every editor will provide arrows as key bindings to move, saving and opening files. As soon as newcomer starts installing `ace-window' it is not "newcomer" any more. :-) > Do you know any other software that asks you to change a > configuration file manually to use an extension package? Actually it is not software that asks user, but README or source code. Software provides functions which user may use with M-x and for convenience such can be placed in the menu or on key bindings. We already discussed that software could ask user about the proposed key bindings and that it would be good so as it forwards artificial intelligence in Emacs which now excels itself only in the "Emacs Psychotherapist" part. Your point is valid and useful. When asking which other software asks you to change a configuration file manually, well, other software usually do not install functions that become convenient when placed on a key. So we do not speak just of extensions, we speak of how to make commands from extensions more convenient. They however work without key bindings. Key bindings is convenience for commands. Let us consider example of Gimp as other software, not being editor and having extensions. GIMP works with GTK, and GTK allows changing key bindings for every menu function on the fly. Isn't that handy? Again, to allow such change for any function on the fly, one has to configure it in: /home/data1/protected/.gtkrc-2.0.mine to be: gtk-can-change-accels = 1 Then user can go to favorite function such as "Blur" and press key on the menu item such as C-9 to assign Blur to C-9 on the fly. From there on I see your proposal that users should be spared of customizing key bindings very positive for progress of Emacs. I do not know if Emacs GTK version allows GTK to change key bindings by pressing a key on the menu, but it should in my opinion, follow the example of GTK and GIMP above, and various other GTK based software, at least in GTK version of Emacs. Maybe it does, I have never tried. To improve Emacs in general, I would propose that: - Package authors should be nudged by instructions from the manual to make menu for the package by default, and that users can be asked upon installation if they wish to have menu turned on -- and how to turn it on later if they did not decide to turn it on. Menus could be sub-menu of new Extensions menu, as that way the menu line would not be full of various packages' menus. - Once user is in any menu, user could then press a key and assign key bindings. If user attempts to assign default key binding, Emacs would ask user twice about that decision. Otherwise any empty key bindings could be assigned to menu. - Package key binding assignment function. Instead or in addition to the menu system above that would allow simple customization by using mouse, Emacs could have a built in general function that summarizes all interactive commands from a package and asks user how to assign key bindings. This solves the problem on individual basis for each user separately, and does not ask package authors to do anything special. Package key binding assignment function ======================================= It would work as following: - when package P is loaded, Emacs would create automatically new interactive function named P-assign-keys - function `P-assign-keys' would encompass all interactive functions from package P - it would ask user: - For the function P-function-1 "This function erases screen as example" -- would you like to assign key bindings? When user attempts to assign default key bindings, user would be asked twice if sure. When user attempts to assign already assigned, but not default key binding, function would say it is already assigned and again ask user twice If key is not bound, it would just get assigned. - package authors could propose some default key bindings in a list that would be used by general key binding assignment function That way all keys can be assigned interactively with user having control how to do it. Package authors would not need to do anything special. If they do propose some key bindings, they could provide a list, and that list could be used by the general key bindings assignment function. When `P-assign-keys' is invoked, it would display some key bindings that package author recommended as default. Authors could also exclude some functions from `P-assign-keys' processing unless user press C-u to assign key bindings to all. That would eliminate users to make key bindings, but it would also not impose on users any new key bindings without users' control. Upon installation of a package, user could be asked if one wishes to assign key bindings immediately. > As the author of Magit wrote when he added the "C-x g" global binding: > > "Some [...] beginners will initially have a low threshold for things not > working out of the box and I don't want to (continue to) scare them off by > immediately forcing them to learn how to add key bindings and what that even > means. There's a lot of talk about making Emacs friendlier for beginners > and this is a small step in that direction." [1] > > [1] https://github.com/magit/magit/pull/4237#issuecomment-723495053 Sorry, the above paragraph is to me contradictory, as who uses Magit cannot be a beginner, and I telling people how to change key bindings results with programmers who contribute to Emacs or make their own packages. Let us not shoot in our own foot by sparing people to learn something new. Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:40 ` Eli Zaretskii 2021-03-22 17:55 ` Gregory Heytings @ 2021-03-22 18:17 ` Lars Ingebrigtsen 2021-03-22 18:50 ` Eli Zaretskii 2021-03-22 20:56 ` Thierry Volpiatto 2 siblings, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 18:17 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> I don't use `C-o' myself, so I can't really say to what degree this >> would be annoying or not for users. Any `C-o' users who have an opinion >> here? > > I use it _a_lot_. `M-o M-o' seemed to be a command that many people were unaware of, but when they learned of what it was used for, they recognised the utility of such a command. (I was certainly one of them.) I've tried using `C-o' here and there, but it never seems to do what I want, so I wonder what the practical use case for this command is. I'm probably missing something. That is, I expected the command to go from this: (defun eww-detect-charset (html-p) (let ((case-fold-search| t) to this: (defun eww-detect-charset (html-p) (let ((case-fold-search| t) Instead it gives me this: (defun eww-detect-charset (html-p) (let ((case-fold-search| t) The | character gives the point position. In text-like modes it seems less awkward, since I just `M-q' afterwards anyway. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:17 ` Lars Ingebrigtsen @ 2021-03-22 18:50 ` Eli Zaretskii 2021-03-22 19:09 ` Lars Ingebrigtsen 0 siblings, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 18:50 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: gregory@heytings.org, emacs-devel@gnu.org > Date: Mon, 22 Mar 2021 19:17:25 +0100 > > That is, I expected the command to go from this: > > (defun eww-detect-charset (html-p) > (let ((case-fold-search| t) > > to this: > > (defun eww-detect-charset (html-p) > (let ((case-fold-search| > t) > > Instead it gives me this: > > (defun eww-detect-charset (html-p) > (let ((case-fold-search| > t) This command isn't supposed to reindent the next line, it just inserts a newline. My main use for it is to move line(s) downward when point is in column zero. The 'o' in C-o stands for "open" a line. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:50 ` Eli Zaretskii @ 2021-03-22 19:09 ` Lars Ingebrigtsen 2021-03-22 19:55 ` Lars Ingebrigtsen 2021-03-22 20:22 ` Gregory Heytings 0 siblings, 2 replies; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 19:09 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > This command isn't supposed to reindent the next line, it just inserts > a newline. My main use for it is to move line(s) downward when point > is in column zero. The 'o' in C-o stands for "open" a line. I see. Yes, that seems useful. Gregory, I don't think there's much point in doing this experiment -- the pushback is already substantial, so I think we have the data we need already. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:09 ` Lars Ingebrigtsen @ 2021-03-22 19:55 ` Lars Ingebrigtsen 2021-03-22 22:02 ` Stefan Kangas 2021-03-22 20:22 ` Gregory Heytings 1 sibling, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 19:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Gregory, I don't think there's much point in doing this experiment -- > the pushback is already substantial, so I think we have the data we need > already. The tenor of discussion in this thread has been shocking, though, with people ascribing nefarious motivations to Gregory's suggestion. Please stop doing this -- it makes this mailing list distinctly unfriendly. People should be free to make suggestions without being sniped at. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:55 ` Lars Ingebrigtsen @ 2021-03-22 22:02 ` Stefan Kangas 2021-03-22 22:33 ` [External] : " Drew Adams 2021-03-22 22:44 ` Dmitry Gutov 0 siblings, 2 replies; 154+ messages in thread From: Stefan Kangas @ 2021-03-22 22:02 UTC (permalink / raw) To: Lars Ingebrigtsen, Eli Zaretskii; +Cc: gregory, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Lars Ingebrigtsen <larsi@gnus.org> writes: > >> Gregory, I don't think there's much point in doing this experiment -- >> the pushback is already substantial, so I think we have the data we need >> already. > > The tenor of discussion in this thread has been shocking, though, with > people ascribing nefarious motivations to Gregory's suggestion. Please > stop doing this -- it makes this mailing list distinctly unfriendly. > > People should be free to make suggestions without being sniped at. +1 FWIW, I don't particularly see the need for freeing up a key for third-party packages. But if we're going to do that, `C-o' seems like a bad choice. If it is to be worth changing this keybinding to anything, it should be to `find-file'. That is, after all, what all other software assigns this key to. ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [External] : Re: Suggested experimental test 2021-03-22 22:02 ` Stefan Kangas @ 2021-03-22 22:33 ` Drew Adams 2021-03-22 23:28 ` Stefan Kangas 2021-03-22 22:44 ` Dmitry Gutov 1 sibling, 1 reply; 154+ messages in thread From: Drew Adams @ 2021-03-22 22:33 UTC (permalink / raw) To: Stefan Kangas, Lars Ingebrigtsen, Eli Zaretskii Cc: gregory@heytings.org, emacs-devel@gnu.org > If it is to be worth changing this keybinding [`C-o'] > to anything, it should be to `find-file'. That is, > after all, what all other software assigns this key to. Wow. Just wow. After all. What's next? ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [External] : Re: Suggested experimental test 2021-03-22 22:33 ` [External] : " Drew Adams @ 2021-03-22 23:28 ` Stefan Kangas 0 siblings, 0 replies; 154+ messages in thread From: Stefan Kangas @ 2021-03-22 23:28 UTC (permalink / raw) To: Drew Adams, Lars Ingebrigtsen, Eli Zaretskii Cc: gregory@heytings.org, emacs-devel@gnu.org Drew Adams <drew.adams@oracle.com> writes: > After all. What's next? Do you mean besides rebinding `C-p' to `print-buffer' in Emacs 28.1? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 22:02 ` Stefan Kangas 2021-03-22 22:33 ` [External] : " Drew Adams @ 2021-03-22 22:44 ` Dmitry Gutov 2021-03-22 23:22 ` Stefan Kangas ` (2 more replies) 1 sibling, 3 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-22 22:44 UTC (permalink / raw) To: Stefan Kangas, Lars Ingebrigtsen, Eli Zaretskii; +Cc: gregory, emacs-devel On 23.03.2021 00:02, Stefan Kangas wrote: > But if we're going to do that, `C-o' seems like a bad choice. If it is > to be worth changing this keybinding to anything, it should be to > `find-file'. That is, after all, what all other software assigns this > key to. I think something like this is only worthwhile if we were changing a whole bunch of bindings. Like not just C-o, but also C-n and C-s, to their "other software" counterparts. Perhaps not by default, but as a part of some "keybindings theme". Since the goal of the experiment was to free up the binding, that could've been beneficial in the context of such themes (the fewer important default bindings a theme touches, the fewer of them it has to reassign), but indeed not particularly critical given that C-o's current binding has no standard counterparts in other editors. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 22:44 ` Dmitry Gutov @ 2021-03-22 23:22 ` Stefan Kangas 2021-03-23 5:22 ` Jean Louis 2021-03-23 6:12 ` Yuri Khan 2 siblings, 0 replies; 154+ messages in thread From: Stefan Kangas @ 2021-03-22 23:22 UTC (permalink / raw) To: Dmitry Gutov, Lars Ingebrigtsen, Eli Zaretskii; +Cc: gregory, emacs-devel Dmitry Gutov <dgutov@yandex.ru> writes: > On 23.03.2021 00:02, Stefan Kangas wrote: >> But if we're going to do that, `C-o' seems like a bad choice. If it is >> to be worth changing this keybinding to anything, it should be to >> `find-file'. That is, after all, what all other software assigns this >> key to. > > I think something like this is only worthwhile if we were changing a > whole bunch of bindings. Like not just C-o, but also C-n and C-s, to > their "other software" counterparts. Perhaps. But it also gets progressively harder to convince emacs-devel about it the more keys you add into the mix. Being an old crank, I'm not even sure I'm very convinced myself. ;-) > Perhaps not by default, but as a part of some "keybindings theme". Yes, it would definitely be interesting to see if making far-reaching changes in keybindings could work out. A theme/profile would be a good and presumably uncontroversial method to find out. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 22:44 ` Dmitry Gutov 2021-03-22 23:22 ` Stefan Kangas @ 2021-03-23 5:22 ` Jean Louis 2021-03-23 7:43 ` Eli Zaretskii 2021-03-23 6:12 ` Yuri Khan 2 siblings, 1 reply; 154+ messages in thread From: Jean Louis @ 2021-03-23 5:22 UTC (permalink / raw) To: Dmitry Gutov Cc: Lars Ingebrigtsen, gregory, Eli Zaretskii, Stefan Kangas, emacs-devel * Dmitry Gutov <dgutov@yandex.ru> [2021-03-23 01:45]: > Perhaps not by default, but as a part of some "keybindings theme". Since the > goal of the experiment was to free up the binding, that could've been > beneficial in the context of such themes (the fewer important default > bindings a theme touches, the fewer of them it has to reassign), but indeed > not particularly critical given that C-o's current binding has no standard > counterparts in other editors. Good idea! Making an experimental theme that user can use with other themes together is good idea that would not collide with anybody. Then NEWS or other helpful information could ask users to test the key bindings or other functions, and even users on Emacs stable could test it. The experimental theme could be chosen from `customize-themes'. It could also provide a reporting function so that users can send back their impressions. That way experiments go in parallel not disturbing the default key bindings and users aware or willing to participate may do so. Jean ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 5:22 ` Jean Louis @ 2021-03-23 7:43 ` Eli Zaretskii 2021-03-23 12:28 ` Philip Kaludercic 0 siblings, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 7:43 UTC (permalink / raw) To: Jean Louis; +Cc: larsi, gregory, emacs-devel, stefankangas, dgutov > Date: Tue, 23 Mar 2021 08:22:19 +0300 > From: Jean Louis <bugs@gnu.support> > Cc: Lars Ingebrigtsen <larsi@gnus.org>, gregory@heytings.org, > Eli Zaretskii <eliz@gnu.org>, Stefan Kangas <stefankangas@gmail.com>, > emacs-devel@gnu.org > > That way experiments go in parallel not disturbing the default key > bindings and users aware or willing to participate may do so. That just delays the dispute to the point when we want to consider making some of the bindings the default. So it basically may solve a secondary problem -- how to conduct the experiment -- but not the main problem, which is whether and how to change bindings that existed in Emacs since about forever. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 7:43 ` Eli Zaretskii @ 2021-03-23 12:28 ` Philip Kaludercic 2021-03-23 12:41 ` Eli Zaretskii 0 siblings, 1 reply; 154+ messages in thread From: Philip Kaludercic @ 2021-03-23 12:28 UTC (permalink / raw) To: Eli Zaretskii Cc: Jean Louis, emacs-devel, gregory, stefankangas, dgutov, larsi Eli Zaretskii <eliz@gnu.org> writes: >> Date: Tue, 23 Mar 2021 08:22:19 +0300 >> From: Jean Louis <bugs@gnu.support> >> Cc: Lars Ingebrigtsen <larsi@gnus.org>, gregory@heytings.org, >> Eli Zaretskii <eliz@gnu.org>, Stefan Kangas <stefankangas@gmail.com>, >> emacs-devel@gnu.org >> >> That way experiments go in parallel not disturbing the default key >> bindings and users aware or willing to participate may do so. > > That just delays the dispute to the point when we want to consider > making some of the bindings the default. So it basically may solve a > secondary problem -- how to conduct the experiment -- but not the main > problem, which is whether and how to change bindings that existed in > Emacs since about forever. Forgive me for asking, maybe I'm missing something, but why should the changes be made default? Isn't the idea of providing a theme to change the behaviour that users can enable or disable them easily, without the defaults having to change? -- Philip K. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 12:28 ` Philip Kaludercic @ 2021-03-23 12:41 ` Eli Zaretskii 2021-03-23 13:09 ` Dmitry Gutov 2021-03-24 5:07 ` Jean Louis 0 siblings, 2 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 12:41 UTC (permalink / raw) To: Philip Kaludercic; +Cc: bugs, emacs-devel, gregory, stefankangas, dgutov, larsi > From: Philip Kaludercic <philipk@posteo.net> > Cc: Jean Louis <bugs@gnu.support>, larsi@gnus.org, gregory@heytings.org, > emacs-devel@gnu.org, stefankangas@gmail.com, dgutov@yandex.ru > Date: Tue, 23 Mar 2021 13:28:19 +0100 > > > That just delays the dispute to the point when we want to consider > > making some of the bindings the default. So it basically may solve a > > secondary problem -- how to conduct the experiment -- but not the main > > problem, which is whether and how to change bindings that existed in > > Emacs since about forever. > > Forgive me for asking, maybe I'm missing something, but why should the > changes be made default? The context was the discussion of changes in key bindings. If they are not changed by default, how else can such a change be made? > Isn't the idea of providing a theme to change the behaviour that users > can enable or disable them easily, without the defaults having to change? The theme suggestion was a proposal to conduct an experiment without interfering with those who want no part in the experiment. But eventually, the intent is to change the default behavior, because rebinding any key to any command is already possible, and nothing prevents users from doing that in their private init files. So having a non-default theme that makes a bunch of such rebindings makes little sense to me. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 12:41 ` Eli Zaretskii @ 2021-03-23 13:09 ` Dmitry Gutov 2021-03-23 13:27 ` Philip Kaludercic 2021-03-23 13:54 ` Eli Zaretskii 2021-03-24 5:07 ` Jean Louis 1 sibling, 2 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-23 13:09 UTC (permalink / raw) To: Eli Zaretskii, Philip Kaludercic Cc: larsi, stefankangas, gregory, bugs, emacs-devel On 23.03.2021 14:41, Eli Zaretskii wrote: >> Isn't the idea of providing a theme to change the behaviour that users >> can enable or disable them easily, without the defaults having to change? > > The theme suggestion was a proposal to conduct an experiment without > interfering with those who want no part in the experiment. It has another goal as well: to have bindings changed in a logical and consistent fashion. Having find-file on both 'C-x C-f' and 'C-o' would make little sense to me, for example. > But > eventually, the intent is to change the default behavior, because > rebinding any key to any command is already possible, and nothing > prevents users from doing that in their private init files. So having > a non-default theme that makes a bunch of such rebindings makes little > sense to me. I think the above is more important than the goal of making it a default (which might or might not happen in 10 years or so, if we end up reaching some critical mass of users who dislike Emacs's historical bindings). But even while the alternative keybindings theme is not the default, we would maintain it and keep it usable. Whenever we add something to the default set, we would consider adding a corresponding binding to that other theme, etc. Having an alternative, well-considered set of bindings which new user can just toggle on and get comfortable should be valuable. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 13:09 ` Dmitry Gutov @ 2021-03-23 13:27 ` Philip Kaludercic 2021-03-23 14:00 ` Dmitry Gutov 2021-03-23 13:54 ` Eli Zaretskii 1 sibling, 1 reply; 154+ messages in thread From: Philip Kaludercic @ 2021-03-23 13:27 UTC (permalink / raw) To: Dmitry Gutov Cc: bugs, emacs-devel, gregory, stefankangas, Eli Zaretskii, larsi Dmitry Gutov <dgutov@yandex.ru> writes: > On 23.03.2021 14:41, Eli Zaretskii wrote: >> But eventually, the intent is to change the default behavior, because >> rebinding any key to any command is already possible, and nothing >> prevents users from doing that in their private init files. So >> having a non-default theme that makes a bunch of such rebindings >> makes little sense to me. > > I think the above is more important than the goal of making it a > default (which might or might not happen in 10 years or so, if we end > up reaching some critical mass of users who dislike Emacs's historical > bindings). > > But even while the alternative keybindings theme is not the default, > we would maintain it and keep it usable. Whenever we add something to > the default set, we would consider adding a corresponding binding to > that other theme, etc. You mean new default commands, right? > Having an alternative, well-considered set of bindings which new user > can just toggle on and get comfortable should be valuable. Yes, this was my understanding too. Ideally, the splash screen could instruct new users how to change the UX theme, making it easier to get comfortable. -- Philip K. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 13:27 ` Philip Kaludercic @ 2021-03-23 14:00 ` Dmitry Gutov 0 siblings, 0 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-23 14:00 UTC (permalink / raw) To: Philip Kaludercic Cc: bugs, emacs-devel, gregory, stefankangas, Eli Zaretskii, larsi On 23.03.2021 15:27, Philip Kaludercic wrote: > Dmitry Gutov <dgutov@yandex.ru> writes: > >> On 23.03.2021 14:41, Eli Zaretskii wrote: > >>> But eventually, the intent is to change the default behavior, because >>> rebinding any key to any command is already possible, and nothing >>> prevents users from doing that in their private init files. So >>> having a non-default theme that makes a bunch of such rebindings >>> makes little sense to me. >> >> I think the above is more important than the goal of making it a >> default (which might or might not happen in 10 years or so, if we end >> up reaching some critical mass of users who dislike Emacs's historical >> bindings). >> >> But even while the alternative keybindings theme is not the default, >> we would maintain it and keep it usable. Whenever we add something to >> the default set, we would consider adding a corresponding binding to >> that other theme, etc. > > You mean new default commands, right? Yup. Or other changes in the default set (moves, removals, replacements). >> Having an alternative, well-considered set of bindings which new user >> can just toggle on and get comfortable should be valuable. > > Yes, this was my understanding too. Ideally, the splash screen could > instruct new users how to change the UX theme, making it easier to get > comfortable. Some initial screen could do that, yes. Or at least we would tell about in the same places we mention cua-mode now. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 13:09 ` Dmitry Gutov 2021-03-23 13:27 ` Philip Kaludercic @ 2021-03-23 13:54 ` Eli Zaretskii 2021-03-23 17:04 ` Dmitry Gutov 2021-03-23 21:06 ` chad 1 sibling, 2 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 13:54 UTC (permalink / raw) To: Dmitry Gutov; +Cc: philipk, bugs, emacs-devel, gregory, stefankangas, larsi > Cc: bugs@gnu.support, larsi@gnus.org, gregory@heytings.org, > emacs-devel@gnu.org, stefankangas@gmail.com > From: Dmitry Gutov <dgutov@yandex.ru> > Date: Tue, 23 Mar 2021 15:09:50 +0200 > > Having an alternative, well-considered set of bindings which new user > can just toggle on and get comfortable should be valuable. I doubt that, because we already tried that in CUA mode. That one actually was better posed to succeed, since its key bindings weren't invented "out of thin air", but use widely accepted conventions. That said, I have no objection to having non-default sets of key bindings that users can turn on at will. I was only responding to what I thought was a proposal for conducting such experiments with the eventual goal of making the bindings the default. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 13:54 ` Eli Zaretskii @ 2021-03-23 17:04 ` Dmitry Gutov 2021-03-23 21:06 ` chad 1 sibling, 0 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-23 17:04 UTC (permalink / raw) To: Eli Zaretskii; +Cc: philipk, bugs, emacs-devel, gregory, stefankangas, larsi On 23.03.2021 15:54, Eli Zaretskii wrote: >> Cc: bugs@gnu.support, larsi@gnus.org, gregory@heytings.org, >> emacs-devel@gnu.org, stefankangas@gmail.com >> From: Dmitry Gutov <dgutov@yandex.ru> >> Date: Tue, 23 Mar 2021 15:09:50 +0200 >> >> Having an alternative, well-considered set of bindings which new user >> can just toggle on and get comfortable should be valuable. > > I doubt that, because we already tried that in CUA mode. That one > actually was better posed to succeed, since its key bindings weren't > invented "out of thin air", but use widely accepted conventions. CUA mode is only halfway there (if that). It doesn't reach the other common bindings, such as C-o for 'open file', C-n for 'new file', C-s for 'save file', C-f for 'search forward', C-y for 'redo', C-a for 'select all'. And its dispatch is timer-based, as Yuri reminds us. Which is a constant source of subtle annoyance which makes its use untenable long-term, IMHO. Only as a set of training wheels for new users, but I wonder if even that is a good role for it, given that those annoyances create a worse impression of the editor for users who enabled it. > That said, I have no objection to having non-default sets of key > bindings that users can turn on at will. I was only responding to > what I thought was a proposal for conducting such experiments with the > eventual goal of making the bindings the default. You said "having a non-default theme that makes a bunch of such rebindings makes little sense to me". I have hopefully addressed that. And as for making such a theme a default, that's far off enough in the future not to worry about it much. But OTOH if we manage to make this "keybinding theme" approach work, even a switch to a different theme by default won't have to be too painful for the many existing users, since they would be able to turn on the "Emacs classic" keybinding theme, which we will surely create by then. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 13:54 ` Eli Zaretskii 2021-03-23 17:04 ` Dmitry Gutov @ 2021-03-23 21:06 ` chad 1 sibling, 0 replies; 154+ messages in thread From: chad @ 2021-03-23 21:06 UTC (permalink / raw) To: Eli Zaretskii Cc: Philip K., Jean Louis, EMACS development team, Gregory Heytings, Stefan Kangas, Dmitry Gutov, Lars Ingebrigtsen [-- Attachment #1: Type: text/plain, Size: 1501 bytes --] On Tue, Mar 23, 2021 at 7:05 AM Eli Zaretskii <eliz@gnu.org> wrote: > > Cc: bugs@gnu.support, larsi@gnus.org, gregory@heytings.org, > > emacs-devel@gnu.org, stefankangas@gmail.com > > From: Dmitry Gutov <dgutov@yandex.ru> > > Date: Tue, 23 Mar 2021 15:09:50 +0200 > > > > Having an alternative, well-considered set of bindings which new user > > can just toggle on and get comfortable should be valuable. > > I doubt that, because we already tried that in CUA mode. That one > actually was better posed to succeed, since its key bindings weren't > invented "out of thin air", but use widely accepted conventions. > FWIW, over the years, I have seen several people who were very interested in CUA mode who eventually turned it off due to it working "most but not all of the time". This experience is pretty old, but internet searches show similar feedback continuing since then. In practice, it means that users who might have recommended cua-mode instead anti-recommend it. When I've looked at it for other people, it seems like an issue that can't actually be fixed, because the people who care enough to change the bindings need them to be absolutely %100 reliable, which the time-based approach isn't. I'm afraid that I can't help more than that -- emacs' default bindings are far more ingrained for me than the CUA bindings (a fact that I learned to accept long ago when moving away from emacs' `C-w' and `C-q'). This is all to say: cua-mode has its own set of problems as an example. ~Chad [-- Attachment #2: Type: text/html, Size: 2284 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 12:41 ` Eli Zaretskii 2021-03-23 13:09 ` Dmitry Gutov @ 2021-03-24 5:07 ` Jean Louis 2021-03-25 5:09 ` Richard Stallman 1 sibling, 1 reply; 154+ messages in thread From: Jean Louis @ 2021-03-24 5:07 UTC (permalink / raw) To: Eli Zaretskii Cc: Philip Kaludercic, bugs, emacs-devel, gregory, stefankangas, dgutov, larsi * Eli Zaretskii <eliz@gnu.org> [2021-03-23 15:42]: > The context was the discussion of changes in key bindings. If they > are not changed by default, how else can such a change be made? As a theme in Emacs Development it would allow easier testing without changing defaults. But it includes Emacs Development only. Another way could be as extension or package in ELPA, making a package and publishing it in ELPA as: experiment-001 -- would allow many Emacs users to test it, not just developers. Package could supply feedback function. By pointing out that it is experiment that needs user feedback, the results would be richer with more facts from various Emacs versions as well. That would be also one good way to ask users polls without influencing their Emacs version. If results are useful for some users, than a non-experimenting package can be made that can be obtained from ELPA. If results are appear to be useful for very many users, that could then lead to new versions of Emacs. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-24 5:07 ` Jean Louis @ 2021-03-25 5:09 ` Richard Stallman 0 siblings, 0 replies; 154+ messages in thread From: Richard Stallman @ 2021-03-25 5:09 UTC (permalink / raw) To: Jean Louis Cc: philipk, emacs-devel, gregory, stefankangas, dgutov, larsi, eliz [[[ 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. ]]] > > The context was the discussion of changes in key bindings. If they > > are not changed by default, how else can such a change be made? > As a theme in Emacs Development it would allow easier testing without > changing defaults. But it includes Emacs Development only. > Another way could be as extension or package in ELPA, making a package > and publishing it in ELPA as: If the new bindings use commands that already exist, and the change is limited to the key bindings, the simplest way is to add a command to alter those bindings. -- 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] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 22:44 ` Dmitry Gutov 2021-03-22 23:22 ` Stefan Kangas 2021-03-23 5:22 ` Jean Louis @ 2021-03-23 6:12 ` Yuri Khan 2021-03-24 23:41 ` Dmitry Gutov 2 siblings, 1 reply; 154+ messages in thread From: Yuri Khan @ 2021-03-23 6:12 UTC (permalink / raw) To: Dmitry Gutov Cc: Lars Ingebrigtsen, Gregory Heytings, Eli Zaretskii, Stefan Kangas, Emacs developers On Tue, 23 Mar 2021 at 05:45, Dmitry Gutov <dgutov@yandex.ru> wrote: > I think something like this is only worthwhile if we were changing a > whole bunch of bindings. Like not just C-o, but also C-n and C-s, to > their "other software" counterparts. More importantly, we should have a bulletproof way to move things off C-x and C-c. The workaround we have in cua-mode is time-sensitive and, depending on network lag, I regularly get false negatives (switching buffers on ‘C-x →’ when I meant to cut and move right) and false positives (copy and overwrite region on ‘C-c C-c >’ when I meant to ‘python-indent-shift-right’). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 6:12 ` Yuri Khan @ 2021-03-24 23:41 ` Dmitry Gutov 2021-03-25 6:12 ` Yuri Khan 0 siblings, 1 reply; 154+ messages in thread From: Dmitry Gutov @ 2021-03-24 23:41 UTC (permalink / raw) To: Yuri Khan Cc: Lars Ingebrigtsen, Gregory Heytings, Eli Zaretskii, Stefan Kangas, Emacs developers On 23.03.2021 08:12, Yuri Khan wrote: > On Tue, 23 Mar 2021 at 05:45, Dmitry Gutov<dgutov@yandex.ru> wrote: > >> I think something like this is only worthwhile if we were changing a >> whole bunch of bindings. Like not just C-o, but also C-n and C-s, to >> their "other software" counterparts. > More importantly, we should have a bulletproof way to move things off > C-x and C-c. The workaround we have in cua-mode is time-sensitive and, > depending on network lag, I regularly get false negatives (switching > buffers on ‘C-x →’ when I meant to cut and move right) and false > positives (copy and overwrite region on ‘C-c C-c >’ when I meant to > ‘python-indent-shift-right’). I think there are basically two directions: - Find two other C-<char> prefix key combinations to move the main prefix keymaps to. C-d and C-e come to mind (basically all other keys that are situated closer to Ctrl or Caps on a qwerty keyboard are all taken up by popular bindings such as C-a "select all" or C-s "save file"). - Go all the way to VS Code/Atom/Notepad/etc approach and depopulate these prefix maps. And then use two modifiers at a time for the important commands/prefix maps which we still need to have bindings. For example, that would move 'C-x v' to 'C-M-g' and 'C-x C-i' to 'C-M-o', or similar (Emacs is a lot more keyboard-driven than the other editors in this example, so a lot of our commands don't have direct counterparts to look up bindings of, and we'll need to improvise). Or maybe we could combine these both in some productive fashion. Not sure if that's the response you were looking for. Personally, I'm content with only using a small part of foreign conventions in my Emacs bindings and not looking to switch away. But if we're going to devise a proper solution for newcomer-friendly bindings, I don't think we should stop at just the four that cua-mode changes. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-24 23:41 ` Dmitry Gutov @ 2021-03-25 6:12 ` Yuri Khan 2021-03-25 13:20 ` Dmitry Gutov 0 siblings, 1 reply; 154+ messages in thread From: Yuri Khan @ 2021-03-25 6:12 UTC (permalink / raw) To: Dmitry Gutov Cc: Lars Ingebrigtsen, Gregory Heytings, Eli Zaretskii, Stefan Kangas, Emacs developers On Thu, 25 Mar 2021 at 06:41, Dmitry Gutov <dgutov@yandex.ru> wrote: > > we should have a bulletproof way to move things off > > C-x and C-c. > > I think there are basically two directions: > > - Find two other C-<char> prefix key combinations to move the main > prefix keymaps to. C-d and C-e come to mind (basically all other keys > that are situated closer to Ctrl or Caps on a qwerty keyboard are all > taken up by popular bindings such as C-a "select all" or C-s "save file"). What, being close to (left) Ctrl on a QWERTY is/was a consideration when choosing C-x and C-c? This makes sense, as much as it does for Undo/Cut/Copy/Paste. > - Go all the way to VS Code/Atom/Notepad/etc approach and depopulate > these prefix maps. And then use two modifiers at a time for the > important commands/prefix maps which we still need to have bindings. For > example, that would move 'C-x v' to 'C-M-g' and 'C-x C-i' to 'C-M-o', or > similar. In my personal bindings, I do prefer C-M-, C-S- and M-S- combinations to sequences. (Also function keys and their C- and S- combinations.) > Or maybe we could combine these both in some productive fashion. > > Not sure if that's the response you were looking for. Personally, I'm > content with only using a small part of foreign conventions in my Emacs > bindings and not looking to switch away. But if we're going to devise a > proper solution for newcomer-friendly bindings, I don't think we should > stop at just the four that cua-mode changes. I’m way past the newcomer stage but I have not and am not going to adopt Emacs as my desktop environment. And, for me, consistency across the desktop is important. So I want C-x for cut and C-c for copy, and I might like to move their traditional maps to any of C-[abdefimnop;'] or maybe <menu> (because my keyboard has working arrow keys and Home and End at positions that do not require me to move my wrists so I don’t get the traditionally quoted benefit from C-[fbnp]). But, while I can (mostly) rebind something to ctl-x-map, in order to move things off C-c, I’d have to basically copy every mode’s map into my configuration and replace C-c with <menu>. Alternatively, I could use some key translation mechanism to pretend <menu> produces C-c and C-c produces <XF86Copy> or some such, but I’m not sure if that would also affect sequences where C-c is not the first key (and I’d probably like it not to). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 6:12 ` Yuri Khan @ 2021-03-25 13:20 ` Dmitry Gutov 2021-03-25 14:30 ` Basil L. Contovounesios 2021-03-25 19:30 ` Yuri Khan 0 siblings, 2 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-25 13:20 UTC (permalink / raw) To: Yuri Khan Cc: Lars Ingebrigtsen, Gregory Heytings, Eli Zaretskii, Stefan Kangas, Emacs developers On 25.03.2021 08:12, Yuri Khan wrote: > On Thu, 25 Mar 2021 at 06:41, Dmitry Gutov <dgutov@yandex.ru> wrote: > >>> we should have a bulletproof way to move things off >>> C-x and C-c. >> >> I think there are basically two directions: >> >> - Find two other C-<char> prefix key combinations to move the main >> prefix keymaps to. C-d and C-e come to mind (basically all other keys >> that are situated closer to Ctrl or Caps on a qwerty keyboard are all >> taken up by popular bindings such as C-a "select all" or C-s "save file"). > > What, being close to (left) Ctrl on a QWERTY is/was a consideration > when choosing C-x and C-c? This makes sense, as much as it does for > Undo/Cut/Copy/Paste. It surely needs to be comfortable to press with one hand. >> - Go all the way to VS Code/Atom/Notepad/etc approach and depopulate >> these prefix maps. And then use two modifiers at a time for the >> important commands/prefix maps which we still need to have bindings. For >> example, that would move 'C-x v' to 'C-M-g' and 'C-x C-i' to 'C-M-o', or >> similar. > > In my personal bindings, I do prefer C-M-, C-S- and M-S- combinations > to sequences. (Also function keys and their C- and S- combinations.) Not my preference, but that seems to reflect the bindings I see "out there". So you could be a good person to gauge to alternative bindings theme. > But, while I can (mostly) rebind something to ctl-x-map, in order to > move things off C-c, I’d have to basically copy every mode’s map into > my configuration and replace C-c with <menu>. Alternatively, I could > use some key translation mechanism to pretend <menu> produces C-c and > C-c produces <XF86Copy> or some such, but I’m not sure if that would > also affect sequences where C-c is not the first key (and I’d probably > like it not to). Yeah, C-x seems easier, because at least built-in code uses ctl-x-map (which you can move wholesale) and 3rd party packages can be asked to. But C-c doesn't have a dedicated keymap, so solving this seems like the first step. What could we do? (kbd (format "%s C-l" ctl-c-key-sequence) 'some-command) ? Or maybe create a bogus ctrl-c keymap and then make sure to refer to its binding with something like (kbd "[C-c] C-l" 'some-command) ...I'm not sure, ideas welcome. Something backward-compatible would be ideal. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 13:20 ` Dmitry Gutov @ 2021-03-25 14:30 ` Basil L. Contovounesios 2021-03-25 17:09 ` Dmitry Gutov 2021-03-25 18:59 ` Yuri Khan 2021-03-25 19:30 ` Yuri Khan 1 sibling, 2 replies; 154+ messages in thread From: Basil L. Contovounesios @ 2021-03-25 14:30 UTC (permalink / raw) To: Dmitry Gutov Cc: Emacs developers, Gregory Heytings, Stefan Kangas, Lars Ingebrigtsen, Yuri Khan, Eli Zaretskii Dmitry Gutov <dgutov@yandex.ru> writes: > But C-c doesn't have a dedicated keymap It does: mode-specific-map. See 'C-c' (heh) in the Elisp manual index. -- Basil ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 14:30 ` Basil L. Contovounesios @ 2021-03-25 17:09 ` Dmitry Gutov 2021-03-25 18:59 ` Yuri Khan 1 sibling, 0 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-25 17:09 UTC (permalink / raw) To: Basil L. Contovounesios Cc: Emacs developers, Gregory Heytings, Stefan Kangas, Lars Ingebrigtsen, Yuri Khan, Eli Zaretskii On 25.03.2021 16:30, Basil L. Contovounesios wrote: > Dmitry Gutov<dgutov@yandex.ru> writes: > >> But C-c doesn't have a dedicated keymap > It does: mode-specific-map. See 'C-c' (heh) in the Elisp manual index. Oh, nice. Any idea how to take advantage of it for the purpose discussed? If I compare the outputs of 'C-h v mode-specific-map' and 'C-c C-h', the former corresponds only to the "Global Bindings" section of the latter. But all the Minor Mode Bindings and Major Mode Bindings apparently don't use it. Not in my configuration/session, at least. Also, the manual says "its name provides useful information about ‘C-c’ in the output of ‘C-h b’ (‘display-bindings’)", but I don't see that. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 14:30 ` Basil L. Contovounesios 2021-03-25 17:09 ` Dmitry Gutov @ 2021-03-25 18:59 ` Yuri Khan 1 sibling, 0 replies; 154+ messages in thread From: Yuri Khan @ 2021-03-25 18:59 UTC (permalink / raw) To: Basil L. Contovounesios Cc: Emacs developers, Gregory Heytings, Stefan Kangas, Dmitry Gutov, Lars Ingebrigtsen, Eli Zaretskii On Thu, 25 Mar 2021 at 21:30, Basil L. Contovounesios <contovob@tcd.ie> wrote: > > But C-c doesn't have a dedicated keymap > > It does: mode-specific-map. See 'C-c' (heh) in the Elisp manual index. Yeah, there is an empty keymap named ‘mode-specific-command-prefix’ that is globally bound to C-c. As far as I can tell, that keymap’s sole purpose in life is making sure that ‘<f1> b’ lists “C-c mode-specific-command-prefix” somewhere way down under “Global bindings”. None of the modes seem to bind anything in that map, and in fact that would be counterproductive to them being modes. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 13:20 ` Dmitry Gutov 2021-03-25 14:30 ` Basil L. Contovounesios @ 2021-03-25 19:30 ` Yuri Khan 2021-03-25 21:11 ` Stefan Monnier 2021-03-26 23:34 ` Dmitry Gutov 1 sibling, 2 replies; 154+ messages in thread From: Yuri Khan @ 2021-03-25 19:30 UTC (permalink / raw) To: Dmitry Gutov Cc: Lars Ingebrigtsen, Gregory Heytings, Eli Zaretskii, Stefan Kangas, Emacs developers On Thu, 25 Mar 2021 at 20:20, Dmitry Gutov <dgutov@yandex.ru> wrote: > But C-c doesn't have a dedicated keymap, so solving this seems like the > first step. What could we do? > > (kbd (format "%s C-l" ctl-c-key-sequence) 'some-command) > > Or maybe create a bogus ctrl-c keymap and then make sure to refer to its > binding with something like > > (kbd "[C-c] C-l" 'some-command) > > ...I'm not sure, ideas welcome. How about this: * Introduce a virtual key, let’s call it <mode-specific>. Let’s specifically *not* name it <key-formerly-known-as-C-c>. * Have all modes use that as the prefix key for mode-specific commands, instead of C-c. * In the default configuration, translate C-c to <mode-specific>. Proof of concept: $ emacs -Q (define-key help-mode-map (kbd "<mode-specific> <mode-specific>") #'help-follow-symbol) (define-key help-mode-map (kbd "<mode-specific> C-b") #'help-go-back) (define-key help-mode-map (kbd "<mode-specific> C-f") #'help-go-forward) (define-key key-translation-map (kbd "<menu>") (kbd "<mode-specific>")) ;; C-x C-e all of the above (define-key help-mode-map (kbd "C-c C-c") nil) (define-key help-mode-map (kbd "C-c C-b") nil) (define-key help-mode-map (kbd "C-c C-f") nil) (define-key help-mode-map (kbd "C-c") nil) ;; should be unneeded after all modes convert (global-set-key (kbd "C-c") #'copy-region-as-kill) (global-set-key (kbd "C-v") #'cua-paste) <f1> m C-x o ;; I’m now in a *Help* buffer listing currently enabled modes <f1> b ;; I’m now in a *Help* buffer listing bindings <menu> C-b ;; I’m back to modes <menu> C-f ;; I’m back to bindings S-<down> S-<down> S-<down> C-c C-x o C-v ;; I have a copy of a few lines from *Help* in my *scratch* > Something backward-compatible would be > ideal. Hm, I don’t know. The above is definitely not backward-compatible. It assumes a full conversion in Emacs and full cooperation from third-party mode authors. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 19:30 ` Yuri Khan @ 2021-03-25 21:11 ` Stefan Monnier 2021-03-25 23:54 ` Dmitry Gutov 2021-03-26 23:34 ` Dmitry Gutov 1 sibling, 1 reply; 154+ messages in thread From: Stefan Monnier @ 2021-03-25 21:11 UTC (permalink / raw) To: Yuri Khan Cc: Emacs developers, Gregory Heytings, Stefan Kangas, Dmitry Gutov, Lars Ingebrigtsen, Eli Zaretskii > * Introduce a virtual key, let’s call it <mode-specific>. Let’s > specifically *not* name it <key-formerly-known-as-C-c>. > * Have all modes use that as the prefix key for mode-specific > commands, instead of C-c. > * In the default configuration, translate C-c to <mode-specific>. Part of the difficulty in making key binding schemes more flexible is that the keys you'll want to use within <mode-specific> will tend to depend on the key to which <mode-specific> is bound. E.g. if it's bound to `C-c` it's fairly convenient to have bindings within it of the form `C-<letter>`, but if it's bound to `c` instead (assuming a a modal key-binding scheme like vi) then using `C-<letter>` within it is much less convenient. Stefan ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 21:11 ` Stefan Monnier @ 2021-03-25 23:54 ` Dmitry Gutov 2021-03-26 10:34 ` Stefan Kangas 0 siblings, 1 reply; 154+ messages in thread From: Dmitry Gutov @ 2021-03-25 23:54 UTC (permalink / raw) To: Stefan Monnier, Yuri Khan Cc: Lars Ingebrigtsen, Emacs developers, Eli Zaretskii, Gregory Heytings, Stefan Kangas On 25.03.2021 23:11, Stefan Monnier wrote: > E.g. if it's bound to `C-c` it's fairly convenient to have bindings > within it of the form `C-<letter>`, but if it's bound to `c` instead > (assuming a a modal key-binding scheme like vi) then using `C-<letter>` > within it is much less convenient. Interesting example. I wanted to say nobody will bind it to 'c', but some people might decide to bind it to M-c instead. Here's a thought: let's invent an extension of the kbd syntax which will allow us to specify a modifier indirectly based on an entry in key-translation-map. Like: (kbd "<mode-specific> <mode-specific-modifier>-c") Even more backward-incompatible, but okay. But what to do if <mode-specific> has no modifiers, like <menu> in Yuri's example? Translate '<mode-specific-modifier>-c' to just 'c'? What happens to any other simple 'c' entry in that keymap? Do we "flip" it to, say, 'C-c'? What happens if the user decides to bind <mode-specific> to 'C-d', and in my third-party package I choose 'C-c C-d' as a command binding? That seems like a popular one, inspired by SLIME. *And* I have another binding in there, 'C-c C-c'. Going along with the new feature, I'll write the first one like '<mode-specific> C-d' and the second one '<mode-specific> <mode-specific>'... right? That's a conflict. The only way of resolving such conflicts I can imagine is to also "flip" any 'C-d' written verbatim and not as <mode-specific> back to C-c, the default <mode-specific> binding, when <mode-specific> is bound to 'C-d'. Which seems both tricky to implement and punishing to a lot of existing code that the user might try to use. So maybe we should limit the scope of the effort and not try to solve all the inefficiencies, or we'll never make progress on this issue (after all, the main audience of this change are people who aren't so fond of key sequences; or at least not yet). But better ideas welcome, of course. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 23:54 ` Dmitry Gutov @ 2021-03-26 10:34 ` Stefan Kangas 2021-03-26 23:13 ` Dmitry Gutov 0 siblings, 1 reply; 154+ messages in thread From: Stefan Kangas @ 2021-03-26 10:34 UTC (permalink / raw) To: Dmitry Gutov, Stefan Monnier, Yuri Khan Cc: Lars Ingebrigtsen, Eli Zaretskii, Gregory Heytings, Emacs developers Dmitry Gutov <dgutov@yandex.ru> writes: > On 25.03.2021 23:11, Stefan Monnier wrote: >> E.g. if it's bound to `C-c` it's fairly convenient to have bindings >> within it of the form `C-<letter>`, but if it's bound to `c` instead >> (assuming a a modal key-binding scheme like vi) then using `C-<letter>` >> within it is much less convenient. > > Interesting example. I wanted to say nobody will bind it to 'c', but > some people might decide to bind it to M-c instead. > > Here's a thought: let's invent an extension of the kbd syntax which will > allow us to specify a modifier indirectly based on an entry in > key-translation-map. Like: > > (kbd "<mode-specific> <mode-specific-modifier>-c") > > Even more backward-incompatible, but okay. But what to do if > <mode-specific> has no modifiers, like <menu> in Yuri's example? > Translate '<mode-specific-modifier>-c' to just 'c'? What happens to any > other simple 'c' entry in that keymap? Do we "flip" it to, say, 'C-c'? How about something like: (mode-kbd "k") ; C-c k (mode-kbd "mod k") ; C-c C-k (mode-kbd "mod2 k") ; C-c M-k (mode-kbd "mod3 k") ; C-c S-k Then mod, mod2 and mod3 could be set to use whatever modifier you want. And mode-kbd would use the correct prefix. (BTW, it would be even nicer if we could evaluate such a form on key lookup.) ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-26 10:34 ` Stefan Kangas @ 2021-03-26 23:13 ` Dmitry Gutov 0 siblings, 0 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-26 23:13 UTC (permalink / raw) To: Stefan Kangas, Stefan Monnier, Yuri Khan Cc: Lars Ingebrigtsen, Eli Zaretskii, Gregory Heytings, Emacs developers On 26.03.2021 12:34, Stefan Kangas wrote: > Dmitry Gutov <dgutov@yandex.ru> writes: > >> On 25.03.2021 23:11, Stefan Monnier wrote: >>> E.g. if it's bound to `C-c` it's fairly convenient to have bindings >>> within it of the form `C-<letter>`, but if it's bound to `c` instead >>> (assuming a a modal key-binding scheme like vi) then using `C-<letter>` >>> within it is much less convenient. >> >> Interesting example. I wanted to say nobody will bind it to 'c', but >> some people might decide to bind it to M-c instead. >> >> Here's a thought: let's invent an extension of the kbd syntax which will >> allow us to specify a modifier indirectly based on an entry in >> key-translation-map. Like: >> >> (kbd "<mode-specific> <mode-specific-modifier>-c") >> >> Even more backward-incompatible, but okay. But what to do if >> <mode-specific> has no modifiers, like <menu> in Yuri's example? >> Translate '<mode-specific-modifier>-c' to just 'c'? What happens to any >> other simple 'c' entry in that keymap? Do we "flip" it to, say, 'C-c'? > > How about something like: > > (mode-kbd "k") ; C-c k > (mode-kbd "mod k") ; C-c C-k > (mode-kbd "mod2 k") ; C-c M-k > (mode-kbd "mod3 k") ; C-c S-k > > Then mod, mod2 and mod3 could be set to use whatever modifier you want. > And mode-kbd would use the correct prefix. This looks nice and flexible, but probably doesn't address the essence of Stefan's complaint. Example: If mode-specific-modifier is 'C-c', 'C-c C-k' seems like an easy-to-hit sequence, suitable for a frequently-used command. If mode-specific-modifier is <menu> or <f2>, '<menu> C-k' is less easy to hit than '<menu> k', for example, and the latter binding might be preferable. But the package author already has to make a choice between (mode-kbd "k") and (mode-kbd "mod k") for a given command without knowing mode-specific-modifier in advance. > (BTW, it would be even nicer if we could evaluate such a form on > key lookup.) Yuri mentioned key-translation-map already. Perhaps it or a similar new mechanism could be employed. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-25 19:30 ` Yuri Khan 2021-03-25 21:11 ` Stefan Monnier @ 2021-03-26 23:34 ` Dmitry Gutov 2021-03-27 0:02 ` Stefan Monnier 1 sibling, 1 reply; 154+ messages in thread From: Dmitry Gutov @ 2021-03-26 23:34 UTC (permalink / raw) To: Yuri Khan Cc: Lars Ingebrigtsen, Gregory Heytings, Eli Zaretskii, Stefan Kangas, Emacs developers On 25.03.2021 21:30, Yuri Khan wrote: > On Thu, 25 Mar 2021 at 20:20, Dmitry Gutov <dgutov@yandex.ru> wrote: > >> But C-c doesn't have a dedicated keymap, so solving this seems like the >> first step. What could we do? >> >> (kbd (format "%s C-l" ctl-c-key-sequence) 'some-command) >> >> Or maybe create a bogus ctrl-c keymap and then make sure to refer to its >> binding with something like >> >> (kbd "[C-c] C-l" 'some-command) >> >> ...I'm not sure, ideas welcome. > > How about this: > > * Introduce a virtual key, let’s call it <mode-specific>. Let’s > specifically *not* name it <key-formerly-known-as-C-c>. > * Have all modes use that as the prefix key for mode-specific > commands, instead of C-c. > * In the default configuration, translate C-c to <mode-specific>. > > Proof of concept: > > $ emacs -Q > > (define-key help-mode-map (kbd "<mode-specific> <mode-specific>") > #'help-follow-symbol) > (define-key help-mode-map (kbd "<mode-specific> C-b") #'help-go-back) > (define-key help-mode-map (kbd "<mode-specific> C-f") #'help-go-forward) > (define-key key-translation-map (kbd "<menu>") (kbd "<mode-specific>")) > ;; C-x C-e all of the above > > (define-key help-mode-map (kbd "C-c C-c") nil) > (define-key help-mode-map (kbd "C-c C-b") nil) > (define-key help-mode-map (kbd "C-c C-f") nil) > (define-key help-mode-map (kbd "C-c") nil) > ;; should be unneeded after all modes convert > > (global-set-key (kbd "C-c") #'copy-region-as-kill) > (global-set-key (kbd "C-v") #'cua-paste) > > <f1> m C-x o > ;; I’m now in a *Help* buffer listing currently enabled modes > > <f1> b > ;; I’m now in a *Help* buffer listing bindings > > <menu> C-b > ;; I’m back to modes > > <menu> C-f > ;; I’m back to bindings > > S-<down> S-<down> S-<down> C-c > C-x o C-v > ;; I have a copy of a few lines from *Help* in my *scratch* This is a solid proposal. We can go with it, especially if we don't mind the key sequence ergonomics in keymaps, as well as backward incompatibility. Perhaps we could instead do something with key-translation-map (or one of its friends) that works on existing keymaps? The use of 'menu-item' allows us to filter based on whether the key is first in the sequence: (define-key key-translation-map (kbd "<menu>") (kbd "C-c")) (define-key key-translation-map (kbd "C-c") `(menu-item "" ,(kbd "<C-c-translated>") :filter my--head-of-sequence-p)) (global-set-key (kbd "<C-c-translated>") 'kill-ring-save) (defun my--head-of-sequence-p (cmd) (if (> (length (this-command-keys-vector)) 1) (kbd "C-c") cmd)) This seems backward-compatible enough, but the main downside is that Emacs now says 'C-c-' in the echo area when you hit <menu>. Which must be confusing to the main target audience. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-26 23:34 ` Dmitry Gutov @ 2021-03-27 0:02 ` Stefan Monnier 2021-03-28 13:59 ` Dmitry Gutov 0 siblings, 1 reply; 154+ messages in thread From: Stefan Monnier @ 2021-03-27 0:02 UTC (permalink / raw) To: Dmitry Gutov Cc: Emacs developers, Gregory Heytings, Stefan Kangas, Lars Ingebrigtsen, Yuri Khan, Eli Zaretskii > Perhaps we could instead do something with key-translation-map (or one of > its friends) that works on existing keymaps? > > The use of 'menu-item' allows us to filter based on whether the key is first > in the sequence: > > (define-key key-translation-map (kbd "<menu>") (kbd "C-c")) > (define-key key-translation-map (kbd "C-c") > `(menu-item "" ,(kbd "<C-c-translated>") > :filter my--head-of-sequence-p)) > (global-set-key (kbd "<C-c-translated>") 'kill-ring-save) While we can use such tricks, I think what we really want is to abstract the keymap API such that we can provide keymaps whose elements are computed dynamically. There'd need to be at least 2 methods: `lookup-key`, and `map-keymap`, and adding `where-is` would probably allow better behaviors (but could introduce other problems given the way where-is currently works). One application is to create a keymap (on function-key-map) that remaps all the events of the form "modifiers + mouse-4" to "same-modifiers + scroll-up". Another would be a keymap that binds the same keys as some other keymap except it requires some additional modifier or it removes a modifier, or it capitalizes all the letters, or it transcribes all the cyrillic letters to their "equivalent" ASCII, ... We can already perform similar remappings via `key-translation-map` or `function-key-map`, but these apply everywhere whereas if we could do them inside a normal "key binding" keymap then it could be made to apply only to bindings with a particular prefix. Stefan ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-27 0:02 ` Stefan Monnier @ 2021-03-28 13:59 ` Dmitry Gutov 0 siblings, 0 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-28 13:59 UTC (permalink / raw) To: Stefan Monnier Cc: Emacs developers, Gregory Heytings, Stefan Kangas, Lars Ingebrigtsen, Yuri Khan, Eli Zaretskii Hi Stefan, On 27.03.2021 02:02, Stefan Monnier wrote: > While we can use such tricks, I think what we really want is to > abstract the keymap API such that we can provide keymaps whose elements > are computed dynamically. > > There'd need to be at least 2 methods: `lookup-key`, and `map-keymap`, > and adding `where-is` would probably allow better behaviors (but could > introduce other problems given the way where-is currently works). > > One application is to create a keymap (on function-key-map) that remaps > all the events of the form "modifiers + mouse-4" to "same-modifiers + > scroll-up". > > Another would be a keymap that binds the same keys as some other keymap > except it requires some additional modifier or it removes a modifier, or > it capitalizes all the letters, or it transcribes all the cyrillic > letters to their "equivalent" ASCII, ... Could you give an example of how this facility will be used? Modes will be returning "generic" keymaps by using (mode-local-kbd "...") as Stefan K suggested? Will easy-mmode-define-keymap return such keymaps? Or will the keymap values actually have the same structure, but behave differently because of augmented lookup-key, map-keymap, etc? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:09 ` Lars Ingebrigtsen 2021-03-22 19:55 ` Lars Ingebrigtsen @ 2021-03-22 20:22 ` Gregory Heytings 2021-03-22 20:36 ` Lars Ingebrigtsen 1 sibling, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 20:22 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel >> This command isn't supposed to reindent the next line, it just inserts >> a newline. My main use for it is to move line(s) downward when point >> is in column zero. The 'o' in C-o stands for "open" a line. > > I see. Yes, that seems useful. > > Gregory, I don't think there's much point in doing this experiment -- > the pushback is already substantial, so I think we have the data we need > already. > That's unfortunate, but I see your point. A few voices who complain loudly without even trying things are, alas, enough to prevent progress. > > The tenor of discussion in this thread has been shocking, though, with > people ascribing nefarious motivations to Gregory's suggestion. Please > stop doing this -- it makes this mailing list distinctly unfriendly. > Thank you, Lars. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:22 ` Gregory Heytings @ 2021-03-22 20:36 ` Lars Ingebrigtsen 2021-03-22 21:03 ` Alfred M. Szmidt 0 siblings, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 20:36 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel Gregory Heytings <gregory@heytings.org> writes: > That's unfortunate, but I see your point. A few voices who complain > loudly without even trying things are, alas, enough to prevent > progress. Excessive volume does not influence anything (in the direction the voices want to go). At least not for me; quite the opposite. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:36 ` Lars Ingebrigtsen @ 2021-03-22 21:03 ` Alfred M. Szmidt 0 siblings, 0 replies; 154+ messages in thread From: Alfred M. Szmidt @ 2021-03-22 21:03 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, eliz, emacs-devel Excessive volume does not influence anything (in the direction the voices want to go). At least not for me; quite the opposite. If you are going to ignore input because you get input, why bother with these "experiments" at all? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 17:40 ` Eli Zaretskii 2021-03-22 17:55 ` Gregory Heytings 2021-03-22 18:17 ` Lars Ingebrigtsen @ 2021-03-22 20:56 ` Thierry Volpiatto 2 siblings, 0 replies; 154+ messages in thread From: Thierry Volpiatto @ 2021-03-22 20:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, gregory, emacs-devel [-- Attachment #1: Type: text/plain, Size: 979 bytes --] Eli Zaretskii <eliz@gnu.org> writes: >> From: Lars Ingebrigtsen <larsi@gnus.org> >> Date: Mon, 22 Mar 2021 13:06:09 +0100 >> Cc: emacs-devel@gnu.org >> >> I don't use `C-o' myself, so I can't really say to what degree this >> would be annoying or not for users. Any `C-o' users who have an opinion >> here? > > I use it _a_lot_. Same here. Here another use case (C-o is not == to C-e RET): (setq fill-column 70) (auto-fill-mode 1) for some reasons you want to add fooooo word at eol 001 and insert a new line between 001 and 002. ;; 001 aaaaa aaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa ;; 002 aaaaaaa aaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaa aaaaa aaaaa to endup with this: ;; 001 aaaaa aaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa fooooo ;; 002 aaaaaaa aaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaa aaaaa aaaaa Thanks to C-o C-n, otherwise you have to C-n C-a RET C-p after typing fooooo. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [EXTERNAL] Re: Suggested experimental test 2021-03-22 12:06 ` Lars Ingebrigtsen ` (3 preceding siblings ...) 2021-03-22 17:40 ` Eli Zaretskii @ 2021-03-22 18:11 ` Stephan Mueller 2021-03-22 18:34 ` Lars Ingebrigtsen ` (2 more replies) 2021-03-22 20:33 ` Jose A. Ortega Ruiz 5 siblings, 3 replies; 154+ messages in thread From: Stephan Mueller @ 2021-03-22 18:11 UTC (permalink / raw) To: Lars Ingebrigtsen, Gregory Heytings; +Cc: emacs-devel@gnu.org Since opinions are explicitly being solicited, and since I have not encountered a particular point in my not-necessarily-comprehensive reading of this thread, I'll add one: I use C-o (usually followed by C-n) many times a day, instead of <Enter>, in order to suppress re-indentation of the current line in cases where that re-indentation will be incorrect for my purposes**. Needing to hit C-o twice would make the workaround more painful. I expect I would end up rebinding in my .emacs to restore the current behaviour. Also, I find myself nodding in agreement to the argument (apologies for not recalling who made it in this thread) that as a long-standing and fairly 'basic' binding, it is in use in other editors that try to be Emacs-like. Changing the default behaviour here would introduce confusion to the world and confound muscle memory. stephan(); ** Of course, addressing the indentation issue would be good, but that perpetually remains a task for another day -- it's not a configurable behaviour, and will require me to do substantial research into cperl mode to understand more. That said, even in cases not involving my oddly formatted perl, auto-indentation seems generally accurate enough to keep using, and inaccurate enough to need a workaround multiple times daily. -----Original Message----- From: Emacs-devel <emacs-devel-bounces+stephan=sbmueller.net@gnu.org> On Behalf Of Lars Ingebrigtsen Sent: Monday, March 22, 2021 5:06 AM To: Gregory Heytings <gregory@heytings.org> Cc: emacs-devel@gnu.org Subject: [EXTERNAL] Re: Suggested experimental test Gregory Heytings <gregory@heytings.org> writes: > Well... the suggested experiment does not remove C-o, it changes C-o > in a way that is, I believe, painless. Sorry; I didn't read the patch carefully. So it basically moves `C-o' to `C-o C-o' (and makes the `C-o' prefix open for new commands)? I don't use `C-o' myself, so I can't really say to what degree this would be annoying or not for users. Any `C-o' users who have an opinion here? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Flars.ingebrigtsen.no%2F&data=04%7C01%7CStephan.Mueller%40microsoft.com%7C6defb25382ae4b50aabc08d8ed2afd3e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637520116190706836%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dsMofHZVHi9n24IzfOxmFyXFOEVpV9GttwoJ6kXtwWA%3D&reserved=0 ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:11 ` [EXTERNAL] " Stephan Mueller @ 2021-03-22 18:34 ` Lars Ingebrigtsen 2021-03-22 18:56 ` Eli Zaretskii 2021-03-25 17:04 ` [EXTERNAL] " Stephan Mueller 2021-03-22 19:37 ` Stefan Monnier 2021-03-22 19:42 ` Dmitry Gutov 2 siblings, 2 replies; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 18:34 UTC (permalink / raw) To: Stephan Mueller; +Cc: Gregory Heytings, emacs-devel@gnu.org Stephan Mueller <Stephan.Mueller@microsoft.com> writes: > I use C-o (usually followed by C-n) many times a day, instead of > <Enter>, in order to suppress re-indentation of the current line in > cases where that re-indentation will be incorrect for my purposes**. Oh, I see -- it's useful as an alternative to `RET' exactly when re-indentation does the wrong thing? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:34 ` Lars Ingebrigtsen @ 2021-03-22 18:56 ` Eli Zaretskii 2021-03-22 19:13 ` Lars Ingebrigtsen 2021-03-22 20:22 ` Gregory Heytings 2021-03-25 17:04 ` [EXTERNAL] " Stephan Mueller 1 sibling, 2 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 18:56 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, emacs-devel, Stephan.Mueller > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Mon, 22 Mar 2021 19:34:34 +0100 > Cc: Gregory Heytings <gregory@heytings.org>, > "emacs-devel@gnu.org" <emacs-devel@gnu.org> > > Stephan Mueller <Stephan.Mueller@microsoft.com> writes: > > > I use C-o (usually followed by C-n) many times a day, instead of > > <Enter>, in order to suppress re-indentation of the current line in > > cases where that re-indentation will be incorrect for my purposes**. > > Oh, I see -- it's useful as an alternative to `RET' exactly when > re-indentation does the wrong thing? Yes, but not only that -- it doesn't move point to the next line, unlike RET. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:56 ` Eli Zaretskii @ 2021-03-22 19:13 ` Lars Ingebrigtsen 2021-03-22 19:19 ` Eli Zaretskii 2021-03-22 19:21 ` chad 2021-03-22 20:22 ` Gregory Heytings 1 sibling, 2 replies; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 19:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, Stephan.Mueller, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> > I use C-o (usually followed by C-n) many times a day, instead of >> > <Enter>, in order to suppress re-indentation of the current line in >> > cases where that re-indentation will be incorrect for my purposes**. >> >> Oh, I see -- it's useful as an alternative to `RET' exactly when >> re-indentation does the wrong thing? > > Yes, but not only that -- it doesn't move point to the next line, > unlike RET. Right, but in the use case described, the `C-o' is followed by `C-n', so it's just to suppress faulty re-indentation, apparently. And I think that's a valid use case -- Emacs does get these things wrong now and then, and having an escape hatch readily available seems useful. Perhaps the doc string of `RET' (i.e., `newline-and-indent' in most modes) should mention (and link to) to `C-o'? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:13 ` Lars Ingebrigtsen @ 2021-03-22 19:19 ` Eli Zaretskii 2021-03-22 19:25 ` Lars Ingebrigtsen 2021-03-22 19:21 ` chad 1 sibling, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 19:19 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, Stephan.Mueller, emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: gregory@heytings.org, emacs-devel@gnu.org, Stephan.Mueller@microsoft.com > Date: Mon, 22 Mar 2021 20:13:49 +0100 > > And I think that's a valid use case -- Emacs does get these things wrong > now and then, and having an escape hatch readily available seems > useful. That's true. I use C-o in those cases as well. > Perhaps the doc string of `RET' (i.e., `newline-and-indent' in most > modes) should mention (and link to) to `C-o'? I don't see why not. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:19 ` Eli Zaretskii @ 2021-03-22 19:25 ` Lars Ingebrigtsen 2021-03-22 19:49 ` Stefan Monnier 0 siblings, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 19:25 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gregory, Stephan.Mueller, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> Perhaps the doc string of `RET' (i.e., `newline-and-indent' in most >> modes) should mention (and link to) to `C-o'? > > I don't see why not. Now done. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:25 ` Lars Ingebrigtsen @ 2021-03-22 19:49 ` Stefan Monnier 2021-03-22 19:52 ` Lars Ingebrigtsen 0 siblings, 1 reply; 154+ messages in thread From: Stefan Monnier @ 2021-03-22 19:49 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel, gregory, Stephan.Mueller >>> Perhaps the doc string of `RET' (i.e., `newline-and-indent' in most >>> modes) should mention (and link to) to `C-o'? >> I don't see why not. Maybe because it already says: To just insert a newline, use \\[electric-indent-just-newline]. -- Stefan ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:49 ` Stefan Monnier @ 2021-03-22 19:52 ` Lars Ingebrigtsen 2021-03-22 20:54 ` Stefan Monnier 0 siblings, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 19:52 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eli Zaretskii, emacs-devel, gregory, Stephan.Mueller Stefan Monnier <monnier@iro.umontreal.ca> writes: > Maybe because it already says: > > To just insert a newline, use \\[electric-indent-just-newline]. Not here (in Emacs 28)... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:52 ` Lars Ingebrigtsen @ 2021-03-22 20:54 ` Stefan Monnier 2021-03-22 21:04 ` Lars Ingebrigtsen 0 siblings, 1 reply; 154+ messages in thread From: Stefan Monnier @ 2021-03-22 20:54 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel, gregory, Stephan.Mueller Lars Ingebrigtsen [2021-03-22 20:52:19] wrote: > Stefan Monnier <monnier@iro.umontreal.ca> writes: >> Maybe because it already says: >> To just insert a newline, use \\[electric-indent-just-newline]. > Not here (in Emacs 28)... I guess this is a misunderstanding coming from: Perhaps the doc string of `RET' (i.e., `newline-and-indent' in most modes) should mention (and link to) to `C-o'? RET is supposed to be bound to `newline` by default, pretty much everywhere. There are many modes which still bind RET to `newline-and-indent`, but that's a historical accident that we should fix because it disregards the user's choice to enable or disable `electric-indent(-local)-mode`. The docstring of `newline` (the thing bound to RET by default, AFAIC) does include the line above, AFAICT. I don't see a string need for `newline-and-indent` to point to something else (like `open-line`) since this is a command which should basically never be bound except by an explicit choice of the end-user. Stefan ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:54 ` Stefan Monnier @ 2021-03-22 21:04 ` Lars Ingebrigtsen 2021-03-23 7:18 ` Eli Zaretskii 0 siblings, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 21:04 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eli Zaretskii, emacs-devel, gregory, Stephan.Mueller Stefan Monnier <monnier@iro.umontreal.ca> writes: > I guess this is a misunderstanding coming from: > > Perhaps the doc string of `RET' (i.e., `newline-and-indent' in most > modes) should mention (and link to) to `C-o'? > > RET is supposed to be bound to `newline` by default, pretty > much everywhere. There are many modes which still bind RET to > `newline-and-indent`, but that's a historical accident that we should > fix because it disregards the user's choice to enable or disable > `electric-indent(-local)-mode`. And I had a (global-set-key "\C-m" 'newline-and-indent) at 3% in my .emacs file, which makes about 15 years old, I think, and I had no idea that it was there. > The docstring of `newline` (the thing bound to RET by default, AFAIC) > does include the line above, AFAICT. I don't see a string need for > `newline-and-indent` to point to something else (like `open-line`) since > this is a command which should basically never be bound except by an > explicit choice of the end-user. This end user had no recollection of doing so, so I think it still makes sense to point to `C-o' here. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 21:04 ` Lars Ingebrigtsen @ 2021-03-23 7:18 ` Eli Zaretskii 0 siblings, 0 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 7:18 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: gregory, emacs-devel, monnier, Stephan.Mueller > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: Eli Zaretskii <eliz@gnu.org>, gregory@heytings.org, > Stephan.Mueller@microsoft.com, emacs-devel@gnu.org > Date: Mon, 22 Mar 2021 22:04:05 +0100 > > > RET is supposed to be bound to `newline` by default, pretty > > much everywhere. There are many modes which still bind RET to > > `newline-and-indent`, but that's a historical accident that we should > > fix because it disregards the user's choice to enable or disable > > `electric-indent(-local)-mode`. > > And I had a > > (global-set-key "\C-m" 'newline-and-indent) > > at 3% in my .emacs file, which makes about 15 years old, I think, and I > had no idea that it was there. I think this is because originally C-j was bound to newline-and-indent (and RET to newline). newline-and-indent is very handy in editing in PL modes, but keyboards with a separate LFD key are long gone. So when the modern keyboards became omnipresent, people tended to rebind RET to newline-and-indent, so that (a) that could invoke it easily and naturally, and (b) to work similarly to the few other editors that had such a functionality. But then came the electric-indent thingy, and the simple world we had then was lost forever... ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:13 ` Lars Ingebrigtsen 2021-03-22 19:19 ` Eli Zaretskii @ 2021-03-22 19:21 ` chad 2021-03-22 19:26 ` Eli Zaretskii 2021-03-22 19:28 ` Lars Ingebrigtsen 1 sibling, 2 replies; 154+ messages in thread From: chad @ 2021-03-22 19:21 UTC (permalink / raw) To: Lars Ingebrigtsen Cc: Eli Zaretskii, EMACS development team, Gregory Heytings, Stephan.Mueller [-- Attachment #1: Type: text/plain, Size: 1130 bytes --] On Mon, Mar 22, 2021 at 12:14 PM Lars Ingebrigtsen <larsi@gnus.org> wrote: > Eli Zaretskii <eliz@gnu.org> writes: > > >> > I use C-o (usually followed by C-n) many times a day, instead of > >> > <Enter>, in order to suppress re-indentation of the current line in > >> > cases where that re-indentation will be incorrect for my purposes**. > >> > >> Oh, I see -- it's useful as an alternative to `RET' exactly when > >> re-indentation does the wrong thing? > > > > Yes, but not only that -- it doesn't move point to the next line, > > unlike RET. > > Right, but in the use case described, the `C-o' is followed by `C-n', so > it's just to suppress faulty re-indentation, apparently. > > And I think that's a valid use case -- Emacs does get these things wrong > now and then, and having an escape hatch readily available seems > useful. Perhaps the doc string of `RET' (i.e., `newline-and-indent' in > most modes) should mention (and link to) to `C-o'? > I'm having a hard time finding a behavior difference between `C-o C-n' and `C-j' in these contexts. Can someone help me understand the difference? Thanks in advance, ~Chad [-- Attachment #2: Type: text/html, Size: 1669 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:21 ` chad @ 2021-03-22 19:26 ` Eli Zaretskii 2021-03-22 19:51 ` Stefan Monnier 2021-03-22 19:28 ` Lars Ingebrigtsen 1 sibling, 1 reply; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 19:26 UTC (permalink / raw) To: chad; +Cc: larsi, emacs-devel, gregory, Stephan.Mueller > From: chad <yandros@gmail.com> > Date: Mon, 22 Mar 2021 12:21:23 -0700 > Cc: Eli Zaretskii <eliz@gnu.org>, Gregory Heytings <gregory@heytings.org>, Stephan.Mueller@microsoft.com, > EMACS development team <emacs-devel@gnu.org> > > I'm having a hard time finding a behavior difference between `C-o C-n' and `C-j' in these contexts. Can > someone help me understand the difference? C-j doesn't only insert a newline. In fact, in some modes it does something utterly different. That's a stark contrast to what C-o with or without C-n does. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:26 ` Eli Zaretskii @ 2021-03-22 19:51 ` Stefan Monnier 2021-03-22 20:04 ` Eli Zaretskii 0 siblings, 1 reply; 154+ messages in thread From: Stefan Monnier @ 2021-03-22 19:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Stephan.Mueller, chad, gregory, larsi, emacs-devel > C-j doesn't only insert a newline. In fact, in some modes it does > something utterly different. AFAIC this is a bug in those modes. Stefan ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:51 ` Stefan Monnier @ 2021-03-22 20:04 ` Eli Zaretskii 2021-03-22 20:11 ` Lars Ingebrigtsen 2021-03-22 20:49 ` Stefan Monnier 0 siblings, 2 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-22 20:04 UTC (permalink / raw) To: Stefan Monnier; +Cc: Stephan.Mueller, yandros, gregory, larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: chad <yandros@gmail.com>, larsi@gnus.org, emacs-devel@gnu.org, > gregory@heytings.org, Stephan.Mueller@microsoft.com > Date: Mon, 22 Mar 2021 15:51:32 -0400 > > > C-j doesn't only insert a newline. In fact, in some modes it does > > something utterly different. > > AFAIC this is a bug in those modes. ??? Including lisp-interaction-mode? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:04 ` Eli Zaretskii @ 2021-03-22 20:11 ` Lars Ingebrigtsen 2021-03-22 20:16 ` Lars Ingebrigtsen 2021-03-22 20:49 ` Stefan Monnier 1 sibling, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 20:11 UTC (permalink / raw) To: Eli Zaretskii Cc: Stephan.Mueller, yandros, gregory, Stefan Monnier, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > ??? Including lisp-interaction-mode? Heh. (1 2 |3 4) and C-j in *scratch* gives me (1 2 2 3 4) Which is kinda sorta natural (it evalued 2 and inserted it, and then did a newline), but that sure is quirky, and is quite removed from "just insert a newline". -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:11 ` Lars Ingebrigtsen @ 2021-03-22 20:16 ` Lars Ingebrigtsen 2021-03-23 7:04 ` Eli Zaretskii 0 siblings, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 20:16 UTC (permalink / raw) To: Eli Zaretskii Cc: yandros, emacs-devel, gregory, Stefan Monnier, Stephan.Mueller Lars Ingebrigtsen <larsi@gnus.org> writes: >> ??? Including lisp-interaction-mode? > > Heh. > > (1 2 |3 4) > > and C-j in *scratch* gives me Oops, never mind -- C-j in that mode is `eval-print-last-sexp', which is a totally different thing. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:16 ` Lars Ingebrigtsen @ 2021-03-23 7:04 ` Eli Zaretskii 0 siblings, 0 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 7:04 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: yandros, emacs-devel, gregory, monnier, Stephan.Mueller > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: Stephan.Mueller@microsoft.com, yandros@gmail.com, > gregory@heytings.org, Stefan Monnier <monnier@iro.umontreal.ca>, > emacs-devel@gnu.org > Date: Mon, 22 Mar 2021 21:16:04 +0100 > > Lars Ingebrigtsen <larsi@gnus.org> writes: > > >> ??? Including lisp-interaction-mode? > > > > Heh. > > > > (1 2 |3 4) > > > > and C-j in *scratch* gives me > > Oops, never mind -- C-j in that mode is `eval-print-last-sexp', which is > a totally different thing. Exactly my point. Thus, "C-o C-n" is much more reliable. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:04 ` Eli Zaretskii 2021-03-22 20:11 ` Lars Ingebrigtsen @ 2021-03-22 20:49 ` Stefan Monnier 2021-03-22 21:02 ` [External] : " Drew Adams 2021-03-23 7:09 ` Eli Zaretskii 1 sibling, 2 replies; 154+ messages in thread From: Stefan Monnier @ 2021-03-22 20:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Stephan.Mueller, yandros, gregory, larsi, emacs-devel >> > C-j doesn't only insert a newline. In fact, in some modes it does >> > something utterly different. >> AFAIC this is a bug in those modes. > ??? Including lisp-interaction-mode? lisp-interaction-mode is a weird beast, indeed. Stefan "who uses IELM instead" ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [External] : Re: Suggested experimental test 2021-03-22 20:49 ` Stefan Monnier @ 2021-03-22 21:02 ` Drew Adams 2021-03-23 7:09 ` Eli Zaretskii 1 sibling, 0 replies; 154+ messages in thread From: Drew Adams @ 2021-03-22 21:02 UTC (permalink / raw) To: Stefan Monnier, Eli Zaretskii Cc: larsi@gnus.org, yandros@gmail.com, emacs-devel@gnu.org, gregory@heytings.org, Stephan.Mueller@microsoft.com > > Including lisp-interaction-mode? > lisp-interaction-mode is a weird beast, indeed. > Stefan "who uses IELM instead" +1. Drew, who uses emacs-lisp-mode instead. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:49 ` Stefan Monnier 2021-03-22 21:02 ` [External] : " Drew Adams @ 2021-03-23 7:09 ` Eli Zaretskii 1 sibling, 0 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 7:09 UTC (permalink / raw) To: Stefan Monnier; +Cc: Stephan.Mueller, yandros, gregory, larsi, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: yandros@gmail.com, larsi@gnus.org, emacs-devel@gnu.org, > gregory@heytings.org, Stephan.Mueller@microsoft.com > Date: Mon, 22 Mar 2021 16:49:26 -0400 > > >> > C-j doesn't only insert a newline. In fact, in some modes it does > >> > something utterly different. > >> AFAIC this is a bug in those modes. > > ??? Including lisp-interaction-mode? > > lisp-interaction-mode is a weird beast, indeed. But it is very popular, and is the first thing a user faces when he or she starts Emacs. Remember, this was the answer to the question "why not use C-j instead of C-o with or without C-n?" ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 19:21 ` chad 2021-03-22 19:26 ` Eli Zaretskii @ 2021-03-22 19:28 ` Lars Ingebrigtsen 2021-03-22 19:56 ` [External] : " Drew Adams 1 sibling, 1 reply; 154+ messages in thread From: Lars Ingebrigtsen @ 2021-03-22 19:28 UTC (permalink / raw) To: chad Cc: Eli Zaretskii, EMACS development team, Gregory Heytings, Stephan.Mueller chad <yandros@gmail.com> writes: > I'm having a hard time finding a behavior difference between `C-o C-n' > and `C-j' in these contexts. Can someone help me understand the > difference? That's true, but `C-j' is sometimes more complicated: --- It is bound to C-j. (electric-newline-and-maybe-indent) Insert a newline. If ‘electric-indent-mode’ is enabled, that’s that, but if it is *disabled* then additionally indent according to major mode. --- But, yes, `C-j' is often the command to use when `RET' does too much. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [External] : Re: Suggested experimental test 2021-03-22 19:28 ` Lars Ingebrigtsen @ 2021-03-22 19:56 ` Drew Adams 2021-03-22 20:56 ` Stefan Monnier 0 siblings, 1 reply; 154+ messages in thread From: Drew Adams @ 2021-03-22 19:56 UTC (permalink / raw) To: Lars Ingebrigtsen, chad Cc: Eli Zaretskii, Stephan.Mueller@microsoft.com, Gregory Heytings, EMACS development team > It is bound to C-j. > (electric-newline-and-maybe-indent) > > Insert a newline. > If ‘electric-indent-mode’ is enabled, that’s that, but if it > is *disabled* then additionally indent according to major mode. I turned that off as soon as `C-j' was co-opted by it. I prefer the classic Emacs RET and C-j behavior. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [External] : Re: Suggested experimental test 2021-03-22 19:56 ` [External] : " Drew Adams @ 2021-03-22 20:56 ` Stefan Monnier 2021-03-22 21:19 ` Drew Adams 0 siblings, 1 reply; 154+ messages in thread From: Stefan Monnier @ 2021-03-22 20:56 UTC (permalink / raw) To: Drew Adams Cc: Stephan.Mueller@microsoft.com, EMACS development team, Gregory Heytings, Lars Ingebrigtsen, chad, Eli Zaretskii > I prefer the classic Emacs RET and C-j behavior. You mean the one where RET sometimes indents and sometimes doesn't depending on the preference of the major mode's author? ;-) Stefan ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [External] : Re: Suggested experimental test 2021-03-22 20:56 ` Stefan Monnier @ 2021-03-22 21:19 ` Drew Adams 0 siblings, 0 replies; 154+ messages in thread From: Drew Adams @ 2021-03-22 21:19 UTC (permalink / raw) To: Stefan Monnier Cc: Stephan.Mueller@microsoft.com, EMACS development team, Gregory Heytings, Lars Ingebrigtsen, chad, Eli Zaretskii > > I prefer the classic Emacs RET and C-j behavior. > > You mean the one where RET sometimes indents and sometimes doesn't > depending on the preference of the major mode's author? ;-) I suppose I do. But the major modes I use haven't presented a problem for me in that regard. I use C-j to get a newline + indent behavior, just as it always did. And RET to get a newline-only behavior, just as it always did. I don't get any weird RET behavior in any modes I use - RET just inserts a newline. I do get mode-specific behavior for C-j. (Not important; just the reverse.) ___ I do find it interesting that the doc string of `electric-indent-mode' says nothing about C-j or RET. Yet NEWS for Emacs 24.4 put that key change front and center: *** `electric-indent-mode' is now enabled by default. Typing RET reindents the current line and indents the new line. `C-j' inserts a newline but does not indent. In some programming modes, additional characters are electric (eg `{'). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 18:56 ` Eli Zaretskii 2021-03-22 19:13 ` Lars Ingebrigtsen @ 2021-03-22 20:22 ` Gregory Heytings 2021-03-23 8:09 ` Eli Zaretskii 1 sibling, 1 reply; 154+ messages in thread From: Gregory Heytings @ 2021-03-22 20:22 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, Stephan.Mueller, emacs-devel >>> I use C-o (usually followed by C-n) many times a day, instead of >>> <Enter>, in order to suppress re-indentation of the current line in >>> cases where that re-indentation will be incorrect for my purposes**. >> >> Oh, I see -- it's useful as an alternative to `RET' exactly when >> re-indentation does the wrong thing? > > Yes, but not only that -- it doesn't move point to the next line, unlike > RET. > Why should a control key must be reserved forever for that very specific purpose, and for that very specific purpose only, in the default Emacs bindings? That's something that could be moved on, say, M-RET (and possibly improved). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 20:22 ` Gregory Heytings @ 2021-03-23 8:09 ` Eli Zaretskii 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 20:55 ` chad 0 siblings, 2 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 8:09 UTC (permalink / raw) To: Gregory Heytings; +Cc: larsi, Stephan.Mueller, emacs-devel > Date: Mon, 22 Mar 2021 20:22:36 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org, > Stephan.Mueller@microsoft.com > > >>> I use C-o (usually followed by C-n) many times a day, instead of > >>> <Enter>, in order to suppress re-indentation of the current line in > >>> cases where that re-indentation will be incorrect for my purposes**. > >> > >> Oh, I see -- it's useful as an alternative to `RET' exactly when > >> re-indentation does the wrong thing? > > > > Yes, but not only that -- it doesn't move point to the next line, unlike > > RET. > > Why should a control key must be reserved forever for that very specific > purpose, and for that very specific purpose only, in the default Emacs > bindings? Opening an empty line is a very useful editing primitive, not unlike going to the next line with RET. Trying to change that will always cause staunch resistance, especially when the purpose for which this is done is vague and not perceived as important enough by enough people. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 8:09 ` Eli Zaretskii @ 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 14:31 ` Eli Zaretskii ` (2 more replies) 2021-03-23 20:55 ` chad 1 sibling, 3 replies; 154+ messages in thread From: Gregory Heytings @ 2021-03-23 14:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel >>>>> I use C-o (usually followed by C-n) many times a day, instead of >>>>> <Enter>, in order to suppress re-indentation of the current line in >>>>> cases where that re-indentation will be incorrect for my purposes**. >>>> >>>> Oh, I see -- it's useful as an alternative to `RET' exactly when >>>> re-indentation does the wrong thing? >>> >>> Yes, but not only that -- it doesn't move point to the next line, >>> unlike RET. >> >> Why should a control key must be reserved forever for that very >> specific purpose, and for that very specific purpose only, in the >> default Emacs bindings? > > Opening an empty line is a very useful editing primitive, not unlike > going to the next line with RET. > I'd bet it is useful, as it is, only for 0.5% of Emacs users, perhaps even less. No other editor I know has that feature. And I'd bet that 90% of those 0.5% would be happier with a better open-line primitive, for example one which can be called when point is in the middle of a line, like "o" and "O" in vi. The discussion showed that those who use it use it at BOL, and that it wasn't used alone, but as part of a sequence, for example C-a C-o or C-o C-n. Nobody even mentioned the fact that open-line uses the fill-prefix and the left-margin. As I said, an improved version of that command could for example be put on M-RET. Here's an attempt: (defun smart-open-line (&optional arg) (interactive "*p") (when (> arg 0) (beginning-of-line) (let ((p (point-marker))) (dotimes (_ arg) (insert "\n")) (goto-char p))) (when (< arg 0) (setq arg (abs arg)) (beginning-of-line) (forward-line 1) (dotimes (_ arg) (insert "\n")) (forward-line -1))) (global-set-key (kbd "M-RET") 'smart-open-line) And even assuming that it is useful as it is, that doesn't answer the main question: why should a control character key be reserved forever for that very specific purpose, and for that very specific purpose only? > > Trying to change that will always cause staunch resistance, especially > when the purpose for which this is done is vague and not perceived as > important enough by enough people. > I could have clarified the purpose indeed, but the risk would have been to start two parallel discussions. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 14:15 ` Gregory Heytings @ 2021-03-23 14:31 ` Eli Zaretskii 2021-03-23 17:21 ` Bob Rogers 2021-03-24 5:42 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Eli Zaretskii @ 2021-03-23 14:31 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel > Date: Tue, 23 Mar 2021 14:15:12 +0000 > From: Gregory Heytings <gregory@heytings.org> > cc: emacs-devel@gnu.org > > > Opening an empty line is a very useful editing primitive, not unlike > > going to the next line with RET. > > I'd bet it is useful, as it is, only for 0.5% of Emacs users, perhaps even > less. No other editor I know has that feature. There's lot of good and useful stuff in Emacs that is not known to "the crowd". The right way of dealing with that is popularize it, not delete it or make it harder or less convenient to use. IMO, at least, FWIW. > And I'd bet that 90% of those 0.5% would be happier with a better > open-line primitive, for example one which can be called when point > is in the middle of a line, like "o" and "O" in vi. You are welcome to add such a command, or find a clever way of tweaking C-o to do that. Then let's meet in, like, 20 years and see how many percents of Emacs users like it or even know about it. > The discussion showed that those who use it use it at BOL, > and that it wasn't used alone, but as part of a sequence, for example C-a > C-o or C-o C-n. Nobody even mentioned the fact that open-line uses the > fill-prefix and the left-margin. The discussion revealed more than that, but if you believe only 0.5% find this command useful, how is that relevant? If anything, it reinforces my point above. > And even assuming that it is useful as it is, that doesn't answer the main > question: why should a control character key be reserved forever for that > very specific purpose, and for that very specific purpose only? I did try to answer that. > > Trying to change that will always cause staunch resistance, especially > > when the purpose for which this is done is vague and not perceived as > > important enough by enough people. > > > > I could have clarified the purpose indeed, but the risk would have been to > start two parallel discussions. Oh, I think I understand the reason. It wasn't my mood that I was describing, and you already know what I think about disputes about the default key bindings. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 14:31 ` Eli Zaretskii @ 2021-03-23 17:21 ` Bob Rogers 2021-03-24 5:42 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Bob Rogers @ 2021-03-23 17:21 UTC (permalink / raw) To: Gregory Heytings; +Cc: emacs-devel From: Gregory Heytings <gregory@heytings.org> Date: Tue, 23 Mar 2021 14:15:12 +0000 > Opening an empty line is a very useful editing primitive, not unlike > going to the next line with RET. I'd bet it is useful, as it is, only for 0.5% of Emacs users, perhaps even less. No other editor I know has that feature . . . True of oodles of Emacs features. And I'd bet that 90% of those 0.5% would be happier with a better open-line primitive, for example one which can be called when point is in the middle of a line . . . I use it *mostly* in the middle of lines. I think you'd lose that bet, and probably the first as well. -- Bob Rogers http://www.rgrjr.com/ ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 14:31 ` Eli Zaretskii 2021-03-23 17:21 ` Bob Rogers @ 2021-03-24 5:42 ` Jean Louis 2 siblings, 0 replies; 154+ messages in thread From: Jean Louis @ 2021-03-24 5:42 UTC (permalink / raw) To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel * Gregory Heytings <gregory@heytings.org> [2021-03-23 17:17]: > > > > > > > I use C-o (usually followed by C-n) many times a day, > > > > > > instead of <Enter>, in order to suppress re-indentation > > > > > > of the current line in cases where that re-indentation > > > > > > will be incorrect for my purposes**. > > > > > > > > > > Oh, I see -- it's useful as an alternative to `RET' exactly > > > > > when re-indentation does the wrong thing? > > > > > > > > Yes, but not only that -- it doesn't move point to the next > > > > line, unlike RET. > > > > > > Why should a control key must be reserved forever for that very > > > specific purpose, and for that very specific purpose only, in the > > > default Emacs bindings? > > > > Opening an empty line is a very useful editing primitive, not unlike > > going to the next line with RET. > > > > I'd bet it is useful, as it is, only for 0.5% of Emacs users, perhaps even > less. No other editor I know has that feature. It cannot be argument here that other editors don't have features built-in into Emacs. Those are known facts. Emacs is advanced editor. Other editors simply don't have features of Emacs, unless they are Emacs-like. But there are several Emacs-like editors: Edwin in MIT Scheme, mg in OpenBSD, e3em, Zile, Zile on Guile, Emacs on Guile, those are once that I use from time to time here, including as a replacement for emacsclient (when something goes wrong). I have used those multiple times during last month. More references: https://wiki.gentoo.org/wiki/Project:Emacs/Emacs-like_editors Now when you bet, I also bet you don't use Emacs-like editors, and I am unsure how much you use Emacs beside those other editors you use. Another feature that many editors don't have is macro feature, editors that do have macro features are always more advanced than others. Because other editors do not have that feature, should we disable macros in Emacs? And then which other editors do you mention? Can we get the disclosure? Your personal experiences should or could be reasoned to understand those features you are referring to. > And I'd bet that 90% of those 0.5% would be happier with a better > open-line primitive, for example one which can be called when point > is in the middle of a line, like "o" and "O" in vi. I have mentioned my personal case and I said I would not like changing default of C-o or getting habit with my personal customizations to have C-o behave like O in vi. In relation to "o" in vi, I do not open new line below the current one, but I agree that quicker key binding would be nice. "o" from vi in Emacs is easily replaced with C-o as instead of using the current line, then I would be simply using one line below. - "o" in vi -- frequently used, it opens new line after current line, regardless where is cursors located. In Emacs: go to one line below, beginning of line, press C-o - "O" in vi - frequently used, opens new line before current line and places cursor at beginning of the line for writing, in Emacs, C-a C-o does the same. Again, I would not like changing Emacs default behavior as for me who works on various Emacs versions, including some older like few years (OS never get updated on those computers) -- including using Emacs-like editors frequently on remote VPS-es or remote computers, sometimes on personal computer. > The discussion showed that those who use it use it at BOL, and that > it wasn't used alone, but as part of a sequence, for example C-a C-o > or C-o C-n. Nobody even mentioned the fact that open-line uses the > fill-prefix and the left-margin. > > As I said, an improved version of that command could for example be put on > M-RET. Here's an attempt: > > (defun smart-open-line (&optional arg) > (interactive "*p") > (when (> arg 0) > (beginning-of-line) > (let ((p (point-marker))) > (dotimes (_ arg) (insert "\n")) > (goto-char p))) > (when (< arg 0) > (setq arg (abs arg)) > (beginning-of-line) > (forward-fine 1) > (dotimes (_ arg) (insert "\n")) > (forward-line -1))) > (global-set-key (kbd "M-RET") 'smart-open-line) I have tried that version, it may be better than this one below that I have ready -- but remember, I am not using it and do not want to depend on it, that it does not change my finger work when I am working on un-customized Emacs versions. (defun my-C-o () "Opens new line regardless where is cursor positioned." (interactive) (move-beginning-of-line nil) (open-line 1)) but I would like to ask not to bind M-RET to something by default in Emacs, as it is used very efficiently in the package Hyperbole, and I recommend that you try using Hyperbole to understand M-RET > And even assuming that it is useful as it is, that doesn't answer > the main question: why should a control character key be reserved > forever for that very specific purpose, and for that very specific > purpose only? Because it is default for many years, learned and used by people and adopted by other Emacs-like editors. You can make then same question like why should C-a be used to jump to beginning of the line or C-f to move one char forward. Nothing is forever. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-23 8:09 ` Eli Zaretskii 2021-03-23 14:15 ` Gregory Heytings @ 2021-03-23 20:55 ` chad 1 sibling, 0 replies; 154+ messages in thread From: chad @ 2021-03-23 20:55 UTC (permalink / raw) To: Eli Zaretskii Cc: Gregory Heytings, EMACS development team, Lars Ingebrigtsen, Stephan.Mueller [-- Attachment #1: Type: text/plain, Size: 2914 bytes --] On Tue, Mar 23, 2021 at 1:10 AM Eli Zaretskii <eliz@gnu.org> wrote: > > Why should a control key must be reserved forever for that very specific > > purpose, and for that very specific purpose only, in the default Emacs > > bindings? > > Opening an empty line is a very useful editing primitive, not unlike > going to the next line with RET. Trying to change that will always > cause staunch resistance, especially when the purpose for which this > is done is vague and not perceived as important enough by enough > people. > Let's set aside the historical/hysterical impact for a second and look at the input/effect table (which is why I asked for help understanding the difference between "`C-o C-n' and `C-j' -- for which you all have my thanks): I take as given that "opening an empty line is a useful primitive", along with "insert a newline at point" and also "insert a newline at point and maybe do some context-specific DWIMish stuff". I think there's plenty of support for this position, even for people who don't regularly perform all of those operations. That gives us ~3 distinct solid effects (more on this later). On the input side, we sure want RET to be one of those ~3, and I think we can agree that it's default should be the 2nd or maybe the 3rd effect. I personally think that `C-j' is nicely intuitive for a newline-related command, but that might be a sign of my age. M-RET is also very intuitive for an alternative-newline command, seems to work in tty, and is used in a large variety of other contexts (running the gamut from "Org mode in emacs" to "editing inside spreadsheet cells"), so it seems like a solid choice. From what I have seen, `C-o' has the main benefit that a large subset of emacs users have been using it for a very long time, and the secondary benefits of an mnemonic binding with "open line" and similarity (although at least somewhat an uncanny-valley jarring one) to vi's 'o'. Both `C-j' and `C-o' have a slight infelicity with being unused in other editing environments, but that seems like a tertiary consideration to me. To this, we can add the historical wrinkles around electric-indent recently brought up on this thread, which changed the C-j/RET pair from newline/newline-and-indent to electric-newline-and-maybe-indent/newline -- note the functional swap. This thread contains some evidence of potential issues left over from this change, i.e. mode bindings that seem like maybe they should have been updated to match the "electric swap". *Without getting into the conversation about changing defaults*, do we generally agree that: - These seem like the relevant operations - These seem like the relevant potential keybinds (perhaps among others) - That there is reason to investigate some of the bindings that are currently in emacs-28 to see if they are confusing when combined with the current "electric newline" bindings? Thanks in advance, ~Chad [-- Attachment #2: Type: text/html, Size: 3585 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* RE: [EXTERNAL] Re: Suggested experimental test 2021-03-22 18:34 ` Lars Ingebrigtsen 2021-03-22 18:56 ` Eli Zaretskii @ 2021-03-25 17:04 ` Stephan Mueller 1 sibling, 0 replies; 154+ messages in thread From: Stephan Mueller @ 2021-03-25 17:04 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel@gnu.org " Lars Ingebrigtsen <larsi@gnus.org> writes: " Stephan Mueller <Stephan.Mueller@microsoft.com> writes: " " > I use C-o (usually followed by C-n) many times a day, instead of " > <Enter>, in order to suppress re-indentation of the current line in " > cases where that re-indentation will be incorrect for my purposes**. " " Oh, I see -- it's useful as an alternative to `RET' exactly when " re-indentation does the wrong thing? Yes, exactly and concisely. stephan(); ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [EXTERNAL] Re: Suggested experimental test 2021-03-22 18:11 ` [EXTERNAL] " Stephan Mueller 2021-03-22 18:34 ` Lars Ingebrigtsen @ 2021-03-22 19:37 ` Stefan Monnier 2021-03-22 19:42 ` Dmitry Gutov 2 siblings, 0 replies; 154+ messages in thread From: Stefan Monnier @ 2021-03-22 19:37 UTC (permalink / raw) To: Stephan Mueller; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel@gnu.org > I use C-o (usually followed by C-n) many times a day, instead of <Enter>, in > order to suppress re-indentation of the current line in cases where that > re-indentation will be incorrect for my purposes**. FWIW, normally you can replace `C-o C-n` with `C-j`. [ I'm not sure `cperl-mode` is sufficiently normal in this respect, tho (one of the reasons why I prefer `perl-mode`). ] Stefan ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [EXTERNAL] Re: Suggested experimental test 2021-03-22 18:11 ` [EXTERNAL] " Stephan Mueller 2021-03-22 18:34 ` Lars Ingebrigtsen 2021-03-22 19:37 ` Stefan Monnier @ 2021-03-22 19:42 ` Dmitry Gutov 2 siblings, 0 replies; 154+ messages in thread From: Dmitry Gutov @ 2021-03-22 19:42 UTC (permalink / raw) To: Stephan Mueller, Lars Ingebrigtsen, Gregory Heytings; +Cc: emacs-devel@gnu.org On 22.03.2021 20:11, Stephan Mueller wrote: > I use C-o (usually followed by C-n) many times a day, instead of <Enter>, in order to suppress re-indentation of the current line in cases where that re-indentation will be incorrect for my purposes**. Same. Probably less frequently, though, now that I (global-set-key (kbd "RET") 'newline-and-indent) in my init script. Though this customization choice bears its own downsides. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-22 12:06 ` Lars Ingebrigtsen ` (4 preceding siblings ...) 2021-03-22 18:11 ` [EXTERNAL] " Stephan Mueller @ 2021-03-22 20:33 ` Jose A. Ortega Ruiz 5 siblings, 0 replies; 154+ messages in thread From: Jose A. Ortega Ruiz @ 2021-03-22 20:33 UTC (permalink / raw) To: emacs-devel On Mon, Mar 22 2021, Lars Ingebrigtsen wrote: > Gregory Heytings <gregory@heytings.org> writes: > >> Well... the suggested experiment does not remove C-o, it changes C-o >> in a way that is, I believe, painless. > > Sorry; I didn't read the patch carefully. So it basically moves `C-o' > to `C-o C-o' (and makes the `C-o' prefix open for new commands)? > > I don't use `C-o' myself, so I can't really say to what degree this > would be annoying or not for users. Any `C-o' users who have an opinion > here? I use C-o very, very often, to the point that i am sure that i will pretty soon rebind it to its former meaning (and lose easy accesibility to the new map, most possibly to my disadvantage, but old habits die hard). Something similar happened to me with M-g, if memory serves, but admittedly here the fact that repeating it "will work" might ameliorate my reaction. Cheers, jao -- Sometimes I think we're alone in the universe, and sometimes I think we're not. In either case, the idea is quite staggering. -Arthur C Clarke, writer (1917- ) ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: Suggested experimental test 2021-03-21 10:48 ` Gregory Heytings ` (2 preceding siblings ...) 2021-03-22 12:06 ` Lars Ingebrigtsen @ 2021-03-22 18:42 ` Sean Whitton 3 siblings, 0 replies; 154+ messages in thread From: Sean Whitton @ 2021-03-22 18:42 UTC (permalink / raw) To: Gregory Heytings, Lars Ingebrigtsen; +Cc: emacs-devel Hello Gregory, On Sun 21 Mar 2021 at 10:48AM GMT, Gregory Heytings wrote: >>> May I suggest the attached, slightly more controversial, experimental >>> test? >> >> Removing `C-o' has already been suggested, and there's already been a >> lot of negative feedback on that, if I remember correctly. So I don't >> think there's much point in doing this experiment. >> > > Well... the suggested experiment does not remove C-o, it changes C-o in a > way that is, I believe, painless. We cannot know whether it is indeed > painless without experimenting at a larger scale. The few who objected > against changing C-o may well find out, after trying it out, that this > small change is not as bad as they thought. > > As far as I remember, there has not been a lot of negative feedback on > changing C-o, the negative feedback was (to my surprise) mostly about the > possibility of changing the behavior of C-z. To be honest, changing C-o feels like changing C-y -- in fact, I probably type C-o more often than I type C-y. -- Sean Whitton ^ permalink raw reply [flat|nested] 154+ messages in thread
end of thread, other threads:[~2021-03-28 13:59 UTC | newest] Thread overview: 154+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-03-20 9:03 Suggested experimental test Gregory Heytings 2021-03-20 11:14 ` Jean Louis 2021-03-20 11:27 ` Eli Zaretskii 2021-03-20 11:34 ` Gregory Heytings 2021-03-20 12:37 ` Proposal to remove C-o binding [was: Suggested experimental test] Alan Mackenzie 2021-03-21 6:53 ` Suggested experimental test Lars Ingebrigtsen 2021-03-21 8:35 ` Alfred M. Szmidt 2021-03-21 13:20 ` Gregory Heytings 2021-03-21 18:16 ` Alfred M. Szmidt 2021-03-21 22:16 ` Gregory Heytings 2021-03-21 22:54 ` Alfred M. Szmidt 2021-03-21 23:05 ` Gregory Heytings 2021-03-21 23:13 ` Alfred M. Szmidt 2021-03-21 23:46 ` Gregory Heytings 2021-03-22 0:40 ` Alfred M. Szmidt 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 18:14 ` Alfred M. Szmidt 2021-03-22 19:06 ` Gregory Heytings 2021-03-22 19:56 ` [External] : " Drew Adams 2021-03-22 21:03 ` Alfred M. Szmidt 2021-03-22 21:26 ` Drew Adams 2021-03-23 8:06 ` Alfred M. Szmidt 2021-03-22 21:08 ` Alfred M. Szmidt 2021-03-22 11:21 ` Jean Louis 2021-03-22 11:07 ` Jean Louis 2021-03-22 3:33 ` Eli Zaretskii 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 11:37 ` Philip Kaludercic 2021-03-22 12:20 ` Gregory Heytings 2021-03-22 17:38 ` Eli Zaretskii 2021-03-22 17:48 ` Gregory Heytings 2021-03-22 18:11 ` Eli Zaretskii 2021-03-22 18:15 ` Alfred M. Szmidt 2021-03-22 18:14 ` Alfred M. Szmidt 2021-03-22 8:59 ` Rudolf Schlatte 2021-03-22 10:05 ` Gregory Heytings 2021-03-22 10:49 ` Jean Louis 2021-03-21 10:48 ` Gregory Heytings 2021-03-21 10:58 ` Sv: " arthur miller 2021-03-21 13:20 ` Gregory Heytings 2021-03-21 18:16 ` Sv: " Alfred M. Szmidt 2021-03-22 5:11 ` Richard Stallman 2021-03-22 10:24 ` Sv: " Jean Louis 2021-03-22 10:14 ` Jean Louis 2021-03-22 12:06 ` Lars Ingebrigtsen 2021-03-22 12:23 ` Gregory Heytings 2021-03-22 16:15 ` Jean Louis 2021-03-22 16:14 ` Jean Louis 2021-03-22 17:08 ` Gregory Heytings 2021-03-22 17:46 ` Alan Mackenzie 2021-03-22 17:59 ` Gregory Heytings 2021-03-22 18:23 ` Alfred M. Szmidt 2021-03-23 6:09 ` Richard Stallman 2021-03-22 18:03 ` Jean Louis 2021-03-22 17:20 ` Robin Tarsiger 2021-03-22 17:40 ` Eli Zaretskii 2021-03-22 17:55 ` Gregory Heytings 2021-03-22 18:13 ` Eli Zaretskii 2021-03-22 20:22 ` Gregory Heytings 2021-03-23 8:06 ` Eli Zaretskii 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 14:37 ` Eli Zaretskii 2021-03-23 16:51 ` Gregory Heytings 2021-03-23 17:13 ` Eli Zaretskii 2021-03-23 18:08 ` Alfred M. Szmidt 2021-03-23 21:06 ` Gregory Heytings 2021-03-23 21:43 ` Alfred M. Szmidt 2021-03-23 21:57 ` Gregory Heytings 2021-03-23 22:08 ` Alfred M. Szmidt 2021-03-23 22:14 ` Gregory Heytings 2021-03-23 22:42 ` Alfred M. Szmidt 2021-03-23 23:05 ` Gregory Heytings 2021-03-24 5:15 ` Richard Stallman 2021-03-24 5:16 ` Richard Stallman 2021-03-24 6:39 ` Jean Louis 2021-03-24 6:32 ` Jean Louis 2021-03-24 6:10 ` Jean Louis 2021-03-22 18:17 ` Lars Ingebrigtsen 2021-03-22 18:50 ` Eli Zaretskii 2021-03-22 19:09 ` Lars Ingebrigtsen 2021-03-22 19:55 ` Lars Ingebrigtsen 2021-03-22 22:02 ` Stefan Kangas 2021-03-22 22:33 ` [External] : " Drew Adams 2021-03-22 23:28 ` Stefan Kangas 2021-03-22 22:44 ` Dmitry Gutov 2021-03-22 23:22 ` Stefan Kangas 2021-03-23 5:22 ` Jean Louis 2021-03-23 7:43 ` Eli Zaretskii 2021-03-23 12:28 ` Philip Kaludercic 2021-03-23 12:41 ` Eli Zaretskii 2021-03-23 13:09 ` Dmitry Gutov 2021-03-23 13:27 ` Philip Kaludercic 2021-03-23 14:00 ` Dmitry Gutov 2021-03-23 13:54 ` Eli Zaretskii 2021-03-23 17:04 ` Dmitry Gutov 2021-03-23 21:06 ` chad 2021-03-24 5:07 ` Jean Louis 2021-03-25 5:09 ` Richard Stallman 2021-03-23 6:12 ` Yuri Khan 2021-03-24 23:41 ` Dmitry Gutov 2021-03-25 6:12 ` Yuri Khan 2021-03-25 13:20 ` Dmitry Gutov 2021-03-25 14:30 ` Basil L. Contovounesios 2021-03-25 17:09 ` Dmitry Gutov 2021-03-25 18:59 ` Yuri Khan 2021-03-25 19:30 ` Yuri Khan 2021-03-25 21:11 ` Stefan Monnier 2021-03-25 23:54 ` Dmitry Gutov 2021-03-26 10:34 ` Stefan Kangas 2021-03-26 23:13 ` Dmitry Gutov 2021-03-26 23:34 ` Dmitry Gutov 2021-03-27 0:02 ` Stefan Monnier 2021-03-28 13:59 ` Dmitry Gutov 2021-03-22 20:22 ` Gregory Heytings 2021-03-22 20:36 ` Lars Ingebrigtsen 2021-03-22 21:03 ` Alfred M. Szmidt 2021-03-22 20:56 ` Thierry Volpiatto 2021-03-22 18:11 ` [EXTERNAL] " Stephan Mueller 2021-03-22 18:34 ` Lars Ingebrigtsen 2021-03-22 18:56 ` Eli Zaretskii 2021-03-22 19:13 ` Lars Ingebrigtsen 2021-03-22 19:19 ` Eli Zaretskii 2021-03-22 19:25 ` Lars Ingebrigtsen 2021-03-22 19:49 ` Stefan Monnier 2021-03-22 19:52 ` Lars Ingebrigtsen 2021-03-22 20:54 ` Stefan Monnier 2021-03-22 21:04 ` Lars Ingebrigtsen 2021-03-23 7:18 ` Eli Zaretskii 2021-03-22 19:21 ` chad 2021-03-22 19:26 ` Eli Zaretskii 2021-03-22 19:51 ` Stefan Monnier 2021-03-22 20:04 ` Eli Zaretskii 2021-03-22 20:11 ` Lars Ingebrigtsen 2021-03-22 20:16 ` Lars Ingebrigtsen 2021-03-23 7:04 ` Eli Zaretskii 2021-03-22 20:49 ` Stefan Monnier 2021-03-22 21:02 ` [External] : " Drew Adams 2021-03-23 7:09 ` Eli Zaretskii 2021-03-22 19:28 ` Lars Ingebrigtsen 2021-03-22 19:56 ` [External] : " Drew Adams 2021-03-22 20:56 ` Stefan Monnier 2021-03-22 21:19 ` Drew Adams 2021-03-22 20:22 ` Gregory Heytings 2021-03-23 8:09 ` Eli Zaretskii 2021-03-23 14:15 ` Gregory Heytings 2021-03-23 14:31 ` Eli Zaretskii 2021-03-23 17:21 ` Bob Rogers 2021-03-24 5:42 ` Jean Louis 2021-03-23 20:55 ` chad 2021-03-25 17:04 ` [EXTERNAL] " Stephan Mueller 2021-03-22 19:37 ` Stefan Monnier 2021-03-22 19:42 ` Dmitry Gutov 2021-03-22 20:33 ` Jose A. Ortega Ruiz 2021-03-22 18:42 ` Sean Whitton
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).