Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to navigation Jump to search
(parajumpers ljtjux)
(Revert to the last reasonable edit.)
(286 intermediate revisions by 62 users not shown)
Line 1: Line 1:
(C) On potential NATO re-flagging of bilateral and multilateral exercises in Norway, Stoere cautiously espoused a "High North, low tension" viewpoint, based on what Norway sees as a comprehensive approach to environmental, economic, and security challenges presented by the melting Arctic ice. Men sosialt samv som har viser SSBs tidsbruksunders />Det betyr at det sosiale samv vi har mens vi utf andre aktiviteter, erstatter sosialt samv so  m hovedaktivitet. Suksessen pÃ¥ en Ã¥pen eller lukket skole er avhengig av den pedagogiske virksomheten, lærernes kompetanse og vilje til nytenking.
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
Operasjonen ble dramatisk med stort blodtap, og i perioden etterpå har hun hatt flere lungebetennelser og trengt langvarig respiratorbehandling. De fire landene i Gulf Cooperation Council; Saudi-Arabia, Kuwait, Qatar og UAE foreslo en heving med 1,5 millioner fat over dagens produksjonsnivå på 28,8 millioner fat per dag, som inkluderer Irak. På disse dagene og i disse sekundene kom det inn store mengder bud som umiddelbart ble trukket tilbake på Rec-aksjen.
+
 
En forfriskende variant er lompe med Snøfrisk, bær, sirup og kanel. Hun skjems over Ã¥ gÃ¥ sammen med meg pÃ¥ gaten. av Arcticblue (5 innlegg)Film er bedre enn bok av Helloween (22 innlegg)Patrick Rothfuss - The Name of the Wind av Amused99 (9 innlegg)Klikk her for g til forumetDe f la merke til at trommeslageren Dennis - den opplest og vedtatt minst talentfulle av de nike free run norge  Wilson-br - s sm begynte bidra med h p Beach Boys-platene i begynnelsen av 1970-tallet.
+
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
Det er sÃ¥pass mye som skal gjøres at vi har gÃ¥tt gjennom de fleste mulberry vesker e pÃ¥ location med kamera pÃ¥ forhÃ¥nd, sier Aksel. Les ogsÃ¥ mer om fotball parajumper som forsvant:Fotbal  lstjerner krever millionerstatning av DNBTidligere Molde-kaptein: - Det var hallelujastemning pÃ¥ innsalgetDNB: - Vi vil gjerne høre hva spillerne sierTom Staavi:- GriseteHer er dokumentet fotballspillerne fikk fra DNB-agentenHer er «trylleformelen» som skulle doble fotballproffens investering. - Vi synes prisen nÃ¥ var kommet ned pÃ¥ et nivÃ¥ som gjorde det interessant Ã¥ kjøpe, sier Mæland.
+
 
Vi frøs alle tre, og jeg tenkte bare at vi bare mÃ¥tte komme oss til det nærmeste huset. Eksempelet p dette er at P4 Bandit som er en musikk-kanal m l kapasitet av en annen DAB-kanal for sende med akseptabel lydkvalitet. For ogsÃ¥ i det frie Tsjekkoslavia, senere Tsjekkia etter den fredelige skils  missen med slovakene, var politikken alt annet enn en søndagsskole.
+
 
 +
==Basic Use==
 +
 
 +
; {{Keys|F3}}, or {{Keys|C-x (}}
 +
: 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 bindingsYou 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]]

Revision as of 01:20, 25 January 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.