Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(all star converse sko tilbud vibram five fingers converse børn ptyg)
m (refresh doc, add melpa packages)
(229 intermediate revisions by 50 users not shown)
Line 1: Line 1:
"Si on court, on se dit qu'il faut commencer par s'entraîner au marathon.  ÿþ<> De plus en plus de clubs proposent des sorties le weekend, mais aussi en semaine, pour les femmes au foyer et les retraités qui consacrent leur dimanche à d'autres activités." Dans l'Orne, le club Randos et loisirs en pays mélois propose des balades le mardi, dont le retour est prévu pour l'heure de la sortie des classes. Et enclin cette saison à assouplir ses critères avec un richelieu en veau brossé blanc, un derby en box marron, des trainers beiges ou blancs ou encore un mocassin en nubuck écarlate.. 
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
  
Direction Estom, par un chemin longeant le Lutour calme, tortueux puis s'elevant au pic de ses cascades, sorties tout droit du lac. Un petit vin de sureau làdessus. ÿþ<> No pets and no service animals are allowed at this property. 
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
ÿþh
+
 
Vous l'avez compris c'est en Aspe de nouveau que le tour a lieu. Hélas !. et 37 au fond ! En remontant en Tshirt on croise ceux qui descendent en polaire. After a hurry calm, he starts all day in is not then too familiar Nanjing rushes about, in has paid several intermediary five fingers shoes expenses, after back and forth rushed about several times, he obtains an air conditioning promotion work finally! That evening, after receiving that company telephone, the wing also takes the bulletin to go one in the bar interview road, after tiffany jewelery obtaining the notice, the wing relaxed, is approaching Hunan road platform to get out. ÿþ<> Die rutschfeste Vibram Evo Gummisohle ist ideal für vielfltige OutdoorAktivitten geeignet. Il est ressorti du supermarché d'Irkoutsk avec six Caddie pleins à ras bord de pâtes.  
+
 
+
==Basic Use==
<>] Dans le cadre de la Journée mondiale de lutte contre le sida, la nouvelle version d' iCondom est gratuite. Students may be frustrated and complain, but fun, as I mentioned above, most children enjoyed the lesson again. ÿþ<> De quoi laisser des espoirs aux vautourettes 79  93!.  
+
 
ÿþh
+
; {{Keys|F3}}, or {{Keys|C-x (}}
Leur influence, chacun de nous, jud?ochr?tiens, peut la sentir. Gatwick canceled six flights so Cheap Ugg Boots far today and was expecting freezing fog to midmorning with snow flurries in the afternoon, spokesman Sean McKay said by phone today. I was ready to hike as soon as they were laced upÿþ<> The unique biomechanical illnesses this can be found inside these kind of predicaments nike free run 2 herre position the barefoot athlete at risk of additionally traumas. De plus en plus nombreux, les amateurs d'itinérances se tournent vers des destinations lointaines, inaccessibles autrefois: "Nos clients veulent découvrir un pays au rythme de leurs pas. Truffés de technologies empruntées à l'automobile, à l'aéronautique, à l'industrie des logiciels ou aux entreprises de matériaux, les bateaux innovent par petites touches, grâce à leurs champions.
+
: Start defining a macro.
 +
; {{Keys|F4}}, or {{Keys|C-x )}}
 +
: Stop defining a macro.
 +
; {{Keys|F4}}, or {{Keys|C-x e}}
 +
: Execute a macro
 +
; {{Keys|C-u 37 C-x e}} or {{Keys|C-u 37 F4}}
 +
: Execute a macro multiple times, using [[prefix argument]]
 +
; {{Keys|C-u 0 C-x e}}
 +
: Execute a macro until the end of the buffer
 +
 
 +
==Example usage==
 +
 
 +
Consider the standard <code>*scratch*</code> buffer:
 +
 
 +
<pre>
 +
;; This buffer is for notes you don't want to save, and for Lisp evaluation.
 +
;; If you want to create a file, visit that file with C-x C-f,
 +
;; then enter the text in that file's own buffer.
 +
</pre>
 +
 
 +
Suppose you want to remove the first occurrence of the letter "a" on every row in that piece of text. You could write a [[regular expression]] to do the job, but let's assume you want to use a keyboard macro this time.
 +
 
 +
# Make sure [[point]] is at the start of the buffer.
 +
# Hit <code>C-x (</code> to start recording your macro. '''Note:''' If you hit <code>C-g</code> or if an error occurs, your keyboard macro recording will stop.
 +
# Hit <code>C-s</code> followed by <code>a</code> to find the first "a". Now, point is right after the first "a" in the text.
 +
# Hit backspace to delete that "a".
 +
 
 +
The first occurrence of "a" of the first line has been deleted. Let's move point to the beginning of the next line and then stop recording.
 +
 
 +
<ol start="5">
 +
<li>Hit <code>C-e C-f</code> to move point to the beginning of the next line.</li>
 +
<li>Hit <code>C-x )</code> to finish the recording of our macro.</li>
 +
