Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(fivefingers vibram vibram five fingers converse sko lжder brun fkpm)
m (Protected "Keyboard macros" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)))
 
(151 intermediate revisions by 54 users not shown)
Line 1: Line 1:
Si le couturier s'inqui de l'influence grandissante du dans le monde de la mode, o les v des d ne se retrouvent souvent pas en boutique mais servent seulement d'image pour vendre plus de sacs, de chaussures, de parfums ou de maquillage", il se r des possibilit pour la jeune g "La mode aujourd'hui n'est plus seulement sexy, conceptuelle, color chic sport: aucun mod ne s'impose.  яю<> Ceux qui la posent possГЁdent dГ©jГ  la rГ©ponse qui se dГ©ploie en fait sur un triple niveau : reprГ©senter, c donner Г  voir, et l ne doit pas offrir au plaisir des yeux une entreprise d et de dГ©shumanisation, sauf Г  s rendre complice ; reprГ©senter, c construire une histoire, et l ne doit pas donner la rationalitГ© d histoire construite Г  l sauf Г  la rendre acceptable. AprГЁs la fouille des mechtas, les types revenaient aux camions avec des valises pleines de tissus, de couvertures, d'habits, etc. 
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
  
DГ©ferrГ©e des quatre pieds, Riviera de CossГ© (6) peut renouer avec la victoire ce jour car ses moyens sont certains. CarreauduTemple, Paris IIIe arrondissement, il fait encore nuit.  яю<> Pour ces regards, sa fille se r au ciel. 
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
яюh
+
 
Toi, tu rentrais d'un match de basket, aurГ©olГ©e de victoire, souriante, Г©panouie et depuis cet instant, je ne t'ai plus quittГ©e des yeux. Ses vГЄtements aussi Г©taient pour la ville : une veste marine sur un chemisier clair, une courte jupe bleue, des chaussures Г  talons. TrГЁs bien aussi, la musique de Daniel BГ©langer. "Je n'Г©tais pas convaincu par la pГ©dagogie. яю<> Leur Г©tat de santГ© est une grande prГ©occupation pour notre communautГ©.. Si chacun songe parfois Г  Baudelaire ou Г  Benjamin lorsque, piГ©ton dans la capitale, il en traverse les quartiers, gageons qu'aprГЁs avoir lu cet ouvrage fascinant il aura d'autres repГЁres complГ©mentaires: aucun de nous ne pourra plus dГ©ambuler dans Paris sans songer Г  la conquГЄte de l'espace urbain que reprГ©sente ce rituel social, cette pratique individuelle, ce temps de mГ©ditation ou de rГЄverie..  
+
 
+
==Basic Use==
Et il fallait remonter le niveau, ce que vous avez su parfaitement faire. Vous pourrez combattre 2 Polypons tout en bas et prendre des gants gourmets Г  gauche au mГЄme niveau. яю<> Avezvous regardГ© hier soir l'Г©mission "Secrets d'actualitГ©"? ou avez vous entendu parler de l'affaire Dany Leprince ? Il a Г©tГ© accusГ© d'avoir tuГ© son frГЁre, sa belle soeur et ses trois niГЁces.  
+
 
яюh
+
; {{Keys|F3}}, or {{Keys|C-x (}}
Une nouvelle fois, ce samedi 30 juillet 2011, alors que le premier mois de l'Г©tГ© aura sans aucun conteste Г©tГ© le pire que nous ayons vГ©cu depuis trГЁs longtemps, le sublimissime hippodrome d'Enghien devrait nous faire vibrer. Mais ce qu'elle recherche avant tout est la sГ©curitГ©, tant sur le plan matГ©riel que sur le plan affectif. Rigueur parfaite est un concept trop vague pour un scientifiqueяю<> Depuis la fin de l' t , ils subissent le contrecoup de la crise de la dette. Il ne dit plus  je suis guide , mais  je suis un aventurier . il y a des bons passages, on reconnaГ®t bien la filiation avec le groupe (notamment les ruptures niveau tempo et puis certains comments disent du bien des lyrics ), n'empГЄche je trouve qu'il manque quelque chose ..
+
: 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.