all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Óscar Fuentes" <ofv@wanadoo.es>
To: help-gnu-emacs@gnu.org
Subject: Re: Is Elisp really that slow?
Date: Sun, 19 May 2019 20:40:23 +0200	[thread overview]
Message-ID: <87r28umgo8.fsf@telefonica.net> (raw)
In-Reply-To: 87h89qtquc.fsf@mail.de

Stefan Huchler <stefan.huchler@mail.de> writes:

> I replaced as example C-c C-c in org mode (edit-special) with Menu + d +
> d, the problem is that vanilla Emacs doesn't allow that kind of bindings
> as far as I know:
>
> (:map xah-fly-e-keymap
> 	  ("e" . (lambda () (interactive)
> 		   (if org-src-mode (org-edit-src-exit)
> 		     (org-edit-special)))))
>
> But I have no standard keyboard, but the fly-keys can also be accessed
> with Space + d + d. (in command mode)
>
> And it's e in the code because I use dvorak. d is easier to hit as c,
> and C is not more rememberable then d it's completely randomly chosen.
>
> Also I would argue that most people press C-c C-c with left control
> instead of the ergonomic way to use the right control therefor you train
> people to use unergonomic keychords.

I'm afraid that this is hard to fix from Emacs. People (myself included)
tend to chord in unhealthy ways. The problem is similar to postural
injuries: you feel comfortable but you are harming yourself on the long
term. The real solution is to train people on ergonomics. Admitedly,
Emacs is not a model of good practices on this regards.

> But the main problem is not the char you use but that you have to hold
> this modifiers, which "reduces ergonomics" as compromise I would also
> be ok with having some sort of sticky keys? and you press once Ctrl
> release then press c c.

I'll argue that holding "C-c C-c" is more ergonomic that "C-c c". As for
sticky keys, maybe you can activate them with your OS/desktop
environment?

> But this is not even a optional feature in emacs:
> https://www.emacswiki.org/emacs/StickyModifiers
>
> And I would argue it should be the default behaviour, but it should at
> least be a opiton. So don't claim it has to do with mnemonics or
> ergonomics it has historic reasons not more not less. I would also argue
> that consistence is not that important.

I never claimed that C-c C-c was chosen because it is ergonomic on a
global sense, but because is ergonomic given the imposed constraints
which require the C-c prefix for major modes.

