Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(converse sko læder brun vibram five fingers fivefingers vibram inqe)
m (Protected "Keyboard macros" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)))
 
(274 intermediate revisions by 64 users not shown)
Line 1: Line 1:
L'avenir de Ginny est libre, sans embûche, alors que le sien le sien, c'est Voldemort.  ÿþ<> La neige tombe drue. Ainsi le Chinois Li Xaofeung crée des robes faites de morceaux de porcelaine. 
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
  
Déclinées dans toutes les couleurs, les doudounes Moncler font partie des marques cultes de la jeunesse branchée milanaise des années 1980. Le catalogue les pr dans leurs jus d photographi dans la cuisine de la curatrice, au milieu des cendriers et des piles de papiers, au fond de tiroirs, devenus objets du quotidien : ils se confondent avec des serrelivres, balais (oui, mais par Danh Vo), voire d (fleurs en tissu au mur de Jim Hodges).  ÿþ<> En 1989, aux dernières municipales, pour redonner un peu d'éclat à Limoges, les étatsmajors parisiens n'avaientils pas envisagé d'opposer le scintillant Jack Lang à Jean Gandois, ancien président de Pechiney, un enfant du pays? Las! cela n'avait pas marché.
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
ÿþh
+
 
Natty la regarde. Bon ben quoi? Tout naturellement PierreYves après avoir englouti quelques mars se dirige vers le pied de la paroi, il ne me reste qu'à suivre. Malheureusement vous n'osez plus mettre les pieds Blancherive depuis une certaine soir un peu trop arros vous avez peur de vous faire poignarder dans les rues de Markarth et vous avez constamment le vertige Solitude. Il ne faut donc pas non plus négliger l'équipement : armes, chaussures et accessoires, mais aussi Chaos, qui confèrent des pouvoirs plus ou moins efficaces suivant leur rareté. ÿþ<> Une nouvelle fois, pour notre deuxième article quotidien, difficile de trouver une course intéressante et qui réunit toutes les conditions que nous demandons. Quand elle apprend que son directeur de th Daniel M.  
+
 
+
==Basic Use==
<>]. les jeans de Citizen of Humanity. ÿþ<> Nous devrions donc assister à une folle course poursuite entre les deux échelons.  
+
 
ÿþh
+
; {{Keys|F3}}, or {{Keys|C-x (}}
Avec LVMH, nous pouvons acc l rer le d veloppement d'Edun, nous permettant ainsi d'assurer une plus grande stabilit nos fournisseurs et aux communaut s locales qu'ils font vivre. Un peu comme le prince de Cendrillon, Berquet lui fait essayer la robe qu'aucune femme ne peut enfiler. Du différé, nous n'en voulons plus car ne pas pouvoir assister en direct à une course sur laquelle nous avons engagé des paris nous déchire le curÿþ<> Connaissant tous les malheurs du monde, Insert avait tout de même réussi à se dégager et venait terminer en trombe tout en dehors de la piste le long du rail. Déferré à l'arrière pour cet engagement en or à la limite de la qualification, s'il se fait ramener sur un plateau, il peut être dangereux !. En rentrant chez moi après une journée de 9 heures, l'endroit où l'inflammation se trouve était beaucoup plus enflé et je boitais plus que d'habitude.
+
: 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.