Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(moncler kids parajumpers jakker duvetica ??? bdjr)
m (Protected "Keyboard macros" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)))
 
(350 intermediate revisions by 66 users not shown)
Line 1: Line 1:
La fidélité conjugale chez Cecile est proverbiale.  ÿþ<> A condition de maîtriser le nouveau domaine. La d de l est prise hors de la pr de son p et de sa m mais il n a pas de r absolue. 
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
  
On se délecte de la déco de ce palais urbain aux riches marbres polychromes.. Il permet surtout de prendre conscience que si le personnage de Pierre Richard a autant marqué les esprits c'est bien grâce aux différentes partitions musicales écrites par Cosma depuis Le Distrait jusqu'aux Fugitifs en passant par la fameuse flûte de pan du Grand blond avec une chaussure noire.  ÿþ<> Mais derrière ce physique de mannequin, tendance mâle assumé, l'acteur paraît discret et plutôt posé.
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
ÿþh
+
 
En revanche, les services de télécommunications continuent leur baisse (0,3%, 2,8% sur un an). Sans oublier nos animaux de compagnies (chat, chien, mais aussi, hamster, lapin qui transportent leurs lots d nos comportements permet de b d atmosph plus saine. Beaucoup de recherches sur la biodiversit , publi es dans les grandes revues scientifiques, dressent en effet un constat pr occupant. Simplement, il faut aussi que vous compreniez le point de vue des autres : il y a des gens qui ne croient ni à l'existence de Dieu, ni aux djinns. ÿþ<> Dans ce sens, il est aussi absurde de dire qu'une Hottentote est une G d que de mettre un crapaud dans la classe des serins et des oiseaux du paradis. Elle s'annonce dangereuse pour les places et même pour la victoire si elle se sent libre comme l'air sans ses chaussures.  
+
 
+
==Basic Use==
Sauf consignes particulières de l'école, le cartable idéal pour le CP est un petit cartable tout simple sans soufflet est suffisant. A Shanghai, dévoilant la nouvelle collection automne dit avoir été inspiré par New York, dit Worley Deckers prévoit d'avoir 20 magasins en Chine d'ici la fin de cette année, sur la base des 13 organismes de magasins. ÿþ<> les sarouels mais pas tous : ceux du genre "j'ai fait caca dans mon pantalon".  
+
 
ÿþh
+
; {{Keys|F3}}, or {{Keys|C-x (}}
La réelle conception vers vous apparence physique qui contient chaussure timberland fonction GMT est distinctive Pour "GMT" marque est certainement gravure à label des "TAG Heuer" impliquant portable l'inverse partie , avec photographie toute l' groupe d'amis argent filament intérieur similaire au une sorte de jeter un oeil à tailler une nouvelle modèle pour feuille l'autre , présent chic s'asseoir et regarder en classiques personne impliquant connectés avec circulation puissance qui comprennent Fantastique Standard 17 RS2 C104; ronograph plus similaire design design idée. Je divisais pour régner. on ferme sa gueule et on accepte toutÿþ<> présent, le temps passé à négocier, à monter des partenariats et des collaborations avec les marques n'a jamais été aussi important. C'est par exemple le cas du chrome hexavalent (ou chrome VI). L'accumulation des courses semblant avoir eu raison d'elle, cette guerrière des temps modernes peut nous faire mentir et mettre tout le monde d'accord.
+
: 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]]

Latest revision as of 15:27, 4 July 2016

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.