> But another suggestion for that, if C-c C-c is meant as shortcut for a
> "important-function" why not have a binding for "do-important-action" or
> "do-major-action" and depending on mode that functions calls the
> important function of the mode. So that the user can choose globaly a
> keybinding for that and don't has to do that for 80 modes
> seperately. and the developer of the mode just somewhere sets which
> function is bound to C-c C-c by setting:
> (setq mode-important-function 'compile...)
>
> That would give at least so much consistancy that you don't have to
> change the keybinding 50 times in 50 modes if you want to change it, and
> in some where I was to lazy yet I still have to press C-c C-c and in
> some I press my Menu + e + e. 

This is one of those ideas that sounds good when proposed but are hard
to implement. You will face obstacles as, for instance, the fact that
key bindings are mentioned on the manual files as well all over the
websphere on questions and answers, etc. Then you have the problem of
collisions, etc.

This is an area that I'm interested on and, on the past, I proposed some
steps towards better discoverability and ergonomy and volunteered to do
the boring, lengthy, clerical part of the job, but no Emacs hacker was
interested enough to do the technical part.

I also pondered similar ideas to what others proposed on this thread
about some sort of "semantic" UI but it is a very hard problem, moreover
if you try to implement something solid that could be defended with
rigorous arguments instead of something that others will view as a
collection of personal quirks.




  reply	other threads:[~2019-05-19 18:40 UTC|newest]

Thread overview: 298+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 23:54 Is Elisp really that slow? Ergus
2019-05-15 11:57 ` Emanuel Berg
2019-05-15 13:06 ` Dmitry Gutov
2019-05-15 13:25   ` Óscar Fuentes
2019-05-15 13:30     ` Dmitry Gutov
2019-05-15 14:18       ` Óscar Fuentes
2019-05-15 14:45         ` Dmitry Gutov
2019-05-15 15:14           ` Óscar Fuentes
2019-05-15 15:39             ` Dmitry Gutov
2019-05-15 15:51               ` Óscar Fuentes
2019-05-15 16:05                 ` Óscar Fuentes
2019-05-15 16:07                   ` Dmitry Gutov
2019-05-15 16:05                 ` Dmitry Gutov
2019-05-15 16:12                   ` Óscar Fuentes
2019-05-15 16:15                     ` Dmitry Gutov
2019-05-15 20:23                       ` Óscar Fuentes
2019-05-15 20:30                         ` Dmitry Gutov
2019-05-15 15:42             ` Stefan Monnier
2019-05-15 17:29               ` Drew Adams
2019-05-15 19:38                 ` Ergus
2019-05-15 19:53                   ` Drew Adams
2019-05-15 20:09                     ` Ergus
2019-05-15 23:24                       ` Emanuel Berg
2019-05-15 20:46             ` Ergus
2019-05-15 23:30               ` Emanuel Berg
2019-05-15 23:12             ` Emanuel Berg
2019-05-15 19:47           ` Ergus
2019-05-15 19:45         ` Ergus
2019-05-15 15:18     ` Stefan Monnier
2019-05-15 15:34       ` Óscar Fuentes
2019-05-15 15:51         ` Stefan Monnier
2019-05-15 17:30           ` John Yates
2019-05-15 19:29             ` Ergus
2019-05-15 20:15   ` Ergus
2019-05-15 20:21     ` Dmitry Gutov
2019-05-15 20:57       ` Ergus
2019-05-15 21:00         ` Dmitry Gutov
2019-05-15 21:17           ` Ergus
2019-05-17 11:09             ` Dmitry Gutov
2019-05-15 15:07 ` Uniformity (was: Is Elisp really that slow?) Stefan Monnier
2019-05-15 15:24   ` Uniformity Óscar Fuentes
2019-05-15 15:45     ` Uniformity Stefan Monnier
2019-05-15 19:58   ` Uniformity (was: Is Elisp really that slow?) Ergus
2019-05-18 23:51   ` Emanuel Berg
2019-05-15 15:14 ` Is Elisp really that slow? Eli Zaretskii
2019-05-15 15:40   ` Óscar Fuentes
2019-05-15 16:14     ` Eli Zaretskii
2019-05-15 16:23       ` Tadeus Prastowo
2019-05-15 16:27         ` tomas
2019-05-15 17:00         ` Eli Zaretskii
2019-05-15 20:09           ` Óscar Fuentes
2019-05-16 13:12             ` Eli Zaretskii
2019-05-16 13:40               ` Óscar Fuentes
2019-05-16 14:06                 ` Eli Zaretskii
2019-05-15 21:09       ` Ergus
2019-05-16 14:12         ` Eli Zaretskii
2019-05-16 16:14           ` Ergus
2019-05-16 17:46             ` Eli Zaretskii
2019-05-16 20:23               ` Ergus
2019-05-16 20:50                 ` Óscar Fuentes
2019-05-16 22:46                   ` Ergus
2019-05-16 23:19                     ` Óscar Fuentes
2019-05-28 21:08                     ` Emanuel Berg via help-gnu-emacs
2019-05-28 21:50                       ` Drew Adams
2019-05-17  1:28                   ` Jean-Christophe Helary
2019-05-17  2:26                     ` Óscar Fuentes
2019-05-17  4:05                       ` Jean-Christophe Helary
2019-05-17  6:08                         ` Ergus
2019-05-17  9:21                           ` tomas
2019-05-17 14:01                             ` Óscar Fuentes
2019-05-17 14:16                               ` Dmitry Gutov
2019-05-17 14:50                                 ` Óscar Fuentes
2019-05-17 18:19                                   ` Dmitry Gutov
2019-05-17 19:23                                     ` Óscar Fuentes
2019-05-17 20:51                                       ` Dmitry Gutov
2019-05-17 16:37                                 ` tomas
2019-05-17 16:50                                   ` Óscar Fuentes
2019-05-17 17:05                                     ` Óscar Fuentes
2019-05-17 18:11                                       ` Dmitry Gutov
2019-05-17 18:16                                     ` Dmitry Gutov
2019-05-17 18:14                                   ` Dmitry Gutov
2019-05-30 12:09                               ` Emanuel Berg via help-gnu-emacs
2019-06-25 16:48                                 ` Jean Louis
2019-05-29  4:58                           ` Emanuel Berg via help-gnu-emacs
2019-05-17 13:46                         ` Óscar Fuentes
2019-05-29  4:26                         ` Emanuel Berg via help-gnu-emacs
2019-05-17  5:52                       ` Ergus
2019-05-17  9:01                         ` Eli Zaretskii
2019-05-17 12:35                           ` Ergus
2019-05-17 13:13                             ` Eli Zaretskii
2019-05-17 13:22                               ` Dmitry Gutov
2019-05-17 13:39                                 ` Eli Zaretskii
2019-05-17 15:07                                   ` Óscar Fuentes
2019-05-18 15:41                                     ` Dmitry Gutov
2019-05-17 15:39                                   ` Ergus
2019-05-17 15:47                                     ` Noam Postavsky
2019-05-17 15:48                                     ` Eli Zaretskii
2019-05-17 19:24                               ` Ergus
2019-05-17 20:12                                 ` Eli Zaretskii
2019-05-19 13:38                                   ` Ergus
2019-05-19 13:42                                     ` Noam Postavsky
2019-06-06  3:24                                     ` Emanuel Berg via help-gnu-emacs
2019-06-05  6:05                                   ` Emanuel Berg via help-gnu-emacs
2019-06-05  4:44                                 ` Emanuel Berg via help-gnu-emacs
2019-06-06 21:06                                   ` Xavier Maillard
2019-06-07 19:01                                     ` Emanuel Berg via help-gnu-emacs
2019-05-31 15:50                               ` Emanuel Berg via help-gnu-emacs
2019-05-31 17:57                                 ` Eli Zaretskii
2019-06-07 18:46                                   ` Emanuel Berg via help-gnu-emacs
2019-06-02 10:49                                 ` Stefan Huchler
2019-06-02 19:16                                   ` Marcin Borkowski
2019-06-02 22:49                                     ` Stefan Huchler
2019-06-07 18:55                                     ` Emanuel Berg via help-gnu-emacs
2019-06-07 18:53                                   ` Emanuel Berg via help-gnu-emacs
2019-05-17 14:21                             ` Óscar Fuentes
2019-05-17 15:02                             ` Drew Adams
2019-05-17 16:29                           ` Stefan Huchler
2019-05-17 17:19                             ` Ergus
2019-06-05  2:29                               ` Emanuel Berg via help-gnu-emacs
2019-06-04 22:29                             ` Emanuel Berg via help-gnu-emacs
2019-05-30  3:30                           ` Emanuel Berg via help-gnu-emacs
2019-05-17 14:12                         ` Óscar Fuentes
2019-05-17  8:54                       ` Dmitry Gutov
2019-05-17  9:36                         ` Eli Zaretskii
2019-05-17 11:09                           ` Dmitry Gutov
2019-05-17 12:04                             ` Eli Zaretskii
2019-05-17 12:56                               ` Ergus
2019-05-17 13:31                                 ` Eli Zaretskii
2019-05-17 15:03                                 ` Drew Adams
2019-06-04  1:27                                   ` Emanuel Berg via help-gnu-emacs
2019-05-31 19:03                                 ` Emanuel Berg via help-gnu-emacs
2019-06-01  8:17                                   ` Jean Louis
2019-06-07 18:49                                     ` Emanuel Berg via help-gnu-emacs
2019-05-17 13:17                               ` Dmitry Gutov
2019-05-17 13:35                                 ` Eli Zaretskii
2019-05-17 13:43                                   ` Dmitry Gutov
2019-05-17 14:36                                     ` Eli Zaretskii
2019-05-18 16:54                                       ` Dmitry Gutov
2019-05-18 17:17                                         ` Eli Zaretskii
2019-05-18 22:43                                           ` Dmitry Gutov
2019-05-18 23:54                                             ` Óscar Fuentes
2019-05-19  0:24                                               ` 조성빈
2019-05-19  5:24                                                 ` Óscar Fuentes
2019-05-19 15:18                                                   ` Stefan Huchler
2019-05-19 18:40                                                     ` Óscar Fuentes [this message]
2019-05-20  6:47                                                       ` tomas
2019-05-20 14:57                                                         ` Drew Adams
2019-05-20 15:28                                                         ` Óscar Fuentes
2019-06-06  5:16                                                           ` Emanuel Berg via help-gnu-emacs
2019-05-21 12:19                                                         ` Van L
2019-05-23 20:01                                                     ` Robert Thorpe
2019-05-23 23:05                                                       ` Stefan Huchler
2019-05-24 14:40                                                         ` Robert Thorpe
2019-05-25  0:07                                                           ` Stefan Huchler
2019-05-25 10:54                                                             ` Robert Thorpe
2019-06-06  6:02                                                       ` Emanuel Berg via help-gnu-emacs
2019-06-06  0:16                                                     ` Emanuel Berg via help-gnu-emacs
2019-06-06  0:08                                                   ` Emanuel Berg via help-gnu-emacs
2019-06-06  0:06                                                 ` Emanuel Berg via help-gnu-emacs
2019-05-19  2:40                                             ` Eli Zaretskii
2019-05-31 21:04                                       ` Emanuel Berg via help-gnu-emacs
2019-05-31 15:05                               ` Emanuel Berg via help-gnu-emacs
2019-05-17 14:40                             ` Óscar Fuentes
2019-06-02  2:00                               ` Emanuel Berg via help-gnu-emacs
2019-05-19 18:35                           ` Stefan Monnier
2019-05-19 19:23                             ` 조성빈
2019-05-20  6:53                             ` tomas
2019-06-06  5:03                             ` Emanuel Berg via help-gnu-emacs
2019-06-11 13:06                             ` Ergus via help-gnu-emacs
2019-06-11 13:37                               ` Óscar Fuentes
2019-06-12  1:08                                 ` Ergus via help-gnu-emacs
2019-05-30 21:30                           ` Emanuel Berg via help-gnu-emacs
2019-05-30 21:25                         ` Emanuel Berg via help-gnu-emacs
     [not found]                       ` <<20190517055202.ted62gt6hqcip7xt@Ergus>
     [not found]                         ` <<83mujlbgjh.fsf@gnu.org>
2019-05-17 15:03                           ` Drew Adams
2019-06-04  1:20                             ` Emanuel Berg via help-gnu-emacs
2019-06-04  1:50                               ` Emanuel Berg via help-gnu-emacs
2019-05-28 23:16                       ` Emanuel Berg via help-gnu-emacs
2019-05-17  9:05                     ` tomas
2019-05-28 21:54                     ` Emanuel Berg via help-gnu-emacs
2019-05-17  8:47                   ` Dmitry Gutov
2019-05-17 15:22                     ` Óscar Fuentes
2019-05-17 18:28                       ` Dmitry Gutov
2019-05-17 19:55                         ` Óscar Fuentes
2019-06-04  1:41                           ` Emanuel Berg via help-gnu-emacs
2019-06-04  1:38                         ` Emanuel Berg via help-gnu-emacs
2019-06-04  1:37                       ` Emanuel Berg via help-gnu-emacs
2019-05-31  3:36                     ` Emanuel Berg via help-gnu-emacs
2019-05-17  8:55                   ` tomas
2019-05-17 15:02                     ` Drew Adams
2019-05-31  4:52                       ` Emanuel Berg via help-gnu-emacs
2019-05-27 14:30                   ` Emanuel Berg via help-gnu-emacs
2019-05-29  5:02                     ` Xavier Maillard
2019-06-07 18:40                       ` Emanuel Berg via help-gnu-emacs
2019-05-17  6:24                 ` Eli Zaretskii
2019-05-30 17:58                   ` Emanuel Berg via help-gnu-emacs
2019-05-25  8:22                 ` Emanuel Berg via help-gnu-emacs
2019-05-25  9:05                   ` 조성빈 via help-gnu-emacs
2019-05-25  5:14               ` Emanuel Berg via help-gnu-emacs
2019-05-25  4:42           ` Emanuel Berg via help-gnu-emacs
2019-05-25  6:31             ` Eli Zaretskii
2019-06-07 18:34               ` Emanuel Berg via help-gnu-emacs
2019-06-07 20:21                 ` Eli Zaretskii
2019-05-19  0:03         ` Emanuel Berg
2019-05-19  8:16           ` Van L
2019-05-19 10:35             ` 조성빈
2019-05-19 12:48               ` Van L
2019-05-19 13:13                 ` Ergus
2019-06-06  2:54                   ` Emanuel Berg via help-gnu-emacs
2019-05-19 13:00               ` Ergus
2019-05-19 14:57                 ` 조성빈
2019-06-06  3:08                   ` Emanuel Berg via help-gnu-emacs
2019-05-19 13:05               ` Ergus
2019-05-21 12:00                 ` Van L
2019-06-06  3:20                   ` Emanuel Berg via help-gnu-emacs
2019-06-06  0:52               ` Emanuel Berg via help-gnu-emacs
2019-06-06  0:53               ` Emanuel Berg via help-gnu-emacs
2019-05-19 14:32             ` Drew Adams
2019-05-21 12:09               ` Van L
2019-06-06  0:43             ` Emanuel Berg via help-gnu-emacs
2019-06-06  2:12               ` Drew Adams
2019-05-23 20:16           ` Robert Thorpe
2019-06-07 18:23             ` Emanuel Berg via help-gnu-emacs
2019-06-08 20:12               ` Robert Thorpe
2019-06-09 13:37                 ` Tomas Nordin
2019-06-09 13:50                   ` tomas
2019-06-10 22:55                     ` Emanuel Berg via help-gnu-emacs
2019-06-12  9:16                       ` [offtopic] " Van L
2019-06-12  9:28                         ` tomas
2019-06-12 11:31                           ` Van L
2019-06-12 11:44                             ` tomas
2019-06-14  4:12                           ` Xavier Maillard
2019-06-14  7:07                           ` tomas
2019-06-12 11:16                         ` [offtopic] " Jean-Christophe Helary
2019-06-12 13:28                           ` Van L
2019-05-16 23:31   ` Emanuel Berg
  -- strict thread matches above, loose matches on Subject: below --
2019-05-16  1:32 Ergus
2019-05-22  7:13 ` Emanuel Berg
2019-05-16  1:19 Ergus
2019-05-20 11:32 ` Emanuel Berg
2019-05-02 21:40 Why is Elisp slow? Ergus
2019-05-02 23:39 ` 조성빈
2019-05-03  0:44   ` Ergus
2019-05-10 13:14     ` Van L
2019-05-10 13:22       ` Michael Heerdegen
2019-05-11  0:38         ` Emanuel Berg
2019-05-11  7:32           ` Is Elisp really that slow? (was: Why is Elisp slow?) tomas
2019-05-11  7:42             ` 조성빈
2019-05-11  7:57               ` tomas
2019-05-11 23:09                 ` Emanuel Berg
2019-05-12  7:54                   ` tomas
2019-05-12  9:46                     ` 조성빈
2019-05-12 14:21                       ` Eli Zaretskii
2019-05-12 14:45                         ` Is Elisp really that slow? Óscar Fuentes
2019-05-12 15:28                           ` Eli Zaretskii
2019-05-12 15:46                             ` Óscar Fuentes
2019-05-12 17:20                               ` Eli Zaretskii
2019-05-12 18:37                                 ` Óscar Fuentes
2019-05-12 18:53                                   ` Eli Zaretskii
2019-05-13  1:44                                     ` Emanuel Berg
2019-05-12 21:18                                   ` Stefan Monnier
2019-05-12 22:22                                     ` Óscar Fuentes
2019-05-14 13:39                                       ` Stefan Monnier
2019-05-14 15:09                                         ` Óscar Fuentes
2019-05-13  0:57                                     ` Samuel Wales
2019-05-13 12:37                                       ` Stefan Monnier
2019-05-13 14:23                                         ` Emanuel Berg
2019-05-13 14:33                                         ` Emanuel Berg
2019-05-14  8:24                                           ` tomas
2019-05-14 13:21                                             ` Emanuel Berg
2019-05-14 14:44                                               ` tomas
2019-05-15 11:25                                                 ` Emanuel Berg
2019-05-15 12:05                                                   ` tomas
2019-05-15 23:02                                                     ` Emanuel Berg
2019-05-16  6:48                                                       ` tomas
2019-05-16  9:37                                                         ` Noam Postavsky
2019-05-16 11:02                                                           ` tomas
2019-05-23 14:23                                                             ` Emanuel Berg
2019-05-24  1:33                                                               ` Van L
2019-05-16 13:31                                                       ` Eli Zaretskii
2019-05-23 14:28                                                         ` Emanuel Berg
2019-05-23 14:54                                                           ` Drew Adams
2019-05-23 14:55                                                           ` Eli Zaretskii
2019-06-06  5:18                                                             ` Emanuel Berg via help-gnu-emacs
2019-05-16 14:45                                                   ` Stefan Monnier
2019-05-25  4:53                                                     ` Emanuel Berg via help-gnu-emacs
2019-05-13  1:52                                     ` Emanuel Berg
2019-05-13  1:35                                   ` Emanuel Berg
2019-05-12 21:01                               ` Stefan Monnier
2019-05-13  1:27                             ` Emanuel Berg
2019-05-13 14:38                               ` Eli Zaretskii
2019-05-13 15:00                                 ` Emanuel Berg
2019-05-13 15:25                                   ` Eli Zaretskii
2019-05-14 11:54                                     ` Emanuel Berg
2019-05-14 16:21                                       ` Eli Zaretskii
2019-05-14 17:05                                         ` Emanuel Berg
2019-05-14 18:30                                           ` Eli Zaretskii
2019-05-15 11:27                                             ` Emanuel Berg
2019-05-15 14:51                                               ` Eli Zaretskii
2019-05-16 23:19                                                 ` Emanuel Berg
2019-05-17  6:41                                                   ` Eli Zaretskii
2019-05-13 15:02                                 ` John Yates
2019-05-13 15:14                                   ` Eli Zaretskii
2019-05-13 22:40                                 ` Dmitry Gutov
2019-05-14  6:27                                 ` Paul W. Rankin
2019-05-14 13:10                                   ` Emanuel Berg
2019-05-13 15:42                               ` Van L
2019-05-17 15:17                           ` Ken Goldman
2019-06-04  1:36                             ` Emanuel Berg via help-gnu-emacs
2019-06-08  0:26             ` Is Elisp really that slow? (was: Why is Elisp slow?) Samuel Wales
2019-06-08  8:52               ` tomas
2019-06-08 21:00                 ` Samuel Wales
2019-06-08 21:14                   ` tomas
2019-06-08 21:44                     ` Is Elisp really that slow? Óscar Fuentes
2019-06-08 23:29                       ` Emanuel Berg via help-gnu-emacs
2019-06-11  4:10                       ` Xavier Maillard
     [not found] <<878sv7sp3r.fsf@telefonica.net>

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r28umgo8.fsf@telefonica.net \
    --to=ofv@wanadoo.es \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

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