Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(vibram five fingers vibram five fingers converse børn nypf)
m (Protected "Keyboard macros" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)))
 
(225 intermediate revisions by 61 users not shown)
Line 1: Line 1:
Not only do these old shoes is out of date or damaged, but many people are excited about fashion, it seems to abandon the old to new.  ÿþ<> Si Picasso avait trouvé la peinture si facile, il aurait fait autre chose. a sunlight genial dusk, in the Thames river valley university vineyard, the Ahl card left knee is wellgrounded, with that scarlet artificial limb, gently did not only kneel under Jennie flesh color cotton vibram jewelery fabric skirt, did not Vibram Fivefingers Sprint Shoes need any language, the Ahl card has obtained beloved girl looking upon with favor. 
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
  
nous partons du 5 au 28 août avec nos 3 filles ado (13 à 18 ans), nous avons pris un "package" voiture + auberges de jeunesse pour faire le tour du pays (sans la partie extême ouest) que nous découvrirons une autre fois peutêtre. Aegis est un traitement antimicrobien destiné à bloquer les odeurs.  ÿþ<> Y pas beaucoup de neige, puis d coup, au panneau Laffrey, c une autre histoire.
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
ÿþh
+
 
A NEW looser tiny rocks floor will certainly nike free 3.0 v3 Mnd manage danger of a far more main concern on your own feet. The place is defenetely very romantic and it is the perfect gateway for a few days or as a pleasant stop while touring Umbria. Le réchauffer chaude design de délicate , clair Environnement : vin rouge , grave gris  éco. Entre Merrell et nous, il y a eu une mise en commun vraiment très poussée des savoirfaire pour parvenir à un parfait morphing, l'intégration des semelles et des tiges , précise Jérôme Bernard.. ÿþ<> Ce cirque me décoit par son manque d'originalité. Avec aucune difficulté à février 1955, lutte contre le retour COCO CHANEL rapporté de n'importe quelle variété ambiguïté en utilisant un rectangle en acier inoxydable.  
+
 
+
==Basic Use==
Si Phoebe Philo consacre énormément d'attention aux détails (voir ses cols roulés intégrant des colliers), elle témoigne également d'un formidable talent pour composer des total looks. Contrairement aux graines de Chia (un autre must), le saucisson sec n'apporterait aucun oméga3, par exemple. ÿþ<> N'empêche, il faut avoir envie de garder la forme pour se retrouver à 8 h 20, ce dimanche de mars glauque, au bout d'un quai de la gare d'Austerlitz.  
+
 
ÿþh
+
; {{Keys|F3}}, or {{Keys|C-x (}}
l'humidité qui, souvent, va provoquer une odeur de la cheville et des allergies. One day the master takes it tries, this Cheap Vibram Fivefingers Sprint Shoes master has not taken down it, but wears it to attend a meeting. Il repart par la route, il l frigorifier notre Ari ! JMG veut arr mais les little mentale commencent fuser, donc par fiert il reprend, malgr ses jambes qui subirent la Saint lyon deux semaines auparavantÿþ<> in the celebration you are going to spend every wow gold solitary 30 days to hold out world of Warcraft,, and why they are so popular. Six jours plus tard, un vieux camion russe le laisse, lui et son chargement, devant une petite cabane au bord du lac Baïkal. Au point qu'on se demande comment il s'accommode de sa rue parisienne parfumée aux pots d'échappement.
+
: 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.