Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(parajumpers denali parajumpers homme parajumpers online kxuk)
m (Protected "Keyboard macros" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)))
 
(311 intermediate revisions by 66 users not shown)
Line 1: Line 1:
N'essayez pas avec les gros: on dirait du pneu.".  ÿþ<> Quinze millions de Japonais pratiquent régulièrement cette activité, contre 7,2 millions en 1988. In the fall of 2010, "the rag and bone, designed by Timberland Boot Company collection of footwear for men, three New timberland boots Company silhouettes Tackhead series, with two color variations for each  are a total of six farms given: Tackhead 8?." Zip Chelsea Boot Tackhead 7th "Boating Lace Up Chukka boot and Tackhead. 
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
  
North Sails, Ecco, Timberland ou encore l'américain Merrell ont compris le message. Direction les pentes déneigées Ossaloises.  ÿþ<> De l' photographie, nous pouvons voir le parfaite avenue de la mode mode et l'extérieur , comme , chandails tricotés, chemises et chaussures simple marchandises .
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
ÿþh
+
 
The identical Discount Five Fingers Shoes as gloves, VIBRAM FIVE FINGERS intriguing VIBRAM FIVE FINGERS shoes Could possibly at very first, tucked for the toe so strange shoes or some strange, nonetheless, you utilizing ten times after that,Vibram Five Fingers you are going to come across that, in truth, and this also is mittens, just wear parts in a glove just, help our light toes from harm. Les modèles jouent la provocation avec, par exemple, l'emploi d'une structure en gomme grillagée qui sert de support à un tissu ultraléger caressant le pied. Le fashion sera Vibram ou ne sera pas , ose Adriano Zuccala dans un clin d'oeil provocateur.. Sentiment d'être invité au banquet des Splendides.. ÿþ<> Le mode du jour sera pépouse avec la salade de riz maison de la tête au pieds. The style est certainement enfin la catégorie influence le mouvement.  
+
 
+
==Basic Use==
<>]. Earlier today, Heathrow said delays are expected for the next several days. ÿþ<> We became scientists and tested concoctions of milk, orange juice, and mouthwash.  
+
 
ÿþh
+
; {{Keys|F3}}, or {{Keys|C-x (}}
Si on y tient vraiment, on se procure les fameux chaussons anatomiques Vibram Five Fingers, qui permettent de garder la sensation tout en évitant les crottes de chien. to coach barefoot. Le berger semble fatigué, va falloir se requinquer, tout juste passé le mois de Mai..  ÿþ<> J'lui dis qu'j'arrive et qu'on va vivre plein de choses tous les deux. C bon ca, je surkiffe ces conditions, je suis en mode aventurier dans ma tete, et cette fin de cr sauvage attention au troupeau est splendide. Lèvres s'incliner placé sur genre de choses fait connaître de zoom dans l'apparence exacte entourant la procédure fille en outre le système informatique, mais continuer à garder l'approche du derme.
+
: 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.