Difference between revisions of "Keyboard macros"

From WikEmacs
Jump to: navigation, search
(ダンテのコスプレ衣装はあなたの冷静な観察を増強する)
(Undo revision 46466 by 124.123.30.127 (talk))
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
クリスマスの愛と喜びのあなたの周りのみんなに伝播する時間です。角を曲がった所のクリスマスの時期で、この年の忘れがたい人への買い出しで楽しんでください。今年は買い物をするための最高の場所です。オンラインショッピングの会場で、それはあなたのすべてのコスチュームのニーズを満たすために、大きなプラットホームを持ちます。それはどんな出来事であることを見つけることが、あなたはあなたが何を探しているあらゆる出来事のための服装で保持している。あなたの花嫁の結婚式の服装からすべてを見つけることができる結婚式のためのドレス、花嫁の花の少女、出来事の衝撃的なアクセサリーを作って、花嫁の母。それは、セクシーなランジェリーまたは正式なあなたが店のために、着たいというか、それであることをするための場所です。買い物経験を顧客への拡張が簡単に探している服装のために検索する閲覧するのは簡単。彼らのウェブサイトをチェックアウトして、あなたが購入し、ショッピングカートに追加したいという衣服の選択を確認します。彼らが服を持ってクリスマスセクシーな誘惑のための楽しい子供のためとされている。子供の楽しい出来事を追加するにはエルフのコスチュームのために行くことができます。あなたが自宅でクリスマスパーティーを開く予定であるならば、サン#file_links<D>\cosplay2\Projects\1\ci.txt,1,N]タクロースの衣装をチェックアウト、または服装は雪だるまのように、ホッキョクグマ、ヒグマや陽気なムース。色を追加し、それで買い物によって、右の服装で新しいテーマ党に紹介します。誘惑的な役割を舞台に、様々なセクシーなサンタクロースの衣装は、このオンラインストアで探検します。あなたが赤いからすべてを見つけることができる、グリーンと白人のあなたの環境によるゲルへのあなたの試みを支援するためにこのお祝いのシーズンの色―。からのvネックやホルターネックのコスチュームの間で最高のあなたの姿を強調することができる豊富な他に加えて、あなたの選択をします。服装は完全にあなたの輪郭を強調することができるの選択においては、カスタマーサービスデスクでの専門家のアドバイスを求めてください。それ以上の大規模な割引と彼らの卸売価格優位性の上の顧客まで広げる#file_links<D>\cosplay2\Projects\1\ci.txt,1,N]彼らは爽快な経験でありえます。毎日の熱い取引と他の割引は、あなたのバッグはあなたと同じ価格のために交渉したものよりもより多くのいいものに会場を提供しています。
+
{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}
 +
 
 +
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.
 +
 
 +
 
 +
==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>
 +
 
 +
==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 07:55, 11 February 2014

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.

Saving macros

Save Keyboard Macro (`(info "(emacs) Save Keyboard Macro")')

Binding to a key

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