这些符号在Emacs Lisp中代表什么意思?

5

当我阅读一些elisp代码时,我发现如下内容:

(\,(* 2 \#1)) 

\,(format "%s %s id%d %s" \1 \2 (+1 \#) \3)

#'(bla bla)

符号 "\,"、"#"、"#'" 的含义是什么?我应该查看哪个会话来了解这些内容?
3个回答

10

\, 在使用 query-replace-regexp 进行替换时是特殊的。它的意思是“评估以下 elisp 表达式,并在替换中使用结果值”。注意,除此之外,它在其他地方并不是特殊的(据我所知),所以你看到的应该就是这种用法。

\# 在替换字符串中也是特殊的,会被替换为到目前为止所做的替换次数(即递增计数器)。

\#N(其中 N 是一个数字)是 \N 的一种变体,它将相关组视为数字而不是字符串,在需要数字表达式的情况下非常有用。

因此,(\,(* 2 \#1)) 将评估表达式 (* 2 \#1),将正则表达式匹配的第一组乘以 2 以生成一些值 N,使得最终的替换是 (N)

这些详细信息可以在手册中找到。

C-hig (emacs) RET,然后搜索相关语法。例如,使用 C-s 搜索 \,,如果搜索失败,则重复使用 C-s 在后续节点中查找匹配项。

#'...(function ...) 的简写形式,这是 '... / (quote...) 的一种变体,表示引用的对象是一个函数。

由于这是 elisp 语法,你可以在 elisp 手册中找到相关信息:

C-hig (elisp) RET

你可以使用 C-s 搜索 #',或者在本例中,使用索引进行搜索,因此 I #' RET 也可以正常工作。

通常先检查索引,然后使用isearch。


-1

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接