2017-04-20 12 views
1

このようなマクロを書いています。Emacsマクロ:関数名であることを確認してください

A_ret A_function_name (A_param ap) 
{ 
A_sentence; 
} 

emacsでマクロを実行した後に、関数名にAを付けてBに変更します。

A_ret B_function_name (A_param ap) 
{ 
A_sentence; 
} 

マクロ定義で「A」が機能名に表示されていることを確認するにはどうすればよいですか?

+1

あなたが何を求めているのか分からない。まず、マクロを実装するために何を使用していますか? (n.b.これはemacsのための良い用語ではありません。これは、lispマクロとキーボードマクロの両方を提供します。どちらも、私が知る限り、あなたに言及しているものではありません)。第二に、「マクロの後でemacsを実行し、関数名にAをBに変更する」とはどういう意味ですか?私はその文を理解していない。この文脈で「マクロを行う」とはどういう意味ですか?それは具体的には何ですか? – phils

答えて

0

現在のシンボルに条件付きのキーボードマクロを書き込むことはできません。 C-x qと入力すると、キーボードマクロを一時停止して、続行するかどうかをEmacsに問い合わせることができます(YまたはN)。あなたは関数名の多くを置き換えるためにしようとしている場合は

、私はC-M-%M-x query-replace-regexp)は、検索を行うために使用し、正規表現で置き換えるか、それはあまりにも複雑である場合、キーボードマクロでM-s oM-x occur)を使用したいですA_\(\s_\|\sw\)+ (\swは単語文字、\s_はアンダースコア_を含む記号文字です)のすべての一致を検索します。

は、キーボードマクロで occurを使用するには、私は

M-s o A_\(\s_\|\sw\)+ RET [occur] 
RET [exit-minibuffer] 
C-x ([kmacro-start-macro] 
C-x ` [next-error] 
C-x [kbd-macro-query] 
M-d [kill-word] 
B_ [self-insert-command] 
C-x) [kmacro-end-query] 
C-x e [kmacro-call-query] 
C-x e [kmacro-call-query] 
C-x e [kmacro-call-query] 
... 

正直に言うと、私はC-x qを使用していないでしょう。代わりに、実行するためにC-x eを使用し、実行せずに次の一致にスキップしたい場合は `` C-x '``を使用します。

M-s o A_\(\s_\|\sw\)+ RET [occur] 
C-x ` [next-error] 
C-x ([kmacro-start-macro] 
M-d [kill-word] 
B_ [self-insert-command] 
C-x e [kmacro-call-query] 
C-x e [kmacro-call-query] 
... 
C-x ` [next-error] 

これは私です。

関連する問題