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

问题描述 投票:0回答:3

这个有什么作用?

(add-hook 'compilation-mode-hook #'my-setup-compile-mode)

...有什么不同吗

(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
emacs elisp
3个回答
122
投票

没有区别:

(eq 'my-add #'my-add)

产量

t

#
可以用在
lambda
表达式前面,向字节编译器指示以下表达式可以进行字节编译,请参阅匿名函数的文档。但对于符号来说,没有什么可以编译的。

一般来说,它与左尖括号 ( #<buffer foo.txt> <) to indicate that the object printed is a description (but cannot be read). For example:

读者也可以在构造中使用它来表示圆形结构。请参阅文档
读取循环对象的语法

然后你就可以使用它来表示

整数的基数

,例如#x2c -> 44


我确信还有更多。


33
投票
Emacs lisp 参考索引

的顶部找到。

编辑

:或者更方便的是,从 Emacs 本身内部:

  • M-x

    info

    RET
    (打开信息浏览器)

  • d

    m elisp

    RET
    (打开elisp手册)

  • I

    #

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


32
投票
mode-line-format

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

这是用于
字符串中的文本属性

的格式,其中:

  • "-%-"
    ,要属性化的文本:一个破折号和一个 
    %-construct
    ,导致“破折号足以填充模式行的其余部分”,从而产生著名的 Emacs ------
  • 0
    ,应用文本属性的第一个字符。
  • 3
    ,应用文本属性的最后一个字符,
    整个"-%-"
  • (help-echo "...")
    ,一个属性和一个字符串作为其参数。
  • 这可以使用

propertize 函数创建

:
(propertize "Hover over me!" 'help-echo '"congratulations!")

(insert (propertize

#("Hover over me!" 0 14 (help-echo "Congratulations!"))

相同:

Small example.如果您使用字体锁定模式,使用

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))

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

Showing the corresponding propertize function for multiple properties.

© www.soinside.com 2019 - 2024. All rights reserved.