Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs宏:检查是否为函数名_Emacs_Macros - Fatal编程技术网

Emacs宏:检查是否为函数名

Emacs宏:检查是否为函数名,emacs,macros,Emacs,Macros,我想这样写宏 A_ret A_function_name (A_param ap) { A_sentence; } 在emacs中执行完宏后,如果在函数名上,则将A更改为B A_ret B_function_name (A_param ap) { A_sentence; } 如何检查宏定义中函数名上的“A”?无法编写以当前符号为条件的键盘宏。您可以键入C-x q暂停键盘宏,并让Emacs询问您是否继续(Y或N) 如果您试图替换大量函数名,我会使用C-M-%(M-x query repla

我想这样写宏

A_ret A_function_name (A_param ap)
{
 A_sentence;
}
在emacs中执行完宏后,如果在函数名上,则将A更改为B

A_ret B_function_name (A_param ap)
{
 A_sentence;
}

如何检查宏定义中函数名上的“A”?

无法编写以当前符号为条件的键盘宏。您可以键入
C-x q
暂停键盘宏,并让Emacs询问您是否继续(
Y
N

如果您试图替换大量函数名,我会使用
C-M-%
M-x query replace regexp
)进行搜索并替换为正则表达式,或者如果这太复杂,则使用
M-so
M-x occurrent
)和键盘宏来查找
a_\(\s|u\\ sw\)+(
\sw
是单词字符,
\s\u
是符号字符,包括下划线
\u

要对键盘宏使用
occure
,我需要

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-xq
。相反,我将使用
C-xe
来执行,如果我想不执行而跳到下一个匹配,则使用“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]

但那是我。

不可能编写以当前符号为条件的键盘宏。您可以键入
C-x q
暂停键盘宏,并让Emacs询问您是否继续(
Y
N

如果您试图替换大量函数名,我会使用
C-M-%
M-x query replace regexp
)进行搜索并替换为正则表达式,或者如果这太复杂,则使用
M-so
M-x occurrent
)和键盘宏来查找
a_\(\s|u\\ sw\)+(
\sw
是单词字符,
\s\u
是符号字符,包括下划线
\u

要对键盘宏使用
occure
,我需要

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-xq
。相反,我将使用
C-xe
来执行,如果我想不执行而跳到下一个匹配,则使用“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]

但那就是我。

我不知道你在问什么。首先,你用什么来实现你的“宏”?(注意,这不是emacs的好术语,emacs同时提供lisp宏和键盘宏,据我所知,这两个宏都不是你所指的)。其次,你的意思是什么“在emacs中执行宏之后,如果它在函数名上,则将A更改为B”?我不理解这句话。“执行宏”在本文中的实际含义是什么?具体是什么?我不知道您在问什么。首先,您使用什么来实现“宏”?(注意,对于emacs来说,这不是一个好的术语,它同时提供lisp宏和键盘宏,据我所知,两者都不是你所指的)。其次,“在emacs中执行宏之后,如果在函数名上,将A改为b”是什么意思?我不理解这个句子。“执行宏”是什么意思“它”在这个上下文中实际上是什么意思?它具体是什么?