Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(Undo SPAM revision 4500 by 188.187.176.136 (talk))
(Rivals prepare for court battles over tough abortion laws.)
Line 1: Line 1:
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
+
Rival legal teams, well-financed and highly motivated, are girding for court battles over the coming months on laws enacted in Arkansas and North Dakota that would impose the nation's toughest bans on abortion.  
 
+
For all their differences, attorneys for the two states and the abortion-rights supporters opposing them agree on this: The laws represent an unprecedented frontal assault on the Supreme Court's 1973 Roe v. Wade decision that established a nationwide right to abortion.  
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
+
The Arkansas law, approved March 6 when legislators overrode a veto by Democratic Gov. Mike Beebe, would ban most abortions from the 12th week of pregnancy onward. On March 26, North Dakota went further, with Republican Gov. Jack Dalrymple signing a measure that would ban abortions as early as six weeks into a pregnancy, when a fetal heartbeat can first be detected and before some women even know they're pregnant.  
 
+
Abortion-rights advocates plan to challenge both measures, contending they are unconstitutional violations of the Roe ruling that legalized abortion until a fetus could viably survive outside the womb. A fetus is generally considered viable at 22 to 24 weeks.  
==Example usage==
+
Read more...
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 05:22, 24 April 2013

Rival legal teams, well-financed and highly motivated, are girding for court battles over the coming months on laws enacted in Arkansas and North Dakota that would impose the nation's toughest bans on abortion. For all their differences, attorneys for the two states and the abortion-rights supporters opposing them agree on this: The laws represent an unprecedented frontal assault on the Supreme Court's 1973 Roe v. Wade decision that established a nationwide right to abortion. The Arkansas law, approved March 6 when legislators overrode a veto by Democratic Gov. Mike Beebe, would ban most abortions from the 12th week of pregnancy onward. On March 26, North Dakota went further, with Republican Gov. Jack Dalrymple signing a measure that would ban abortions as early as six weeks into a pregnancy, when a fetal heartbeat can first be detected and before some women even know they're pregnant. Abortion-rights advocates plan to challenge both measures, contending they are unconstitutional violations of the Roe ruling that legalized abortion until a fetus could viably survive outside the womb. A fetus is generally considered viable at 22 to 24 weeks. Read more...