Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ergonomic keybinding. Need qwerty testers.

18 views
Skip to first unread message

Xah

unread,
Aug 29, 2008, 5:16:57 PM8/29/08
to
The erognomic keybinding has a new version.

http://xahlee.org/emacs/ergonomic_emacs_keybinding.html

A visual image for old and new layout can be seen at:
http://xahlee.org/emacs/ergonomic_emacs_keybinding_change.html

Description of the main changes:

• Added delete-backward-char, delete-char, delete-backward-word,
delete-word commands.
• The undo, cut, copy, paste, positions has been moved.

Since i don't use qwerty, i'm looking for feedback on qwerty users.
(i.e. in case i had some elisp code errors, or any issues that might
come up)

------------------

The reason for these changes is that recently Stefan Guath pointed out
“real-last-command” can be used to fix the problem with “this-command”
that is used in command-frequency.el. (this-command lumps several kill
commands all into just kill-region, so frequency distribution for
individual kill commands are lost)

With this change, command frequent stat shows that the commands to
delete previous/next char/word very frequently used, 10 times more
than say, undo, kill line, or copy and cut. So, now these have
prominent positions.

Here's a rough stat of the commands that changed position due to the
new finding:

cmd name frequency of use
-------------------------------------
copy 174
cut less than copy
paste (yank) 1691
undo 524

backward-kill-word 2303
kill-word 1074
kill-line 155

delete-backward-char 6558
delete-char 996

For full detail of command frequency and the elisp code, see
http://xahlee.org/emacs/command-frequency.html

Xah
http://xahlee.org/


Will Parsons

unread,
Sep 2, 2008, 8:21:16 PM9/2/08
to
Xah wrote:
> The erognomic keybinding has a new version.
>
> http://xahlee.org/emacs/ergonomic_emacs_keybinding.html
>
> A visual image for old and new layout can be seen at:
> http://xahlee.org/emacs/ergonomic_emacs_keybinding_change.html
>
> Description of the main changes:
>
> ? Added delete-backward-char, delete-char, delete-backward-word,
> delete-word commands.
> ? The undo, cut, copy, paste, positions has been moved.

>
> Since i don't use qwerty, i'm looking for feedback on qwerty users.
> (i.e. in case i had some elisp code errors, or any issues that might
> come up)

Some comments:

I've been giving your keyboard mapping a try and generally like it. In
particular, I like the cut/paste series (M-x, M-c, M-v) and the
window-splitting series (M-0, M-1, M-2). I do regret, however, that the
M-c binding does conflict with the default capitalize-word binding, as I
use the capitalization functions bound by default to M-c, M-u, and M-l
pretty frequently. At the moment, I've configured a "windows" key to be
Hyper and bound the capitalization functions to H-c, H-u, and H-l, so I'll
see how that works out.

(I've noticed a slight anomaly - since M-x is bound to kill-region, M-a is
used for execute-extended-command, but when one hits M-a, one is still
presented with a prompt "M-x ".)

As far as the cursor movement bindings, the single character movement
bindings seem natural enough, but I suspect I'll prefer to continue to use
arrow keys. I'll have to give the other movement bindings more of trial
before making a final judgement, though the combinations involving M+S
(Alt+Shift) seem a little awkward to me.

I've bound M-g to goto-line for some time now, and am happy with the
standard C-k for kill-line, so prefer not to rebind M-g.

Similarly, I've bound M-p to ps-print-buffer, and since I don't use the
recenter function too often, am happy to stick with C-l for it.

I found the binding of M-d to delete-backward-char somewhat disconcerting,
because even though I've bound C-delete to kill-word, I'm still acustomed
to having M-d perform the same function in other contexts (e.g., in bash).

--
Will

Xah

unread,
Sep 3, 2008, 2:57:29 PM9/3/08
to
Hi Will,

Thanks a lot for your feedback.

On Sep 2, 5:21 pm, Will Parsons <oud...@nodomain.invalid> wrote:
> Xahwrote:


> > The erognomic keybinding has a new version.
>
> >http://xahlee.org/emacs/ergonomic_emacs_keybinding.html
>
> > A visual image for old and new layout can be seen at:
> >http://xahlee.org/emacs/ergonomic_emacs_keybinding_change.html
>
> > Description of the main changes:
>
> > ? Added delete-backward-char, delete-char, delete-backward-word,
> > delete-word commands.
> > ? The undo, cut, copy, paste, positions has been moved.
>
> > Since i don't use qwerty, i'm looking for feedback on qwerty users.
> > (i.e. in case i had some elisp code errors, or any issues that might
> > come up)
>
> Some comments:
>
> I've been giving your keyboard mapping a try and generally like it. In
> particular, I like the cut/paste series (M-x, M-c, M-v) and the
> window-splitting series (M-0, M-1, M-2).

Thanks.

