From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: Proposal for a insert-kbd-macro that inserts "real" elisp Date: Fri, 04 Jan 2008 00:42:16 +0200 Organization: JURTA Message-ID: <87abnm3513.fsf@jurta.org> References: <86k5mrf2h4.fsf@cpan.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1199400315 1363 80.91.229.12 (3 Jan 2008 22:45:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 3 Jan 2008 22:45:15 +0000 (UTC) Cc: yezonghui@gmail.com, emacs-devel@gnu.org To: avar@cpan.org (=?iso-8859-1?Q?=C6var_Arnfj=F6r=F0?= Bjarmason) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jan 03 23:45:34 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JAYoc-0005Qe-QU for ged-emacs-devel@m.gmane.org; Thu, 03 Jan 2008 23:45:31 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JAYoG-0001pb-J0 for ged-emacs-devel@m.gmane.org; Thu, 03 Jan 2008 17:45:08 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JAYoB-0001ow-WC for emacs-devel@gnu.org; Thu, 03 Jan 2008 17:45:04 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JAYoA-0001oh-W7 for emacs-devel@gnu.org; Thu, 03 Jan 2008 17:45:03 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JAYoA-0001oc-QB for emacs-devel@gnu.org; Thu, 03 Jan 2008 17:45:02 -0500 Original-Received: from relay03.kiev.sovam.com ([62.64.120.201]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JAYoA-0004MA-83 for emacs-devel@gnu.org; Thu, 03 Jan 2008 17:45:02 -0500 Original-Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay03.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1JAYo0-0001Bt-CW; Fri, 04 Jan 2008 00:45:00 +0200 In-Reply-To: <86k5mrf2h4.fsf@cpan.org> (=?iso-8859-1?Q?=22=C6var_Arnfj=F6r?= =?iso-8859-1?Q?=F0?= Bjarmason"'s message of "Thu, 03 Jan 2008 13:44:23 +0000") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (gnu/linux) X-Scanner-Signature: b3971b7ac160fe45482707327a257f38 X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Not Detected X-SpamTest-Info: Profiles 1976 [Dec 29 2007] X-SpamTest-Info: helo_type=3 X-SpamTest-Info: {TO: local part of email appears in body} X-SpamTest-Method: none X-SpamTest-Rate: 9 X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release X-detected-kernel: by monty-python.gnu.org: FreeBSD 4.7-5.2 (or MacOS X 10.2-10.4) (2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:86021 Archived-At: > The following came up on > http://www.emacswiki.org/cgi-bin/wiki/KeyboardMacrosTricks and I thought > I'd post it here: Are you aware of the recent efforts to implement this in Emacs? http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg00038.html >>> ChristopherSmith wrote: >>> Is there a way to convert an existing keyboard macro to elisp code? >>> >>> The use-case for such a facility would be to explore the way emacs >>> works internally. In cough MS Office cough applications, you can >>> discover much about the object model from recording macros (though >>> the comparison may be unfair). – >> avar wrote: >> >> You can do this with M-x insert-kbd-macro but the result is probably >> not to your liking. If I do: >> >> C-x ( >> C-n >> foo >> C-x ) >> M-x name-last-kbd-macro RET newline-and-foo >> M-x insert-kbd-macro RET newline-and-foo RET >> >> emacs will insert the following into the buffer: >> >> (fset 'newline-and-foo >> "\C-nfoo") >> >> I would very much like to be able to insert something like this: >> >> (defun newline-and-foo () >> (interactive) >> (next-line) >> (insert "foo")) >> >> But it appears emacs does not have this feature. A casual glance at >> the source for insert-kbd-macro in macros.el would suggest that the >> best way to go about this would be to write a function that called >> (key-binding) on each key it was about to insert and inserted the >> corresponding function name instead. -- Juri Linkov http://www.jurta.org/emacs/