这是做什么的?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
......与
不同(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
答案 0 :(得分:84)
没有区别:
(eq 'my-add #'my-add)
收益t
可以在#
表达式前面使用lambda
,向字节编译器指示以下表达式可以进行字节编译,请参阅Anonymous Functions的文档。但是在符号的情况下没有什么可编译的。
通常,它在printed representation中与左尖括号(<)一起使用,以指示打印的对象是描述(但不能读取)。例如:
#<buffer foo.txt>
它也被读者用于构造中以表示圆形结构。请参阅Read Syntax for Circular Objects的文档。
然后你可以用来表示base for integers,例如#x2c -> 44
。
另外我更确定。
答案 1 :(得分:23)
我在搜索哈希mode-line-format
时发现的哈希含义时发现了这个问题:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
这是用于text properties in strings的格式,其中:
"-%-"
,有资格的文字:一个破折号和一个%-construct导致“破折号足以填充模式行的剩余部分”,从而产生了着名的Emacs ------
。0
,文本属性适用的第一个字符。3
,文本属性适用的最后一个字符,即整个"-%-"
。(help-echo "...")
,属性和字符串作为参数。可以使用propertize
function:
(propertize "Hover over me!" 'help-echo '"congratulations!")
与#("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))
所以你可以创建类似的东西:
答案 2 :(得分:20)
可以在Emacs lisp reference index。
的顶部找到应该是全面的列表编辑:或者更方便,从Emacs内部开始:
M-x info
RET (打开信息浏览器)
d m elisp
RET (打开elisp手册)
I #
RET (列出索引中#
的条目)