unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* man/kmacro.texi
@ 2004-08-21  3:54 Luc Teirlinck
  2004-08-21 21:46 ` man/kmacro.texi Richard Stallman
  0 siblings, 1 reply; 8+ messages in thread
From: Luc Teirlinck @ 2004-08-21  3:54 UTC (permalink / raw)


Apart from the issues I took care of with my patch, I have the
following remarks and questions about man/kmacro.texi:

>From `(emacs)Basic Keyboard Macro':

       Alternatively, you can use `C-x C-k C-s' to start a keyboard macro,
    and `C-x C-k C-k...' to end and execute it.

`end _and_ execute' makes it sound like the macro will be executed
twice, like with `C-x ( C-x e'.  This is apparently not the case.
No advantage to using this alternate method is given.  Is it even
worth mentioning?  (If yes, it should be reformulated.)

>From `(emacs)Basic Keyboard Macro':

       The command `C-x C-k r' (`apply-macro-to-region-lines') repeats the
    last defined keyboard macro on each complete line within the current
    region.  It does this line by line, by moving point to the beginning
    of the line and then executing the macro.

What is a complete line?  I would say, a line terminated by a newline
_or_ the end of the buffer.  For `apply-macro-to-region-lines' it
means "terminated by a newline" with no "or".  This is ambiguous and
should be mentioned _if_ this is intended.  But _is_ it intentional?
For instance, after marking the entire buffer with `C-x h',
`apply-macro-to-region-lines' will apply the last keyboard macro to
all lines in the buffer, except the last line, if the buffer does not
end in a newline.

The entire section `(emacs)Keyboard Macro Counter' is difficult to
read.  I am pretty sure that it must be very useful for _something_,
but it is not obvious what that is.  Note that this is part of the
_Emacs_ manual, which is supposed to be understandable by beginners.
Maybe the entire section could be moved to emacs-xtra or a similar
place.  Then it could actually be expanded and an example of use could
be given.  That node could be referenced from the Emacs manual with an
@inforef.

I would _guess_ that `kmacro-insert-counter' and `kmacro-add-counter'
only make sense during execution of a macro, but it would be better if
this were clarified.  If the material got moved to emacs-xtra or such,
one would also have enough room to mention `C-u C-x C-k C-a'.
Currently it seems like this would add 4, which is not the case.

       The command `C-x C-k C-f' (`kmacro-set-format') prompts for the
    format to use when inserting the macro counter.  The default format is
    `%d'.  If you set the counter format before you define a macro, that
    format is restored before each repetition of the macro.  Consequently,
    any changes you make to the macro counter format while defining a
    macro are only active for the rest of the macro.

This seems to assume that every reader of the Emacs manual is familiar
with `format' and knows the alternatives to "%d".  If this were
emacs-xtra or such, there would be place enough to mention the
alternatives that are potentially useful in this context, as well as
give references. 

It is not clear what happens if we do _not_ set the format _before_
defining the macro and set it while defining the macro.  Does the
default %d get restored before repetition or not?

