emacs/elisp:用于的哈希(井号,数字符号,octothorp)符号是什么?

Che*_*eso 89 emacs elisp

这是做什么的?

(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
Run Code Online (Sandbox Code Playgroud)

......和它有什么不同

(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
Run Code Online (Sandbox Code Playgroud)

Tre*_*son 89

没有区别:

(eq 'my-add #'my-add)
Run Code Online (Sandbox Code Playgroud)

产量 t

所述#可在前方使用lambda指示字节编译器下面的表达式可以是编译字节表达,请参阅文档匿名函数.但是在符号的情况下没有什么可编译的.

通常,它在打印表示中与左尖括号(<)一起使用,以指示打印的对象是描述(但不能读取).例如:

#<buffer foo.txt>
Run Code Online (Sandbox Code Playgroud)

它也被读者用于构造中以表示圆形结构.请参阅循环对象的读取语法的文档.

然后你可以用它来表示整数基数,例如#x2c -> 44.

再加上我更确定.

  • 根据[本文](http://endlessparentheses.com/get-in-the-habit-of-using-sharp-quote.html),将`#`应用于单个符号的一个很好的理由是获得诊断在编译时,如果该符号未定义. (11认同)
  • 也许仍然提到`'symbol`代表`(引号)``和'#'符号`代表`(函数符号)`语法. (7认同)
  • 哇,真棒.emacs/elisp百科全书. (5认同)
  • "在符号的情况下没有什么可编译的"并不完全正确.字节编译器将#'car解释为"我总是指的是函数`foo',而不是符号foo." 然后,它可以实际内联字节编译输出中的foo定义.(编辑:不,这实际上是错误的.#'符号不会与'符号 - 进行字节编码 - 它只是意图的标记.) (3认同)

Ice*_*ack 23

我在搜索黑客时发现的哈希意味着什么时发现了这个问题mode-line-format:

#("-%-" 0 3
  (help-echo "Display as tooltip when mouse hovers or with display-local-help."))
Run Code Online (Sandbox Code Playgroud)

这是一种用于字符串中文本属性的格式,其中:

  • "-%-",有资格的文本:一个破折号和% - 构造导致"破折号足以填充模式线的其余部分",从而产生了着名的Emacs ------.
  • 0,文本属性适用的第一个字符.
  • 3,文本属性适用的最后一个字符,整个"-%-".
  • (help-echo "..."),一个属性和一个字符串作为其参数.

这可以使用以下propertize函数创建:

(propertize "Hover over me!" 'help-echo '"congratulations!")
Run Code Online (Sandbox Code Playgroud)

(插入(属性

会是这样的#("Hover over me!" 0 14 (help-echo "Congratulations!")):

小例子.

如果您使用的是字体锁定模式,则使用该buffer-substring命令可能会产生以下内容:

(buffer-substring 1 28) ; First 27 characters in the current buffer
 ? #(";; This buffer is for notes"
     0 3
     (fontified t face font-lock-comment-delimiter-face)
     3 27
     (fontified t face font-lock-comment-face))
Run Code Online (Sandbox Code Playgroud)

所以你可以创建类似的东西:

显示多个属性的相应属性函数.


phi*_*ils 22

应该是全面的列表可以在Emacs lisp参考索引的顶部找到.

编辑:或者更方便,从Emacs本身:

  • M-x info RET (打开信息浏览器)

  • d m elisp RET (打开elisp手册)

  • I # RET(列出#索引中的条目)