这些符号在Emacs Lisp中意味着什么?

enc*_*ter 5 emacs elisp

当我读一些elisp代码时,我发现了类似的东西:

(\,(* 2 \#1)) 

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

#'(bla bla)
Run Code Online (Sandbox Code Playgroud)

"\","#","#"这样的符号是什么意思?我应该考虑哪种会议?

phi*_*ils 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.)