As a last remark, this chapter seems to come rather early in the Emacs
manual.  Section `(emacs)Save Keyboard Macro' seems to assume a
non-trivial level of knowledge about key bindings, like the difference
between local and global bindings, whereas the reader may not have any
knowledge at all about binding keys at that stage.  The material in
`(emacs)Save Keyboard Macro', like the entire chapter, originally
occurred a lot later in the manual.

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 8+ messages in thread
* man/kmacro.texi
@ 2004-08-21  2:46 Luc Teirlinck
  2004-08-21 21:46 ` man/kmacro.texi Richard Stallman
  0 siblings, 1 reply; 8+ messages in thread
From: Luc Teirlinck @ 2004-08-21  2:46 UTC (permalink / raw)


I recommend the following changes to kmacro.texi:

===File ~/kmacro-diff=======================================
*** kmacro.texi	13 Aug 2004 16:24:17 -0500	1.4
--- kmacro.texi	16 Aug 2004 21:43:00 -0500	
***************
*** 1,5 ****
  @c This is part of the Emacs manual.
! @c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2002,2003
  @c  Free Software Foundation, Inc.
  @c See file emacs.texi for copying conditions.
  @node Keyboard Macros, Files, Fixit, Top
--- 1,5 ----
  @c This is part of the Emacs manual.
! @c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2002,2003,2004
  @c  Free Software Foundation, Inc.
  @c See file emacs.texi for copying conditions.
  @node Keyboard Macros, Files, Fixit, Top
***************
*** 220,225 ****
--- 220,229 ----
  desired macro is at the head of the ring.  To execute the new macro
  ring head immediately, just type @kbd{C-k}.
  
+   Note that Emacs treats the head of the macro ring as the ``last
+ defined keyboard macro''.  For instance, it is the keyboard macro that
+ @kbd{C-x e} will execute.
+ 
  @findex kmacro-view-macro-repeat
  @kindex C-x C-k C-v
  
***************
*** 264,271 ****
  macro counter is initialized to 0 when you start defining the macro,
  and incremented by 1 after each insertion of the counter value;
  that is, if you insert the macro counter twice while defining the
! macro, it will be incremented by 2 time for each repetition of the
! macro.
  
  @findex kmacro-insert-counter
  @kindex C-x C-k C-i
--- 268,274 ----
  macro counter is initialized to 0 when you start defining the macro,
  and incremented by 1 after each insertion of the counter value;
  that is, if you insert the macro counter twice while defining the
! macro, it will be incremented by 2 on each repetition of the macro.
  
  @findex kmacro-insert-counter
  @kindex C-x C-k C-i
***************
*** 362,378 ****
  @kindex C-x C-k n
    If you wish to save a keyboard macro for later use, you can give it
  a name using @kbd{C-x C-k n} (@code{name-last-kbd-macro}).
! This reads a name as an argument using the minibuffer and defines that name
! to execute the macro.  The macro name is a Lisp symbol, and defining it in
! this way makes it a valid command name for calling with @kbd{M-x} or for
! binding a key to with @code{global-set-key} (@pxref{Keymaps}).  If you
! specify a name that has a prior definition other than another keyboard
! macro, an error message is shown and nothing is changed.
  
  @cindex binding keyboard macros
  @findex kmacro-bind-to-key
  @kindex C-x C-k b
!   Rather than giving a keyboard macro a name, you can bind it to a
  key using @kbd{C-x C-k b} (@code{kmacro-bind-to-key}) followed by the
  key sequence you want the keyboard macro to be bound to.  You can
  bind to any key sequence in the global keymap, but since most key
--- 365,384 ----
  @kindex C-x C-k n
    If you wish to save a keyboard macro for later use, you can give it
  a name using @kbd{C-x C-k n} (@code{name-last-kbd-macro}).
! This reads a name as an argument using the minibuffer and defines that
! name to execute the last keyboard macro, in its current form.  (If you
! later add to the definition of the last keyboard macro, then this will
! not affect the macro stored in the name.)  The macro name is a Lisp
! symbol, and defining it in this way makes it a valid command name for
! calling with @kbd{M-x} or for binding a key to with
! @code{global-set-key} (@pxref{Keymaps}).  If you specify a name that
! has a prior definition other than another keyboard macro, an error
! message is shown and nothing is changed.
  
  @cindex binding keyboard macros
  @findex kmacro-bind-to-key
  @kindex C-x C-k b
!   Rather than giving the last keyboard macro a name, you can bind it to a
  key using @kbd{C-x C-k b} (@code{kmacro-bind-to-key}) followed by the
  key sequence you want the keyboard macro to be bound to.  You can
  bind to any key sequence in the global keymap, but since most key
***************
*** 414,425 ****
  macro will be defined each time you run Emacs.
  
    If you give @code{insert-kbd-macro} a numeric argument, it makes
! additional Lisp code to record the keys (if any) that you have bound to the
! keyboard macro, so that the macro will be reassigned the same keys when you
! load the file.
  
  @node Edit Keyboard Macro
! @section Interactively executing and editing a keyboard macro
  
  @findex kmacro-edit-macro
  @kindex C-x C-k C-e
--- 420,431 ----
  macro will be defined each time you run Emacs.
  
    If you give @code{insert-kbd-macro} a numeric argument, it makes
! additional Lisp code to record the keys (if any) that you have bound
! to @var{macroname}, so that the macro will be reassigned the same keys
! when you load the file.
  
  @node Edit Keyboard Macro
! @section Editing a keyboard macro
  
  @findex kmacro-edit-macro
  @kindex C-x C-k C-e
============================================================

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-08-26  0:48 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-21  3:54 man/kmacro.texi Luc Teirlinck
2004-08-21 21:46 ` man/kmacro.texi Richard Stallman
2004-08-22  0:37   ` man/kmacro.texi Luc Teirlinck
2004-08-22 23:39     ` man/kmacro.texi Richard Stallman
2004-08-26  0:48       ` man/kmacro.texi Luc Teirlinck
  -- strict thread matches above, loose matches on Subject: below --
2004-08-21  2:46 man/kmacro.texi Luc Teirlinck
2004-08-21 21:46 ` man/kmacro.texi Richard Stallman
2004-08-22  4:37   ` man/kmacro.texi Luc Teirlinck

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).