Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(duvetica outlet parajumpers homme parajumpers online pwxf)
(Undo revision 46814 by 62.210.38.184 (talk))
(303 intermediate revisions by 55 users not shown)
Line 1: Line 1:
Les chevaux qui devront progresser en dehors ne seront également pas à la fête, car à Cabourg, le wagon de la corde est pratiquement toujours le bon.  ÿþ<> Elle clarifie cet Vous me demandez si je suis un homme de paix : alors je dis franchement oui. Le premier album de Sparklehorse s Vivadixiesubmarinetransmissionplot, en un mot. 
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
  
De quelle couleur est ta chambre ?Jaune84. Copiezcollez vos choix dans un document Word et l'utiliser pour se référer quand la recherche de modèles. ÿþ<> Parallèlement elle avait des chaussons en cuir souples avec lesquels elle marchait beaucoup moins sur la pointe des pieds ! Forte de ce constat, je suis allée lui acheter des chaussures dites de sport basses (puma pour les citer).
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
ÿþh
+
 
Les étoiles et le drapeau des EtatsUnis demeurent incontournables. En Chine, le vol d'enfant est passible de la peine de mort. Les touristes m'ont imité,et ils ont aussi déchaussures pour marcher à pied nu comme moi. 10h 30.  ÿþ<> 10 000 collaborateurs. En attendant à la porte, je les occuper avec des jouets et de la marche.  
+
 
+
==Basic Use==
Le joaillier américain a ainsi dégagé un bénéfice net de 83,6 millions de dollars (65 cents par action) au premier trimestre 2013, contre 81,5 millions de dollars (64 cents) lors du premier trimestre 2012. Outre Hugo Boss Black, la ligne classique (avec ses costumes partir de 700 euros), qui r alise 67% des ventes, le groupe compte la ligne de luxe Boss Selection (2 000 euros le costume), les collections plus d contract es Boss Orange (14% des ventes) et Boss Green (plus haut de gamme), ainsi que la ligne jeune et trendy Hugo (9% des ventes).  ÿþ<> Tu dis que tu n'as personne pour t'héberger si tu dois partir, mais le fait que tu sois obligée de claquer des sommes insencées tout le temps te maintiends dans la pauvreté et la dépendance visàvis de lui.  
+
 
ÿþh
+
; {{Keys|F3}}, or {{Keys|C-x (}}
Une rumeur prétend même que, sur sa paire, Carine Roitfeld, rédactrice en chef de Vogue, a changé en catastrophe les boutons dorés pour des boutons noirs.. Et pourtant, ça ne m'empêche pas de faire des cadeaux, de penser aux autres et de partager. Rossini  La Pie voleuseÿþ<> l (c l de ses leitmotiv, déjà évoqué ici, et nous y reviendrons). Après quelque temps de jeu, pas mal d'expérience accumulée, un peu de persévérance, une bonne dose de tactique, et surtout un match contre un adversaire de notre niveau, nous gagnons enfin notre premier duel en ligne. En plus, si je dois serrer la main à une personne, je peux rapidement me les essuyer dans le TShirt en coton..
+
: 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 09:23, 2 October 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.