</ol>
 +
 
 +
The macro you have just recorded performs the operation of removing the first occurrence of "a" it can find and then moving point to the next line.
 +
 
 +
<ol start="7">
 +
<li>Hit <code>C-x e</code> once to call that macro.</li>
 +
<li>Continue hitting <code>e</code> to call it several times. Hit any other key to get out of the macro repetition.</li>
 +
</ol>
 +
 
 +
== Naming and saving macros ==
 +
 
 +
You can:
 +
* give a name to the most recently defined macro (<code>C-x C-k n</code>)
 +
* bind it to a key sequence (<code>C-x C-k b</code>)
 +
* insert it in the current buffer as lisp code (<code>M-x insert-kbd-macro</code>).
 +
 
 +
{{Manual|emacs|Save-Keyboard-Macro|Save Keyboard Macro}}
 +
 
 +
 
 +
To bind a keyboard macro to a key use <code>C-x C-k b</code>To avoid problems caused by overriding existing bindings, the key sequences <code>C-x C-k 0</code> through <code>C-x C-k 9</code> and <code>C-x C-k A</code> through <code>C-x C-k Z</code> are reserved for your own keyboard macro bindings.  You can, however, bind a keyboard macro to whatever you like.
 +
 
 +
==Variables==
 +
 
 +
Variables can be stored in lisp or in [[registers]].  Here's an example using lisp:
 +
 
 +
<pre>
 +
[M-: (setq x 1)]
 +
<F3>
 +
Line number [C-u M-: x]
 +
[M-: (setq x (+ x 1))]
 +
<F4>
 +
</pre>
 +
 
 +
Now execute the macro four times with the command <code>C-x e e e e</code> and you get:
 +
 
 +
line number 1<br />
 +
line number 2<br />
 +
line number 3<br />
 +
line number 4
 +
 
 +
 
 +
= See also =
 +
 
 +
* [https://github.com/Silex/elmacro elmacro], to show keyboard macros as emacs-lisp
 +
* [https://github.com/abo-abo/centimacro centimacro] to (temporarily) bind any number of macros to any global shortcuts.
 +
* You can use keyboard macros à la vim in [[evil]].
 +
 
 +
 
 +
[[Category:Intermediate]]
 +
[[Category:Editing]]

Revision as of 15:34, 28 August 2014

Basic Keyboard Macro (`(info "(emacs) Basic Keyboard Macro")')

Keyboard macros can be used to automate or repeat tedious editing tasks in Emacs.


Basic Use

[F3], or [C-x (]
Start defining a macro.
[F4], or [C-x )]
Stop defining a macro.
[F4], or [C-x e]
Execute a macro
[C-u 37 C-x e] or [C-u 37 F4]
Execute a macro multiple times, using prefix argument
[C-u 0 C-x e]
Execute a macro until the end of the buffer

Example usage

Consider the standard *scratch* buffer:

;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffer.

Suppose you want to remove the first occurrence of the letter "a" on every row in that piece of text. You could write a regular expression to do the job, but let's assume you want to use a keyboard macro this time.

  1. Make sure point is at the start of the buffer.
  2. Hit C-x ( to start recording your macro. Note: If you hit C-g or if an error occurs, your keyboard macro recording will stop.
  3. Hit C-s followed by a to find the first "a". Now, point is right after the first "a" in the text.
  4. Hit backspace to delete that "a".

The first occurrence of "a" of the first line has been deleted. Let's move point to the beginning of the next line and then stop recording.

  1. Hit C-e C-f to move point to the beginning of the next line.
  2. Hit C-x ) to finish the recording of our macro.

The macro you have just recorded performs the operation of removing the first occurrence of "a" it can find and then moving point to the next line.

  1. Hit C-x e once to call that macro.
  2. Continue hitting e to call it several times. Hit any other key to get out of the macro repetition.

Naming and saving macros

You can:

  • give a name to the most recently defined macro (C-x C-k n)
  • bind it to a key sequence (C-x C-k b)
  • insert it in the current buffer as lisp code (M-x insert-kbd-macro).

Save Keyboard Macro (`(info "(emacs) Save Keyboard Macro")')


To bind a keyboard macro to a key use C-x C-k b. To avoid problems caused by overriding existing bindings, the key sequences C-x C-k 0 through C-x C-k 9 and C-x C-k A through C-x C-k Z are reserved for your own keyboard macro bindings. You can, however, bind a keyboard macro to whatever you like.

Variables

Variables can be stored in lisp or in registers. Here's an example using lisp:

[M-: (setq x 1)]
<F3>
Line number [C-u M-: x]
[M-: (setq x (+ x 1))]
<F4>

Now execute the macro four times with the command C-x e e e e and you get:

line number 1
line number 2
line number 3
line number 4


See also

  • elmacro, to show keyboard macros as emacs-lisp
  • centimacro to (temporarily) bind any number of macros to any global shortcuts.
  • You can use keyboard macros à la vim in evil.