Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to: navigation, search
(Undo revision 4664 by 190.42.27.159 (talk))
(file_links[C:\Xrumer\Antispam\Neutral\en.default.txt,1,L])
(27 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
+
I think, that you are mistaken. I suggest it to discuss. Write to me in PM, we will talk.
 
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
+
 
+
==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>
+
 
+
==Saving macros==
+
{{Manual|emacs|Save-Keyboard-Macro|Save Keyboard Macro}}
+
 
+
===Binding to a key===
+
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
+

Revision as of 20:12, 6 July 2013

I think, that you are mistaken. I suggest it to discuss. Write to me in PM, we will talk.