> I do regret, however, that the
> M-c binding does conflict with the default capitalize-word binding, as I
> use the capitalization functions bound by default to M-c, M-u, and M-l
> pretty frequently. At the moment, I've configured a "windows" key to be
> Hyper and bound the capitalization functions to H-c, H-u, and H-l, so I'll
> see how that works out.

I too use capitalize-word, downcase-word, upcase-word often. My
solution is to bind them to Ctrl+‹key› space, since with the ergomap,
lots of Ctrl space keys are freed.

Alternatively, possibly these can be assigned to the right hand's
bottom row, as that row is currently empty. But i wanted to hold out a
bit.

there are many issues in designing a ergonomic keybinding set.
Basically, you just have so many physical keys and in a fixed keyboard
layout, and there are so many commands in different groups you want to
jam them into, with considerations of frequency of use, logical
grouping, position with finger ergonomics. Many of these
considerations are mutally at odds.

> (I've noticed a slight anomaly - since M-x is bound to kill-region, M-a is
> used for execute-extended-command, but when one hits M-a, one is still
> presented with a prompt "M-x ".)

Ah, i didn't notice that. :) Thanks for the note.

> As far as the cursor movement bindings, the single character movement
> bindings seem natural enough, but I suspect I'll prefer to continue to use
> arrow keys. I'll have to give the other movement bindings more of trial
> before making a final judgement, though the combinations involving M+S
> (Alt+Shift) seem a little awkward to me.
>
> I've bound M-g to goto-line for some time now, and am happy with the
> standard C-k for kill-line, so prefer not to rebind M-g.
>
> Similarly, I've bound M-p to ps-print-buffer, and since I don't use the
> recenter function too often, am happy to stick with C-l for it.

I see. Thanks for feedback.

> I found the binding of M-d to delete-backward-char somewhat disconcerting,
> because even though I've bound C-delete to kill-word, I'm still acustomed
> to having M-d perform the same function in other contexts (e.g., in bash).

umm... i can see the problem you described.

I thought about compatibility with existing emacs shortcuts or habits,
but it is hard to work into ergonomic based layout.

For me, i basically do almost all my needs of bash inside emacs. When
i'm in Mac's Terminal, i didn't have much problem because for many
years i've adopted the habit of pressing esc key for meta instead due
frequent need on unfamiliar terminals with remote machines. Since Mac
OS X in ~2001, the meta is Opt in Terminal (and there's no way to set
it to Cmd) .... in short, when working on Terminal my mind auto
switches to a different context.

When i'm on other people's emacs or remote machine, my speed slows
down to a crawl. I've used emacs bindings from 1998 to 2006. But now,
using it is a bit disorienting. On the whole i think it's just a trade
off one has to make when opting for a different system. (MacOS vs
Windows interface is also a example) I switched from qwerty to dvorak
in about 1993, and now when i work on other's keyboard, there's
disorientation but found that i can actually still touch type on
qwerty, maybe 30 words per min (my dvorak is about 90 wpm). I'm sure
if my need to type on qwerty is more frequent, my speed will pick up.
From reading other dvorak's online forum posts, i note that it is not
uncommon for one to touch type dvorak and still have reasonable
efficiency in qwerty.

similarly, 5 or 10 years ago i used to refrain from any customization
with emacs for fear of unable to use emacs elsewhere and fear of
screwing up something i do not know well. I think many people also
thought like this. But now i think this caution is overly exaggerated.

PS may i use your message in my testimonial page here?
http://xahlee.org/emacs/ergonomic_emacs_keybinding_good.html

Thanks a lot.

Xah
http://xahlee.org/


Will Parsons

unread,
Sep 3, 2008, 4:30:51 PM9/3/08
to
Xah wrote:
> similarly, 5 or 10 years ago i used to refrain from any customization
> with emacs for fear of unable to use emacs elsewhere and fear of
> screwing up something i do not know well. I think many people also
> thought like this. But now i think this caution is overly exaggerated.

I've generally been willing to override bindings that I don't use - with the
exception of the basic cursor movement bindings. Even though I use the
arrow keys almost exclusively for one-character cursor movement, I've
always been reluctant to reclaim the standard C-f, &c. for other uses for
fear of being at a loss in situations where the arrow keys don't work.

> PS may i use your message in my testimonial page here?
> http://xahlee.org/emacs/ergonomic_emacs_keybinding_good.html

Sure - go ahead.

> Thanks a lot.

--
Will

Xah

unread,
Sep 7, 2008, 12:20:32 AM9/7/08
to
> The erognomic keybinding has a new version.
> http://xahlee.org/emacs/ergonomic_emacs_keybinding.html

Much improved new version 3.4.

Fixed compatility with cua mode, isearch, minibuffer, shell/comint
mode, info mode, and other modes: awk, rcirc, w3m, nxml. Compatible
with other major programing modes: c-mode, c++-mode, java, sh, js,
perl, php, python.

Also added just-one-space, delete-blank-lines. Added fill-paragraph,
unfill-paragraph. Added comment-dwim.

Xah
http://xahlee.org/


0 new messages