【发布时间】:2011-02-11 16:51:08
【问题描述】:
这是做什么的?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
...和它有什么不同
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
【问题讨论】:
这是做什么的?
(add-hook 'compilation-mode-hook #'my-setup-compile-mode)
...和它有什么不同
(add-hook 'compilation-mode-hook 'my-setup-compile-mode)
【问题讨论】:
没有区别:
(eq 'my-add #'my-add)
收益t
# 可以用在 lambda 表达式前面,向字节编译器指示以下表达式可以进行字节编译,请参阅Anonymous Functions 的文档。但是在符号的情况下没有什么要编译的。
一般在printed representation 中与左尖括号(
#<buffer foo.txt>
它也被读者用在构造中来表示循环结构。请参阅Read Syntax for Circular Objects 的文档。
然后你可以用它来表示base for integers,例如#x2c -> 44.
我相信还有更多。
【讨论】:
# 应用于单个符号的一个很好的理由是,如果该符号未定义,则在编译时进行诊断。
'symbol在语法上代表(quote symbol)和#'symbol代表(function symbol)。
可以在Emacs lisp reference index 的顶部找到应该全面的列表。
编辑:或者更方便的是,从 Emacs 本身:
M-x info RET(打开信息浏览器)
d m elisp RET(打开elisp手册)
I # RET(在索引中列出# 的条目)
【讨论】:
我在搜索我在 hacking 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))
所以你可以创建类似的东西:
【讨论】: