From: Alan Mackenzie <acm@muc.de>
To: Xah <xahlee@gmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Emacs command frequencies: [was: emacs-w3m question]
Date: Tue, 11 Nov 2008 21:46:21 +0000 [thread overview]
Message-ID: <20081111214621.GB1459@muc.de> (raw)
In-Reply-To: <7a377b0d-9a02-4cd9-947a-8f04676fad8c@z28g2000prd.googlegroups.com>
[-- Attachment #1: Type: text/plain, Size: 2133 bytes --]
Hi, Xah!
On Mon, Nov 10, 2008 at 02:38:24PM -0800, Xah wrote:
> also note, when i did research on emacs command frequency, one
> surprising result is that a programer types shortcuts more than he
> actually type letters.
Not _quite_ true from my afternoon session! See below, or the attached
file. I was into a heavy edebugging session (the utility recorded hardly
any of these commands; presumably, edebug nullified the hook, somehow),
and writing a log of this activity at the same time.
However, I used frame switching commands 114 times, putting them into
fifth place. This quite surprised me.
> Of my Emacs Commands Frequency study, 37% of key strokes involves data
> entry (that is, calling the commands ???self-insert-command??? and
> ???newline??? (pressing return), while the rest 63% are calling all other
> commands. This seems counter-intuitive, because one might think typing
> should probably be the bulk of activity and moving cursor and deleting
> text or other commands are only done few times per minute.
You should perhaps include `newline-and-indent' (C-j) in this category
too.
> If we consider commands invoked by the Backspace key as data entry
> too, then 40% are data entry, while 60% are editing commands. Still
> surprising. Going one step further, if we consider the next group of
> most used commands of moving the cursor by the smallest unit (i.e.
> previous-line (C-p), next-line (C-n), backward-char (C-b), forward-
> char (C-f) (also invoked by the arrow keys)) as part of data entry,
> then, 64% are ???data entry??? and 36% are other command calls.
> This data suggests that better shortcut placement is more important
> than better placement of letter keys for programing.
> »
> --------------------
> if you are interested to find out your own pattern of emacs command
> use, you can try the lisp file at the bottom of this page:
> http://xahlee.org/emacs/command-frequency.html
> If you can send me your result, that'll be great.
> Alan, you are very welcome to send me your result too.
Thanks! Please see the attached file.
> Xah
--
Alan Mackenzie (Nuremberg, Germany).
[-- Attachment #2: Alan_Mackenzie_command-frequencies.txt --]
[-- Type: text/plain, Size: 4206 bytes --]
1680 53.00% self-insert-command
256 8.08% forward-char
182 5.74% next-line
140 4.42% previous-line
89 2.81% backward-char
43 1.36% scrolldown-6n
42 1.32% delete-backward-char
38 1.20% backward-kill-word
38 1.20% (lambda nil Switch to frame F2 (interactive) (select-frame-acm-no 1))
37 1.17% previous-history-element
36 1.14% c-show-syntactic-information
32 1.01% (lambda nil Switch to frame F3 (interactive) (select-frame-acm-no 2))
31 0.98% minibuffer-complete
29 0.91% (lambda nil Switch to frame F1 (interactive) (select-frame-acm-no 0))
25 0.79% isearch-printing-char
23 0.73% scrollup-6n
21 0.66% execute-extended-command
18 0.57% previous-line-6n
18 0.57% newline
17 0.54% delete-char
16 0.50% forward-word
16 0.50% new-para-paren-list-o
15 0.47% set-mark-command
15 0.47% end-of-line
13 0.41% acm-text-mode-fixme
12 0.38% other-window
12 0.38% switch-to-buffer
11 0.35% scroll-down
11 0.35% save-buffer
11 0.35% next-line-6n
10 0.32% top-level
10 0.32% imenu
10 0.32% eval-expression
10 0.32% kill-buffer
8 0.25% find-alternate-file
8 0.25% kill-line
8 0.25% fill-paragraph
8 0.25% isearch-repeat-forward
7 0.22% isearch-repeat-backward
7 0.22% undo
6 0.19% do-one-test
6 0.19% occur
6 0.19% load-cc-version
5 0.16% back-to-indentation
4 0.13% goto-line
4 0.13% find-file-other-window
4 0.13% (lambda nil Switch to frame F5 (interactive) (select-frame-acm-no 4))
4 0.13% scrollup-n
4 0.13% compile-defun
4 0.13% (lambda nil Switch to frame F4 (interactive) (select-frame-acm-no 3))
4 0.13% eval-defun
4 0.13% edebug-continue-mode
4 0.13% emphasise-line
4 0.13% switch-to-buffer-other-window
4 0.13% yank
4 0.13% end-of-buffer
3 0.09% widen
3 0.09% narrow-to-defun
3 0.09% lisp-complete-symbol
3 0.09% c++-mode
3 0.09% delete-other-windows
3 0.09% isearch-delete-char
3 0.09% kill-ring-save
2 0.06% ediff-buffers
2 0.06% next-history-element
2 0.06% defun-name
2 0.06% (lambda nil Switch to frame F8 (interactive) (select-frame-acm-no 7))
2 0.06% (lambda nil Switch to frame F7 (interactive) (select-frame-acm-no 6))
2 0.06% (lambda nil Switch to frame F6 (interactive) (select-frame-acm-no 5))
2 0.06% kill-sentence
2 0.06% load-file
2 0.06% byte-compile-file
2 0.06% lisp-indent-line
2 0.06% backward-word
2 0.06% kill-word
2 0.06% next-error
2 0.06% isearch-other-meta-char
2 0.06% isearch-forward
2 0.06% edebug-goto-here
2 0.06% move-beginning-of-line
2 0.06% mark-sexp
2 0.06% acm-text-mode-back-to-bug-label
1 0.03% (lambda nil Switch to frame F9 (interactive) (select-frame-acm-no 8))
1 0.03% ediff-quit
1 0.03% minibuffer-complete-and-exit
1 0.03% beginning-of-defun
1 0.03% scroll-up
1 0.03% narrow-to-region
1 0.03% move-end-of-line
1 0.03% exchange-point-and-mark
1 0.03% delete-blank-lines
1 0.03% kill-paragraph
1 0.03% c-version
1 0.03% isearch-yank-word-or-char
1 0.03% isearch-backward
1 0.03% ignore
1 0.03% delete-horizontal-space
1 0.03% backward-kill-sexp
1 0.03% toggle-read-only
1 0.03% kill-sexp
1 0.03% eval-buffer
1 0.03% Info-nth-menu-item
1 0.03% Info-follow-nearest-node
1 0.03% isearch-exit
1 0.03% beginning-of-buffer
1 0.03% just-one-space
1 0.03% list-buffers
1 0.03% beginning-of-line
1 0.03% command-frequency-mode
next prev parent reply other threads:[~2008-11-11 21:46 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-27 20:45 emacs-w3m question Francis Moreau
2008-10-27 21:09 ` henry atting
2008-10-27 21:36 ` Richard Riley
2008-10-28 18:40 ` Xah
2008-10-30 21:25 ` Xavier Maillard
2008-10-30 22:16 ` Paul R
2008-11-01 7:25 ` Xavier Maillard
2008-11-01 12:59 ` Paul R
[not found] ` <mailman.2625.1225539334.25473.help-gnu-emacs@gnu.org>
2008-11-01 15:51 ` Richard Riley
2008-11-03 11:25 ` Xavier Maillard
2008-11-03 12:13 ` Richard Riley
2008-11-03 23:25 ` Xavier Maillard
[not found] ` <mailman.2907.1225862955.25473.help-gnu-emacs@gnu.org>
2008-11-05 13:23 ` Xah
[not found] ` <mailman.2522.1225402310.25473.help-gnu-emacs@gnu.org>
2008-10-30 22:38 ` Xah
2008-11-03 11:25 ` Xavier Maillard
2008-11-03 12:36 ` Paul R
2008-11-03 23:25 ` Xavier Maillard
[not found] ` <mailman.2772.1225715774.25473.help-gnu-emacs@gnu.org>
2008-11-03 13:27 ` Richard Riley
2008-11-04 13:19 ` Chris McMahan
2008-11-04 14:19 ` Richard Riley
2008-11-05 7:25 ` Xavier Maillard
[not found] ` <mailman.2764.1225711684.25473.help-gnu-emacs@gnu.org>
[not found] ` <4d476218-bd76-4d41-8a12-1428dfba9e9b@s9g2000prg.googlegroups.com>
2008-11-05 7:25 ` Xavier Maillard
[not found] ` <mailman.2966.1225952942.25473.help-gnu-emacs@gnu.org>
2008-11-06 14:31 ` Xah
2008-11-06 16:32 ` Alan Mackenzie
2008-11-06 18:12 ` Giorgos Keramidas
2008-11-07 1:22 ` Xah
2008-11-07 3:50 ` Giorgos Keramidas
2008-11-07 5:42 ` Xah
2008-11-07 7:48 ` Giorgos Keramidas
2008-11-07 8:07 ` Xah
[not found] ` <mailman.3000.1225988502.25473.help-gnu-emacs@gnu.org>
2008-11-07 1:01 ` Xah
2008-11-07 10:04 ` Alan Mackenzie
2008-11-07 10:29 ` Paul R
2008-11-07 23:51 ` Alan Mackenzie
2008-11-08 1:14 ` Lennart Borgman
2008-11-10 21:25 ` Xavier Maillard
2008-11-10 21:25 ` Xavier Maillard
[not found] ` <mailman.3052.1226051600.25473.help-gnu-emacs@gnu.org>
2008-11-07 17:43 ` Xah
2008-11-08 14:36 ` Is there anyway to save workspace so that we don't have reopen 10s of files again ? Maindoor
2008-11-08 14:56 ` Eli Zaretskii
2008-11-08 15:09 ` Maindoor
2008-11-08 16:11 ` Peter Dyballa
2008-11-08 18:24 ` Saving registers (was: Is there anyway to save workspace so that we don't have reopen 10s of files again ?) Reiner Steib
2008-11-08 22:25 ` Is there anyway to save workspace so that we don't have reopen 10s of files again ? Juanma Barranquero
2008-11-06 18:02 ` emacs-w3m question Alan Mackenzie
2008-11-07 6:24 ` Kevin Rodgers
[not found] ` <mailman.3010.1225993912.25473.help-gnu-emacs@gnu.org>
2008-11-06 20:02 ` Rupert Swarbrick
2008-11-07 2:02 ` Xah
2008-11-07 10:24 ` Eli Zaretskii
2008-11-07 10:54 ` Alan Mackenzie
[not found] ` <mailman.3055.1226054611.25473.help-gnu-emacs@gnu.org>
2008-11-07 20:10 ` Xah
2008-11-07 20:12 ` How to make friends. [was emacs-w3m question] Xah
2008-11-07 20:17 ` emacs is not Microsoft Word " Xah
2008-11-10 10:11 ` emacs is not Microsoft Word David Kastrup
2008-11-08 18:57 ` emacs-w3m question Rupert Swarbrick
2008-11-08 21:33 ` Xah
2008-11-09 6:26 ` Wei Weng
2008-11-09 8:55 ` Xah
2008-11-10 21:25 ` Xavier Maillard
[not found] ` <mailman.21.1226352538.26697.help-gnu-emacs@gnu.org>
2008-11-10 22:38 ` Xah
2008-11-11 21:46 ` Alan Mackenzie [this message]
2008-11-12 2:28 ` Sean Sieger
[not found] ` <mailman.106.1226439293.26697.help-gnu-emacs@gnu.org>
2008-11-12 4:19 ` Emacs command frequencies: [was: emacs-w3m question] Xah
2008-11-12 11:28 ` Emacs command frequencies: Nikolaj Schumacher
2008-11-12 11:45 ` Paul R
[not found] ` <mailman.129.1226489296.26697.help-gnu-emacs@gnu.org>
2008-11-12 12:52 ` Sébastien Vauban
2008-11-12 15:59 ` Ted Zlatanov
2008-11-13 14:33 ` Xah
2008-11-13 4:07 ` Xah
2008-11-12 16:50 ` Emacs command frequencies: [was: emacs-w3m question] rgb
2008-11-13 12:47 ` Xah
2008-11-14 14:28 ` rgb
2008-11-01 13:03 ` emacs-w3m question Andreas Politz
2008-11-03 11:25 ` Xavier Maillard
[not found] ` <mailman.2763.1225711681.25473.help-gnu-emacs@gnu.org>
2008-11-06 16:51 ` Andreas Politz
2008-10-27 21:48 ` Andreas Politz
2008-10-28 10:50 ` Francis Moreau
2008-10-28 14:51 ` OtherMichael
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081111214621.GB1459@muc.de \
--to=acm@muc.de \
--cc=help-gnu-emacs@gnu.org \
--cc=xahlee@gmail.com \
/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.
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).